AIDAWORK / WORKFLOW

从一条企业任务看懂 AidaWork

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

一条企业任务的理解入口(整站先看 site-runtime)。图是辅读;先读本机制说明,结论以 NOTES + evidence 为准。 钉点:Agent e2adc9a3c325 · Desktop 8eecd12081db · Plugins a33ce3733365。

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

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

机制说明(全文)

从一条企业任务看懂 AidaWork

一条企业任务的理解入口(整站先看 site-runtime)。图是辅读;先读本机制说明,结论以 NOTES + evidence 为准。 钉点:Agent e2adc9a3c325 · Desktop 8eecd12081db · Plugins a33ce3733365。

一句话

一次企业任务:用户从 Desktop 说话 → Agent 控制面受理并持有 Run / Interaction(交互生命周期,下称 IX)/ 效应账本 → 模型与工具在执行切片里干活 → 需要本机能力时跨到 Desktop Main;写有没有落地,只看账本,不看聊天气泡。 贯穿例子:用户要改企业系统里的一条记录——确认卡点同意只表示「可以继续执行」,最终是否写成功以效应账本结案为准,不是 SSE(服务端推送事件)投影一闪就成功。

控制面 vs 执行面

面 人话 深挖
厚控制面 会话绑定、准备执行、IX 结算、lease / 账本、恢复 control-plane
薄执行切片 有界模型轮次 + 工具调用(常称 ReAct 环);不拥有业务终态权威 enterprise-task-e2e

默认工作绑定是 runtime-work-v1(原工作);runtime-v2.1 文本入口在 2026-10-12 tip 已从 chat 移除(仅存量处理代码),chat 统一为 Work 路径;生产全量切流未核实——见 runtime-v2-status(新人建议先看 compare 对照)。

权威矩阵(一行)

Run / IX / LF(本机文件 Local File)Operation / 业务效应写在 Agent(SoT = Source of Truth,真相来源);Desktop 本地仓与 Message Center 是投影 / 通知,不能反写 SoT。详表 → state-authority。

主路径六步(人话)+ 深挖岔口

编号约定:焦点「1–3 理解顺序 / 4–6 任务流程 / 深挖岔口」与下列步骤对齐。前三步是理解顺序(先建立全景,不是运行时序);后三步才是任务流程。导读箭头 ≠ 执行时序。

  1. 整坨定位 — 上「一句话」。
  2. 控制面 vs 执行面 — 厚平面管状态,薄执行切片只跑有界轮次 → control-plane。
  3. 谁说了算 — 权威矩阵一行;投影不是真相 → state-authority。
  4. 任务进门 — Desktop 组装 → POST /api/chat → Gateway resolveAndRun(prepareExecution 不调模型)。
  5. 模型与工具 — composeDeps → orchestrate → ExecutionHostRouter。分清两层:(a)路由器能力上可接 Server / LF / Plugin / LE(Local Executor,本机执行器)等执行宿主;(b)钉点上 AgentRun 实际接入侧重 server-read 宿主;服务端连接器写的授权·声明·CAS 消费见 write-authority,不要把「Router 可分发」读成「四条宿主都已走同一套写权限链」。密时序 → enterprise-task-e2e。
  6. 确认 · 结案 — IX 挂起 → settle → continuation 再跑;Desktop 只收 SSE/投影。确认 ≠ 写成功——写是否落地只看账本。写路径 → write-authority。

深挖下一站(可点;按阅读顺序)

先控制面与权威,再端到端,最后专题:

  1. 控制面与权威:control-plane · state-authority · ledger-authority
  2. 端到端:enterprise-task-e2e
  3. 专题:local-file-v5 · write-authority · runtime-v2-status · trust-boundaries · storage-planes

步进图见本主题 main(无 trace 动画;焦点视图即章节)。更密时序与 fail/ok 对偶仍在 enterprise-task-e2e——入口链到本页,不把 dense 图当第一站。

