## 当前架构决策:Workflow 独立执行,Graph 抽离为 Loop 用户已确认:Workflow 通过定义创建并独立执行,不依赖 Graph/Loop;非 Workflow Agent 同样独立执行。原 Graph 抽离为独立能力并命名为 Loop,通用身份、预算、运行管理和共享契约不因抽离而成为 Loop 专属。 - Workflow 定义、解析、执行与 Workflow Agent:#197。 - Loop 独立能力与命名/依赖迁移:https://github.com/agentic-ai-java/argi/issues/198 。 - Loop 保留图执行语义;它与 Workflow 循环步骤、LoopAgent 和 ReAct 内部循环必须区分。公共类、包、坐标及数据字段按映射迁移,不做无差别替换。 - 可选桥接由 Loop 集成侧依赖中立 Agent 契约;Workflow 不以 Loop 为默认后端。破坏性变更仍逐项论证,历史数据遵守 #182。 本节替代早期“Graph 承载 Workflow”或“Graph 名称整体保留”的架构假设;历史路径和类名仍作为问题证据。 ## 代码依据 https://github.com/agentic-ai-java/argi/blob/f45b2cf7a2fb301744fa61ef423795f6d30b65da/argi-agent-framework/src/main/java/io/github/agentic/ai/graph/agent/node/AgentToolNode.java#L611 ## 问题与目标 AgentToolNode 同时组织参数校验、拦截器、顺序/并行调度、超时取消、执行租约、业务结果映射、状态补丁准入及错误响应。问题是执行阶段耦合和修改影响面,不能仅凭文件长度认定需要重写。 ## 范围与方案 画出现有执行阶段顺序和失败传播契约,优先抽取内部协作者(调度/取消、调用管线、补丁提交等),保留公开 Builder/API。拆分粒度以减少职责耦合为准,避免制造无实际价值的接口或改造成新框架。 ## 验收 - [ ] 固化校验、授权/拦截器、调用、业务结果判定、补丁提交的真实顺序及失败策略。 - [ ] 复用并通过已有 ParallelExecution/Cancellation/Starvation、SequentialStateIsolation、ExecutionLease、ContextPatchPolicy、BusinessOutcome、DynamicToolCallbackRegistry 等测试。 - [ ] 超时/取消/租约丢失后不新增状态发布;失败 metadata、returnDirect、动态工具及错误传播行为保持一致。 - [ ] 不重复 #140/PR #174 已有补丁校验能力,不混入新工具策略。 - [ ] 默认保持公共 API、线程与结果语义;确需改变时单列收益、影响及迁移论证。 与 #186 的架构方向协调,但以内部可分步重构为首选,不要求重写 Graph 引擎。 ## 变更约束 本单来自静态代码审查,尚未运行复现或性能测试。实施先补充针对性验证;破坏性变更需比较更小/兼容方案,记录收益、消费者影响、迁移成本和版本策略。允许保留有充分理由的现有设计。
Activity