
在 Workflow-Driven Agent 架构中,"场景"(Scene)是一个核心但常被忽视的抽象概念。它既不是传统 Workflow 中的业务流程,也不是 LLM 应用中的单纯对话上下文,而是介于两者之间的结构化执行单元——拥有独立的生命周期、可编排的活动链路、受控的上下文边界和自适应的执行策略。本文以 OODER 框架的场景模型为蓝本,深入解析场景的定义、组织、调度与执行机制,揭示 Workflow-Driven Agent 中场景模型的设计哲学与工程实践。
传统 Workflow (Business Process Management) 以流程为中心,强调固化、可预测的路径。而 LLM Agent 以对话为中心,强调灵活、动态的响应。OODER 的场景模型试图在这两者之间找到平衡点——它不是单纯的 Workflow 流程,因为节点可以是 LLM 调用,路由可以动态计算;也不是单纯的对话,因为对话被结构化为阶段、活动、转换的清晰层次。它是可编排的 Agent 执行单元,每个场景定义一个完整的 Agent 行为模式。

Workflow 流程 → OODER 场景模型 → LLM Agent 对话:三者定位与演进关系
OODER 场景模型最核心的设计决策是路由驱动。不同于传统流程引擎中"网关+条件"的显式控制模式,路由驱动架构将控制逻辑全部下沉到 Transition 中:

路由驱动执行模型:Activity → Transition 匹配 → 目标 Activity
维度 | 场景 (Scene) | 流程 (Process) | 任务 (Task) |
|---|---|---|---|
粒度 | 中 | 大 | 小 |
生命周期 | 独立 | 编排 | 一次性 |
上下文 | 有边界 | 继承 | 无 |
LLM 配置 | 场景级 | 活动级 | 无 |
状态管理 | 自驱动 | 引擎驱动 | 无状态 |
复用性 | 多管线共享 | 引用子流程 | 每次独立 |
OODER 的场景模型采用清晰的四层架构,从定义到执行层层递进:

场景模型四层架构:场景层 → 执行层 → 注册层 → 定义层
定义层是整个场景模型的基石。所有场景定义以 JSON 文件形式存储在 VFS (Virtual File System) 中,通过 flow-registry.json 索引管理。核心模型类包括:
注册层负责将定义层的 JSON 文件加载到运行时内存中。VfsFlowDefinitionLoader 在应用启动时读取 VFS 目录下的所有定义文件,解析为 Java 对象,注册到 ProcessDefinitionRegistry。关键设计包括:
执行层是场景模型的核心引擎。SkillFlowEngine 实现了路由驱动的流程执行:
场景层是面向用户的接口层。ChatScene 接口体系提供用户交互入口:
flow-registry.json 是场景定义的中心索引,包含 32 个流程定义。每个流程条目通过 classification + phase + businessCategory 三维分类,提供运行时路由所需的所有元数据:
{
"flowId": "intent-dispatch",
"name": "意图分发流程",
"classification": "INTENT_DISPATCH",
"phase": "DISPATCH",
"businessCategory": "CORE",
"workMode": "all",
"sceneId": null,
"parentFlowId": null,
"isDispatchFlow": true,
"isFirstRound": true,
"definitionPath": "process-def/intent-dispatch/definition.json"
}活动是场景的最小执行单元。支持的类型体系:
类型 | 说明 | 执行模式 |
|---|---|---|
LLM_AGENT | LLM 智能体节点 | SINGLE / HARNESS / PROGRESSIVE |
HUMAN | 人工一等公民节点 | CONFIRM / APPROVAL / FORM / DELEGATE |
HUMAN_AGENT | 人工交互节点(旧版) | 确认/选择/输入 |
SUB_PROCESS | 子流程引用 | 引用 subFlowDefId |
TASK | 任务节点 | 执行具体技能 |
AGENT_EVENT | 事件节点 | SSE 推送/事件触发 |
END | 结束节点 | 流程终止 |
路由是场景的控制核心。每个 Transition 定义条件表达式、优先级、方向和重试机制:
{
"transitionId": "t_rag_hit",
"sourceId": "ic_rag_check",
"targetId": "ic_apply_workmode_filter",
"condition": "hit",
"direction": "FORWARD",
"priority": 999
}关键设计:priority=1 的默认路由确保流程永远不会死锁。BACKWARD 方向配合 maxRetry 实现回退重试机制,防止无限循环。
守卫配置是场景的"安全护栏",防止 Token 爆炸和死循环。三级防护体系:
上下文加载策略定义了场景的"认知边界":
{
"staticLayers": ["SYSTEM", "PROCESS", "KNOWLEDGE"],
"dynamicLayers": ["HISTORY", "WORKING"],
"defaultLoadLevel": "standard",
"loadLevels": {
"standard": { "historyCompression": "summary", "tokenBudget": 8000 },
"deepDesign": { "historyCompression": "full", "tokenBudget": 32000 }
}
}OODER 将全部业务能力抽象为 10 个场景组 (SceneGroup),每个场景组对应一个核心业务域,通过 cognitivePhases 声明跨越哪些认知阶段:

