关联 RFC / 架构
目标问题
主 Agent 的 Service.Run 与 runtimeSubAgentEngine 各自实现 provider 调用、工具回灌、消息窗口和终止逻辑。两套循环造成预算、compact、usage、stream、权限和错误语义不一致,也使后续 Workflow 节点无法复用同一执行内核。
实现设计(How)
- 提取
AgentLoop.RunNode(ctx, NodeExecutionInput),只负责单个节点内的 ReAct 闭环。
- NodeExecutionInput 明确 Workflow snapshot、NodeSpec、PromptBundle、模型选择、能力、预算和可选 ResumeState。
- NodeExecutionResult 返回结构化输出、Artifact drafts、usage、tool receipts、transcript revision 和终止分类;不直接推进 DAG。
- 收敛 Context build、tool spec、request freeze、estimate、budget、Generate、stream accumulation、tool execution、result 回灌、compact 和 repeat-cycle。
- 主 Run 先通过兼容 adapter 调用 AgentLoop;子 Agent Worker 改为同一 AgentLoop,不保留第二套 provider/tool loop。
- 所有工具继续通过 Tool Manager;节点能力由调用方注入,AgentLoop 不自行扩大权限。
- 保留现有 Provider 类型和厂商错误映射,不把节点概念泄漏进 adapter。
影响模块:internal/runtime、现有 subagent engine、streaming、budget/compact adapter 和测试夹具。
边界与非目标:本阶段不实现 Workflow Scheduler、Router/Planner、Artifact 持久化提交或 Event v5;目标是行为等价地收敛执行内核。
任务拆解
测试与验证(Done)
风险与回滚
- 风险:抽取过程中改变消息持久化或事件时序。先通过 adapter 保留现有外部时序,并逐分支迁移。
- 风险:统一接口被设计成新的大对象。接口只携带节点执行必要事实,编排状态留在 Orchestrator。
- 回滚:主 Run adapter 可切回旧内部函数;子 Agent 分支可独立回退。完成行为等价验收前不删除旧实现。
关联 RFC / 架构
目标问题
主 Agent 的
Service.Run与runtimeSubAgentEngine各自实现 provider 调用、工具回灌、消息窗口和终止逻辑。两套循环造成预算、compact、usage、stream、权限和错误语义不一致,也使后续 Workflow 节点无法复用同一执行内核。实现设计(How)
AgentLoop.RunNode(ctx, NodeExecutionInput),只负责单个节点内的 ReAct 闭环。影响模块:
internal/runtime、现有 subagent engine、streaming、budget/compact adapter 和测试夹具。边界与非目标:本阶段不实现 Workflow Scheduler、Router/Planner、Artifact 持久化提交或 Event v5;目标是行为等价地收敛执行内核。
任务拆解
测试与验证(Done)
go test ./...通过且新增修改逻辑达到 100% 覆盖目标。风险与回滚