架构
1. 产品思路
A2E 当前阶段的产品目标,是把“AI 对话式请求”转换为“可治理的工作流执行过程”,并在执行过程中保留足够的工程控制能力,而不是仅返回一次性结果。
围绕这个目标,当前实现采用了一个最小闭环:
- 定义:以
workflow作为执行蓝图,描述节点、连线和输入输出约束。 - 执行:以
run作为一次执行实例,支持创建、取消、恢复等生命周期操作。 - 观测:以
event作为执行事实记录,支持增量查询与状态追踪。 - 人工介入:以
review作为审核机制,在关键节点暂停并等待决策,再继续执行。
在交互入口上,A2E 提供两条并行路径:
- Web 入口:面向可视化编辑、运行监控和审核处理。
- MCP 入口:面向 Codex/CLI 等 AI 客户端,以工具调用方式访问同一套引擎能力。
这意味着 A2E 不是“仅 UI 的流程工具”或“仅 CLI 的自动脚本集合”,而是一个以统一语义(workflow / run / review / event)连接 Web 与 AI 协作端的执行内核。当前版本标记为 Experimental,重点验证架构可行性与工程闭环。
2. 技术架构总览
当前实现可从“组件关系”和“运行时执行流”两个视角理解。
2.1 组件关系
结合当前实现,主要组件职责如下:
- Web
- 提供工作流编辑、运行监控、审核处理、设置与 Codex 交互界面。
- 通过 HTTP 与 WebSocket 访问 Server 暴露的统一服务能力。
- MCP Server
- 以 STDIO 方式向 Codex/CLI 等 MCP Client 暴露工具接口。
- 内部不直接处理工作流状态,而是通过 loopback HTTP 调用 A2E Server。
- A2E Server
- 负责工作流、节点、运行、审核、事件与 AI 节点相关服务。
- 同时承担 Codex 登录、模型查询、PTY 会话与运行目录管理能力。
- Codex CLI
- 作为 AI 节点的实际执行运行时,由 Server 在受控目录中启动。
- 执行结果以结构化输出、日志和产物文件形式回写到运行目录。
- SQLite + 文件系统
- SQLite 保存
workflow / run / node_run / review / event等结构化状态。 - 文件系统保存 AI 节点定义、运行输入输出、日志、产物与异常线索。
- SQLite 保存
当前版本未引入独立队列或 Worker。工作流调度、状态推进、审核协同与 AI 节点控制均由 Server 进程直接承担。
2.2 运行时执行流
该执行流体现了当前版本的最小闭环:以 agent.codex 负责自动执行,以 human.review 负责人工把关,并通过统一的 run / review / event 语义把 Web 与 MCP 两类入口收敛到同一套执行内核。
3. Workflow
3.1 生命周期
工作流执行的生命周期可以用五步理解:
- 创建:收到执行请求后创建一次独立运行。
- 启动:引擎接管任务并按节点依赖顺序推进。
- 执行:逐个节点处理,必要时生成中间产物和事件记录。
- 暂停:遇到需要人工判断的场景,流程会暂停等待决策。
- 结束:根据执行结果进入完成、失败或取消,并产出总结信息。
该生命周期的核心价值是把“AI 自动执行”变成“可控、可解释、可回放”的工程过程。
3.2 状态机
状态机采用统一语义,主要状态包括:
- 排队中
- 执行中
- 暂停中
- 已完成
- 已失败
- 已取消
典型流转逻辑:
- 排队中 -> 执行中:引擎开始处理。
- 执行中 -> 暂停中:触发审核或人工接管。
- 暂停中 -> 执行中:审核通过并继续执行。
- 执行中 -> 已完成:流程按预期结束。
- 执行中 -> 已失败:关键节点失败且未被接管恢复。
- 任意活跃状态 -> 已取消:用户或系统主动终止。
状态变化会被记录成事件,用于观察、审计和故障排查。
3.3 输入输出契约
输入输出契约用于保证“流程可连通、结果可复用”,分为两层:
- 运行前校验:检查流程输入、节点输出声明是否完整,提前拦截明显错误。
- 运行时校验:节点执行后检查输出结构是否符合约定,避免坏数据继续向下游传播。
每个节点的输入都来自两部分:
- 流程入口输入
- 上游节点产出
结果会同时以结构化数据和文件产物落盘,保证后续可查看、可复盘、可追责。
4. AI节点
4.1 执行模型
AI 节点负责完成自动化内容生成与执行决策,是流程中的主要“生产节点”。
当前执行模型的特点:
- 异步执行:节点由后台任务驱动,避免阻塞整条流程。
- 配置驱动:执行策略由节点模板统一管理,例如模型、超时和权限范围。
- 结果回收:执行结束后,系统会回收状态、输出和产物并写入统一记录。
4.2 输入输出与产物
AI 节点的数据表现分为三类:
- 输入:来自流程上下文与上游节点结果。
- 输出:结构化结果与可消费内容(供后续节点继续使用)。
- 产物:执行日志、生成文件、异常线索等运行证据。
当主输出不可用时,系统具备兼容回退机制,尽量保证流程可继续观测与处理。 这些信息会统一沉淀,供 Web 页面和 MCP 工具共同使用。
4.3 失败与恢复
AI 节点失败后的处理思路是“先收口、再恢复”:
- 收口:记录失败原因与上下文证据,防止问题被静默吞掉。
- 接管:在高不确定场景自动转入审核,避免错误继续扩散。
- 恢复:审核通过后可继续流程,不必整条流程从头重跑。
同时保留调试能力,便于在不破坏主流程的前提下复现问题并验证修复。
5. 审核节点
5.1 主动审核
主动审核是设计时就明确配置的“人工把关点”。
在流程运行到该节点时,系统会自动暂停并生成审核任务,等待审核人基于上下文做决策,再决定是否继续执行。
5.2 被动审核
被动审核是在运行中动态触发的“兜底机制”。
当系统发现异常结果、风险信号或执行不确定性时,会自动把流程切换到人工判定模式,优先保证安全与可控。
5.3 中断与恢复
审核节点支持“中断-决策-恢复”的闭环:
- 审核通过:流程恢复并继续向下执行。
- 审核拒绝:流程进入失败收口。
- 审核取消:流程终止并关闭未完成审核,避免悬挂状态。
这种机制让自动化执行与人工判断可以平滑切换,而不是互相割裂。
6. 模块关系与数据流
模块关系可以简化为两条入口、一个内核:
- Web 入口
- 面向人类用户,用于配置流程、观察执行、处理审核。
- MCP 入口
- 面向 AI 客户端,用于以工具方式调用同一套能力。
- 统一内核
- 两个入口最终都进入同一执行内核,由它负责状态推进、事件记录、审核协同和结果沉淀。
- 当前内核能力主要包括工作流管理、运行调度、审核协同与 AI 节点执行。
最终形成统一的数据语义:流程定义、执行实例、节点状态、审核记录和事件轨迹。
这也是 A2E 能同时支持“人机协作”和“多入口一致性”的关键。