读图约定(轻量漂移债)

  1. 钉点 SHA:结论只对 catalog 里三仓 commit 负责;工作区 tip 新于钉点时,先升钉再改 NOTES,禁止用未提交代码当证据。
  2. 现状 ≠ 默认开 ≠ 生产启用:图上「有实现」不等于开关默认开,更不等于正式环境已开。runtime-v2.1、部分冷路径即此例。
  3. 未实现必须分栏/分色:如 write-authority 的 tip 已有 vs #255/#257;禁止把缺口画成已落地。
  4. 行号 / 证据过期:evidence:check 对不上时,改 NOTES 行号或标债;本轮不重做站岗 bot。明显过期钉点记入 ATLAS-DEBT.md,除非阻塞理解否则不大扫。
  5. 辅图:仓外 /workspace/aidawork-step-diagrams 的 HTML 步进图可对照读;权威仍以仓内 NOTES + evidence 为准。

产品定位旁挂(非本页机制)

整站怎么跑见 site-runtime。对内材料 / 会前口径(延期框架、MSP ≠ 单纯多租户、Pack×Edition、通用/业务能力拆分)见 product-narrative(2026-10-29,产品叙事,非 tip 源码事实)。本页仍只讲一条企业任务的控制面 / 账本读法。

证据与范围

  • aida-desktop · apps/desktop/electron/agent-loop/enterprise-adapter.ts L65–123 · prepareEnterpriseChatInput · 4346d79eb364
  • aida-agent · packages/agent/src/gateway/chat-routes.ts L255–266 · createChatRoutes · e2adc9a3c325
  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L372–379 · resolveAndRun · e2adc9a3c325
  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L283–313 · composeDeps · e2adc9a3c325
  • aida-agent · packages/agent/src/execution-host/router.ts L50–80 · ExecutionHostRouter · e2adc9a3c325
  • aida-agent · packages/agent/src/interaction-kernel/kernel.ts L226–258 · InteractionKernel · e2adc9a3c325
  • aida-agent · packages/agent/src/session/run-store.ts L658–688 · UPDATE agent_runs · e2adc9a3c325
  • aida-agent · packages/agent/src/runtime/work/run-work-admission.ts L16–57 · bindAdmittedWork · e2adc9a3c325
  • aida-agent · packages/agent/src/orchestrator/run.ts L630–646 · InMemoryExecutionHandleStore / server-read · e2adc9a3c325

结论来自固定版本的静态源码阅读;实现存在、默认开关和生产启用分别判断。Router 可接宿主 ≠ AgentRun 已为各宿主接入同一写权限链。

机制说明

从一条企业任务看懂 AidaWork

一条企业任务的理解入口(整站先看 site-runtime)。图是辅读;先读本机制说明,结论以 NOTES + evidence 为准。 钉点:Agent e2adc9a3c325 · Desktop 8eecd12081db · Plugins a33ce3733365。

一句话

一次企业任务:用户从 Desktop 说话 → Agent 控制面受理并持有 Run / Interaction(交互生命周期,下称 IX)/ 效应账本 → 模型与工具在执行切片里干活 → 需要本机能力时跨到 Desktop Main;写有没有落地,只看账本,不看聊天气泡。 贯穿例子:用户要改企业系统里的一条记录——确认卡点同意只表示「可以继续执行」,最终是否写成功以效应账本结案为准,不是 SSE(服务端推送事件)投影一闪就成功。

控制面 vs 执行面

面 人话 深挖
厚控制面 会话绑定、准备执行、IX 结算、lease / 账本、恢复 control-plane
薄执行切片 有界模型轮次 + 工具调用(常称 ReAct 环);不拥有业务终态权威 enterprise-task-e2e

默认工作绑定是 runtime-work-v1(原工作);runtime-v2.1 文本入口在 2026-10-12 tip 已从 chat 移除(仅存量处理代码),chat 统一为 Work 路径;生产全量切流未核实——见 runtime-v2-status(新人建议先看 compare 对照)。

权威矩阵(一行)

