AIDAWORK / WORKFLOW

CapabilityRouter 11 步路由与工作台派发

独立图页 ↗
机制说明(SoT)图是辅读 · 结论以说明与证据为准

tip 2026-09-22:原工作默认走 runtime-work-v1(bindAdmittedWork);runtime-v2.1 文本切片仍为 durableText 条件路径。 tip 2026-10-12:chat direct/routed 统一经 ChatSubmissionStore.admit 受理为 Work;runtime-v2.1 入口已移除。hostAdmission 名单已退役。

本页可直接往下读完整机制说明,不需要「演示 / 播放故事」。术语不熟先看 术语表。

先读机制说明,结论以说明与证据为准 · 基于固定代码版本核验 · 部署状态另行确认

机制说明(全文)

tip 2026-09-22:原工作默认走 runtime-work-v1(bindAdmittedWork);runtime-v2.1 文本切片仍为 durableText 条件路径。 tip 2026-10-12:chat direct/routed 统一经 ChatSubmissionStore.admit 受理为 Work;runtime-v2.1 入口已移除。hostAdmission 名单已退役。

厚控制平面 vs 薄 ReAct

一次模型循环之外还有什么

模型循环只消费已准备的输入与依赖。Runtime 在启动时持有存储、审计和交互服务,每轮再注入模型、工具、提示词与上下文策略。由此,循环结束不等于所有业务状态都结束。

Interaction、Run 与 Workflow 各自维护状态迁移。用户提交需要先由 Interaction 接受并形成交接,协调面才能恢复后续工作;UI 展示和模型回复都不能替代这条状态交接。

相关:enterprise-tour-narrative(新人理解入口;本图保留完整控制面,不另做瘦身副本)· agent-config-pipeline(agents 配置如何组装进本控制面)。

统一入口 11 步路由管道(CapabilityRouter)与工作台执行(WorkbenchWorkExecution)

在 Unified Entry(routed 模式)下,请求不会直接把全部领域工具暴露给单个 ReAct 循环,而是由 CapabilityRouter.route() 在单轮时间预算(createRouteBudget)内顺序执行 11 步确定性与语义路由管道:

  1. 准入与候选过滤(admitRoute):按租户订阅、角色权限与显式插件选择过滤可用 Capability。
  2. 意图识别(recognizeRoute):结合规则(Intent Packs)与语义分类识别业务意图、目标对象与交付格式要求。
  3. 续接上下文准备与恢复拦截(prepareRouteContinuation → rejectUnverifiedRecovery → applyRouteContinuation):读取会话级业务焦点(Conversation work focus)或已接受路由的待续接状态,拒绝未经核实的恢复请求。
  4. 路由决策与引导续接(decideRoute → continueRouteGuide):选定目标 Capability(如领域工作台、内置 local_workbench.spreadsheet_ops 或直连 Agent)。
  5. 前置澄清与文件收窄(clarifyRoute → resolveRouteFiles):缺少必填关键字段或存在歧义时生成 turn 级 Clarification 挂起;否则通过 restrictFileTargets 收窄本轮允许访问的会话附件与授权目录范围。
  6. 持久化与审计完成(persistRoute → auditRoute → completeRoute):落库路由决策并产出 Capability route decision 事件。

路由受理后,RunExecutionWorker 通过 WorkbenchWorkExecution(实现 authorize 与 execute 适配边界,自身不创建或领取 Run)在原 Root 锁与租户角色权限下驱动工作台轮次、派生受配额与超时约束的 Child Run,并在终态事务内核验条件产物(readConditionalArtifactCompletionInTx)。

证据与范围

  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L384–412 · prepareExecution · e2adc9a3c325
  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L283–313 · composeDeps · e2adc9a3c325
  • aida-agent · packages/agent/src/shared/interaction-kernel-state.ts L11–41 · INTERACTION_STATUSES · e2adc9a3c325
  • aida-agent · packages/agent/src/routing/router.ts L14–68 · CapabilityRouter · 7f2e519936b5
  • aida-agent · packages/agent/src/gateway/workbench-work-execution.ts L122–202 · WorkbenchWorkExecution · 7f2e519936b5