10 大业务场景组与认知阶段映射关系
场景组 | 认知阶段 | 主流程 | 说明 |
|---|---|---|---|
SG-INTENT-DISPATCH | UNDERSTAND | intent-dispatch | 意图分发入口 |
SG-DATABASE-DESIGN | UNDERSTAND → DESIGN | dbfirst-build | 数据库设计 |
SG-VIEW-CONSTRUCTION | DESIGN → GENERATE → INTEGRATE | designerfirst-build | 视图构建 |
SG-ATTACHMENT | UNDERSTAND | attachment-subflow | 附件处理 |
SG-PROCESS-ORCHESTRATION | DESIGN → INTEGRATE | Workflow-design | 流程编排 |
SG-CODEGEN | GENERATE → INTEGRATE | javabuild-full | 代码生成 |
SG-KNOWLEDGE-RETRIEVAL | UNDERSTAND | knowledge-retrieval | 知识检索 |
SG-QUALITY-VALIDATION | QUALITY | quality-validation | 质量校验 |
SG-HUMAN-INTERACTION | 独立 | human-interaction | 人工交互 |
SG-SANDBOX-DEVOPS | INTEGRATE | sandbox-devops | 沙箱运维 |
场景组的一个关键设计是自驱动执行。当一个场景组被激活后,其内部节点由 SceneGroupExecutionEngine 独立管理,外部流程引擎不可调度 SG 内部节点。这种设计带来了几个好处:

子流程共享与上下文隔离机制
CREATING → ACTIVE → SUSPENDED → ARCHIVED → DESTROYING → DESTROYED
↑ ↓
└──────────── (恢复) ──────────────┘PENDING → RUNNING → PAUSED → COMPLETED
↑ ↓ ↓
│ ├───────→ FAILED
│ └───────→ CANCELLED / TIMEOUT / ARCHIVEDOODER 支持三种 LLM 执行模式,适应不同的场景需求:
三种 LLM 执行模式对比:SINGLE / HARNESS / PROGRESSIVE

SINGLE 模式:单次 LLM 调用,适用于简单任务。LLM 调用一次,解析结果,继续执行
IntentDispatchScene 是新对话的入口场景,负责分析用户意图并路由到目标场景。它采用程序化管道实现,绕过 FC-Loop 断链问题:

IntentDispatchScene 四步分发流程
场景切换是 OODER 场景模型的核心能力。SwitchSceneFlowTool 负责在不同场景之间安全切换:
understand-subflow 被 architect-pipeline 和 business-pipeline 共享,但每次执行都在独立的上下文中:
OODER 的场景模型为 Workflow-Driven Agent 提供了几个关键能力:

核心模型类关系图:SceneEngine → SceneGroup → ChatScene → SkillFlowEngine → ProcessDefinition
场景驱动的智能体:OODER Workflow 中的场景模型理论与应用
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。