Run / IX / LF(本机文件 Local File)Operation / 业务效应写在 Agent(SoT = Source of Truth,真相来源);Desktop 本地仓与 Message Center 是投影 / 通知,不能反写 SoT。详表 → state-authority。

主路径六步(人话)+ 深挖岔口

编号约定:焦点「1–3 理解顺序 / 4–6 任务流程 / 深挖岔口」与下列步骤对齐。前三步是理解顺序(先建立全景,不是运行时序);后三步才是任务流程。导读箭头 ≠ 执行时序。

  1. 整坨定位 — 上「一句话」。
  2. 控制面 vs 执行面 — 厚平面管状态,薄执行切片只跑有界轮次 → control-plane。
  3. 谁说了算 — 权威矩阵一行;投影不是真相 → state-authority。
  4. 任务进门 — Desktop 组装 → POST /api/chat → Gateway resolveAndRun(prepareExecution 不调模型)。
  5. 模型与工具 — composeDeps → orchestrate → ExecutionHostRouter。分清两层:(a)路由器能力上可接 Server / LF / Plugin / LE(Local Executor,本机执行器)等执行宿主;(b)钉点上 AgentRun 实际接入侧重 server-read 宿主;服务端连接器写的授权·声明·CAS 消费见 write-authority,不要把「Router 可分发」读成「四条宿主都已走同一套写权限链」。密时序 → enterprise-task-e2e。
  6. 确认 · 结案 — IX 挂起 → settle → continuation 再跑;Desktop 只收 SSE/投影。确认 ≠ 写成功——写是否落地只看账本。写路径 → write-authority。

深挖下一站(可点;按阅读顺序)

先控制面与权威,再端到端,最后专题:

  1. 控制面与权威:control-plane · state-authority · ledger-authority
  2. 端到端:enterprise-task-e2e
  3. 专题:local-file-v5 · write-authority · runtime-v2-status · trust-boundaries · storage-planes

步进图见本主题 main(无 trace 动画;焦点视图即章节)。更密时序与 fail/ok 对偶仍在 enterprise-task-e2e——入口链到本页,不把 dense 图当第一站。

读图约定(轻量漂移债)

  1. 钉点 SHA:结论只对 catalog 里三仓 commit 负责;工作区 tip 新于钉点时,先升钉再改 NOTES,禁止用未提交代码当证据。
  2. 现状 ≠ 默认开 ≠ 生产启用:图上「有实现」不等于开关默认开,更不等于正式环境已开。runtime-v2.1、部分冷路径即此例。
  3. 未实现必须分栏/分色:如 write-authority 的 tip 已有 vs #255/#257;禁止把缺口画成已落地。
  4. 行号 / 证据过期:evidence:check 对不上时,改 NOTES 行号或标债;本轮不重做站岗 bot。明显过期钉点记入 ATLAS-DEBT.md,除非阻塞理解否则不大扫。
  5. 辅图:仓外 /workspace/aidawork-step-diagrams 的 HTML 步进图可对照读;权威仍以仓内 NOTES + evidence 为准。

产品定位旁挂(非本页机制)

整站怎么跑见 site-runtime。对内材料 / 会前口径(延期框架、MSP ≠ 单纯多租户、Pack×Edition、通用/业务能力拆分)见 product-narrative(2026-10-29,产品叙事,非 tip 源码事实)。本页仍只讲一条企业任务的控制面 / 账本读法。