结论来自固定版本的静态源码与合同阅读;实现存在、默认开关和生产启用分别判断。本站代码证据面板列出声明状态与具体限制。

ADR-0099 应用访问边界(钉点 7f2e519936b5,部分合入)

统一入口的应用路由目录抽到 application-route-catalog;fresh 目录仍传 forRouting + verifiedNoBusinessScope(见 ADR-0097 D1-2a)。ADR-0099 方向已接受、分批实施——不宣称微内核或全量应用隔离已完成。

  • aida-agent · packages/agent/src/gateway/application-route-catalog.ts L25–65 · createApplicationRouteCatalog · 7f2e519936b5
  • aida-agent · docs/adr/0099-agent-os-microkernel-and-application-boundaries.md L1–30 · 7f2e519936b5

机制说明

tip 2026-09-22:原工作默认走 runtime-work-v1(bindAdmittedWork);runtime-v2.1 文本切片仍为 durableText 条件路径。 tip 2026-10-12:chat direct/routed 统一经 ChatSubmissionStore.admit 受理为 Work;runtime-v2.1 入口已移除。hostAdmission 名单已退役。

厚控制平面 vs 薄 ReAct

一次模型循环之外还有什么

模型循环只消费已准备的输入与依赖。Runtime 在启动时持有存储、审计和交互服务,每轮再注入模型、工具、提示词与上下文策略。由此,循环结束不等于所有业务状态都结束。

Interaction、Run 与 Workflow 各自维护状态迁移。用户提交需要先由 Interaction 接受并形成交接,协调面才能恢复后续工作;UI 展示和模型回复都不能替代这条状态交接。

相关:enterprise-tour-narrative(新人理解入口;本图保留完整控制面,不另做瘦身副本)· agent-config-pipeline(agents 配置如何组装进本控制面)。

统一入口 11 步路由管道(CapabilityRouter)与工作台执行(WorkbenchWorkExecution)

在 Unified Entry(routed 模式)下,请求不会直接把全部领域工具暴露给单个 ReAct 循环,而是由 CapabilityRouter.route() 在单轮时间预算(createRouteBudget)内顺序执行 11 步确定性与语义路由管道:

  1. 准入与候选过滤(admitRoute):按租户订阅、角色权限与显式插件选择过滤可用 Capability。
  2. 意图识别(recognizeRoute):结合规则(Intent Packs)与语义分类识别业务意图、目标对象与交付格式要求。
  3. 续接上下文准备与恢复拦截(prepareRouteContinuation → rejectUnverifiedRecovery → applyRouteContinuation):读取会话级业务焦点(Conversation work focus)或已接受路由的待续接状态,拒绝未经核实的恢复请求。
  4. 路由决策与引导续接(decideRoute → continueRouteGuide):选定目标 Capability(如领域工作台、内置 local_workbench.spreadsheet_ops 或直连 Agent)。
  5. 前置澄清与文件收窄(clarifyRoute → resolveRouteFiles):缺少必填关键字段或存在歧义时生成 turn 级 Clarification 挂起;否则通过 restrictFileTargets 收窄本轮允许访问的会话附件与授权目录范围。
  6. 持久化与审计完成(persistRoute → auditRoute → completeRoute):落库路由决策并产出 Capability route decision 事件。

路由受理后,RunExecutionWorker 通过 WorkbenchWorkExecution(实现 authorize 与 execute 适配边界,自身不创建或领取 Run)在原 Root 锁与租户角色权限下驱动工作台轮次、派生受配额与超时约束的 Child Run,并在终态事务内核验条件产物(readConditionalArtifactCompletionInTx)。

证据与范围

  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L384–412 · prepareExecution · e2adc9a3c325
  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L283–313 · composeDeps · e2adc9a3c325
  • aida-agent · packages/agent/src/shared/interaction-kernel-state.ts L11–41 · INTERACTION_STATUSES · e2adc9a3c325
  • aida-agent · packages/agent/src/routing/router.ts L14–68 · CapabilityRouter · 7f2e519936b5
  • aida-agent · packages/agent/src/gateway/workbench-work-execution.ts L122–202 · WorkbenchWorkExecution · 7f2e519936b5

