AI-Workshop 文献分享 #13 -- 从 Loop 到 Graph:Agent 工作流的演进
分享人:qyr | 日期:2026-07-25
主题:Agent 工作流工程——Tool 调用、Loop 与 Graph
一、Agent 工程回顾
LLM 本身是无状态的:没有记忆、不能调用工具、不会自行调整策略。
Agent 工程为其补齐四项基础能力:
| 能力 | 要解决的问题 |
|---|---|
| 记忆(Memory) | 如何保留并复用较早发生的信息 |
| 上下文(Context) | 如何根据任务自动构建合适的提示词 |
| 工具(Tool) | 如何让 LLM 操作数据库、文件或外部设备 |
| 工作流(Workflow) | 如何让 Agent 持续推进多步骤任务 |
二、Tool:让 LLM 触发真实操作
Tool 本质上是开发者定义的函数。LLM 不直接执行函数,而是生成结构化的调用意图;本地运行时执行对应函数并将结果回传给 LLM。
工具调用闭环: 1. LLM 根据任务选择合适的工具 2. LLM 返回工具调用 ID 与结构化输入 3. 本地运行时根据 ID 执行对应函数 4. 将执行结果返回给 LLM 5. LLM 基于结果继续推理或生成最终回答
关键边界:LLM 始终只处理文本或结构化消息;函数的真实执行发生在本地工具运行时。
三、Loop 工程
3.1 要解决的问题
复杂任务无法在单次模型调用中完成。Loop 的目标是让 Agent 自行推进过程,而非让用户充当流程调度器。
3.2 核心机制
状态 -> 决策 -> 执行 -> 更新状态 的循环,直到收到结束信号。
3.3 Hermes 的 Loop Orchestrator
使用状态机持续记录:循环次数、当前计划、上一轮结果、工具调用状态、资源使用情况。
终止条件: - 任务结果:成功完成或失败 - 资源限制:循环次数、Token 或执行时间达到上限 - 人工控制:用户手动停止 - 异常情况:不可恢复的错误
判断任务完成的两层信号: 1. 模型 finish 字段(stop 视为完成,length/content_filter/tool_calls 则不视为完成) 2. 工具调用检查(仍有 tool_calls 说明任务未结束)
四、Graph 工程
4.1 为什么从 Loop 走向 Graph
Loop 擅长处理持续迭代的任务,但内部过程通常是隐式的。Graph 用图结构显式表达工作流:
- 节点(Node):任务、Agent、工具调用或人工审批步骤
- 边(Edge):依赖关系、路由规则或状态转移
4.2 Work Graph 的能力
| 能力 | 在图中的表现 |
|---|---|
| 循环 | 节点通过回边再次进入之前阶段 |
| 并行任务 | 多个分支同时执行,汇聚节点合并结果 |
| 人机协作 | 关键节点暂停,等待人工确认 |
| 持久化 | 节点边界保存 checkpoint |
| 条件路由 | 根据状态选择不同执行路径 |
4.3 Loop vs Graph
| 维度 | Loop | Graph |
|---|---|---|
| 适用场景 | 单一目标、连续迭代 | 多步骤、分支、并行、需人工介入 |
| 流程可见性 | 内部过程相对隐式 | 节点与依赖关系明确可见 |
| 控制方式 | 是否继续下一轮 | 当前状态应流向哪个节点 |
| 扩展能力 | 复杂流程时逻辑易堆积 | 可模块化扩展 |
| 典型风险 | 状态与异常处理混杂 | 图规模过大需治理 |
Graph 不是对 Loop 的简单替换。Loop 可看作 Graph 中的一种局部结构。
4.4 演进方向
- Organization Graph:从单 Agent 到多 Agent 分工协作
- Dynamic Work Graph:Agent 根据任务动态构建工作图
- 动态组织图 + 动态工作图:自主决定团队结构与执行路径
五、总结
- Agent 工程为无状态 LLM 补齐记忆、上下文、工具与工作流能力
- Tool 将模型调用意图与本地真实执行解耦
- Loop 通过状态机与终止条件让 Agent 自主推进多步骤任务
- Graph 用节点和边显式组织任务依赖,适合并行、分支与人机协作
- 未来关键不只是让 Agent 循环得更久,而是构建可观测、可编排、可动态调整的工作图