证据与范围

  • aida-desktop · apps/desktop/electron/agent-loop/enterprise-adapter.ts L65–123 · prepareEnterpriseChatInput · 4346d79eb364
  • aida-agent · packages/agent/src/gateway/chat-routes.ts L255–266 · createChatRoutes · e2adc9a3c325
  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L372–379 · resolveAndRun · e2adc9a3c325
  • aida-agent · packages/agent/src/gateway/orchestrator-runtime.ts L283–313 · composeDeps · e2adc9a3c325
  • aida-agent · packages/agent/src/execution-host/router.ts L50–80 · ExecutionHostRouter · e2adc9a3c325
  • aida-agent · packages/agent/src/interaction-kernel/kernel.ts L226–258 · InteractionKernel · e2adc9a3c325
  • aida-agent · packages/agent/src/session/run-store.ts L658–688 · UPDATE agent_runs · e2adc9a3c325
  • aida-agent · packages/agent/src/runtime/work/run-work-admission.ts L16–57 · bindAdmittedWork · e2adc9a3c325
  • aida-agent · packages/agent/src/orchestrator/run.ts L630–646 · InMemoryExecutionHandleStore / server-read · e2adc9a3c325

结论来自固定版本的静态源码阅读;实现存在、默认开关和生产启用分别判断。Router 可接宿主 ≠ AgentRun 已为各宿主接入同一写权限链。

代码证据

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

已核验实现

企业任务从 Desktop prepareEnterpriseChatInput 组装 chat 输入进入 Gateway,由 ChatSubmissionStore.admit 受理为 Work,再经 OrchestratorRuntime:prepareExecution 不调模型,composeDeps 装配本轮依赖后进入模型循环。

aida-desktopapps/desktop/electron/agent-loop/enterprise-adapter.ts:119–1774346d79eb36402355e51118df0edf1f98586880c符号:prepareEnterpriseChatInput
aida-agentpackages/agent/src/gateway/chat-routes.ts:188–1997f2e519936b57902d4907ed8026fe1ecdd146e82符号:createChatRoutes
aida-agentpackages/agent/src/gateway/chat-routes.ts:1481–15217f2e519936b57902d4907ed8026fe1ecdd146e82符号:chatSubmissionStore!.admit
aida-agentpackages/agent/src/gateway/orchestrator-runtime.ts:411–4347f2e519936b57902d4907ed8026fe1ecdd146e82符号:resolveAndRun
aida-agentpackages/agent/src/gateway/orchestrator-runtime.ts:320–3387f2e519936b57902d4907ed8026fe1ecdd146e82符号:composeDeps
已核验实现

ExecutionHostRouter 可接多种执行宿主;钉点上 AgentRun 侧重为 server-read 建 Router。需要用户输入时 InteractionKernel 挂起,settle 后 continuation 再 resolveAndRun;Run 事实写在 agent_runs,Desktop 只观察与续传。服务端连接器写权限链见 write-authority,勿把 Router 可分发读成各宿主已同一套写链。

aida-agentpackages/agent/src/execution-host/router.ts:50–837f2e519936b57902d4907ed8026fe1ecdd146e82符号:ExecutionHostRouter
aida-agentpackages/agent/src/interaction-kernel/kernel.ts:238–2857f2e519936b57902d4907ed8026fe1ecdd146e82符号:InteractionKernel
aida-agentpackages/agent/src/session/run-store.ts:660–6887f2e519936b57902d4907ed8026fe1ecdd146e82符号:UPDATE agent_runs
aida-agentpackages/agent/src/orchestrator/run.ts:680–6967f2e519936b57902d4907ed8026fe1ecdd146e82符号:server-read
已核验实现

默认且唯一的 chat 工作绑定为 runtime-work-v1(ChatSubmissionStore.admit → bindAdmittedWork);runtime-v2.1 入口已从 chat 移除,仅剩存量处理代码;不代表生产切流已核实。

aida-agentpackages/agent/src/runtime/work/run-work-admission.ts:30–717f2e519936b57902d4907ed8026fe1ecdd146e82符号:bindAdmittedWork
aida-agentpackages/agent/src/gateway/chat-routes.ts:1481–15217f2e519936b57902d4907ed8026fe1ecdd146e82符号:chatSubmissionStore!.admit
aida-agentpackages/agent/src/gateway/chat-routes.ts:401–4087f2e519936b57902d4907ed8026fe1ecdd146e82符号:RUNTIME_EXECUTION_PROTOCOL_UNSUPPORTED