结论来自固定版本的静态源码与合同阅读;实现存在、默认开关和生产启用分别判断。本站代码证据面板列出声明状态与具体限制。

ADR-0099 应用访问边界(钉点 7f2e519936b5,部分合入)

统一入口的应用路由目录抽到 application-route-catalog;fresh 目录仍传 forRouting + verifiedNoBusinessScope(见 ADR-0097 D1-2a)。ADR-0099 方向已接受、分批实施——不宣称微内核或全量应用隔离已完成。

  • aida-agent · packages/agent/src/gateway/application-route-catalog.ts L25–65 · createApplicationRouteCatalog · 7f2e519936b5
  • aida-agent · docs/adr/0099-agent-os-microkernel-and-application-boundaries.md L1–30 · 7f2e519936b5

代码证据

引用核验检查固定 commit 的文件与范围;实现结论来自代码阅读。自动检查不证明生产环境已启用。

已核验实现

Runtime 在启动期持有 stores、audit 等依赖,composeDeps 合并每轮模型、工具和策略。

aida-agentpackages/agent/src/gateway/orchestrator-runtime.ts:434–4627f2e519936b57902d4907ed8026fe1ecdd146e82符号:prepareExecution
aida-agentpackages/agent/src/gateway/orchestrator-runtime.ts:320–3507f2e519936b57902d4907ed8026fe1ecdd146e82符号:composeDeps
已核验实现

Interaction、Run 和 Workflow 是独立的状态机器;ReAct 不替代它们的权威。

aida-agentpackages/agent/src/shared/interaction-kernel-state.ts:11–417f2e519936b57902d4907ed8026fe1ecdd146e82符号:INTERACTION_STATUSES
aida-agentpackages/agent/src/shared/interaction-kernel-state.ts:11–417f2e519936b57902d4907ed8026fe1ecdd146e82符号:INTERACTION_STATUSES
已核验实现

runtime-work-v1 Work 绑定经 ChatSubmissionStore.admit / bindAdmittedWork 进入 agent_runs(direct 与 routed 同一路径);durableText(runtime-v2.1)仅剩存量处理代码。控制面厚路径仍经 resolveAgentPipeline → orchestrate,但工作执行事实以 work command_envelope / 共同控制为准。

aida-agentpackages/agent/src/runtime/work/run-work-admission.ts:30–717f2e519936b57902d4907ed8026fe1ecdd146e82符号:bindAdmittedWork
aida-agentpackages/agent/src/session/chat-submission-store.ts:580–5957f2e519936b57902d4907ed8026fe1ecdd146e82符号:async admit
aida-agentpackages/agent/src/gateway/orchestrator-runtime.ts:460–4907f2e519936b57902d4907ed8026fe1ecdd146e82符号:durableText
已核验实现

Unified Entry 路由由 CapabilityRouter.route 在单轮时间预算内顺序执行准入、识别、续接准备与恢复拦截、决策、引导续接、澄清、文件收窄、持久化与审计;已受理的 routed Work 由 WorkbenchWorkExecution 核验权限并驱动执行。

aida-agentpackages/agent/src/routing/router.ts:21–757f2e519936b57902d4907ed8026fe1ecdd146e82符号:CapabilityRouter
aida-agentpackages/agent/src/gateway/workbench-work-execution.ts:154–2357f2e519936b57902d4907ed8026fe1ecdd146e82符号:WorkbenchWorkExecution
已核验实现

ADR-0099(方向已接受、分批实施):应用路由目录从 unified-entry 抽到 application-route-catalog;fresh 目录装配仍传 forRouting+verifiedNoBusinessScope。不宣称微内核/全量应用隔离已完成。

aida-agentdocs/adr/0099-agent-os-microkernel-and-application-boundaries.md:1–307f2e519936b57902d4907ed8026fe1ecdd146e82符号:Agent OS
aida-agentpackages/agent/src/gateway/application-route-catalog.ts:25–657f2e519936b57902d4907ed8026fe1ecdd146e82符号:createApplicationRouteCatalog