ℹ️
读者定位
适合你,如果:你已经使用过 AI IDE 或 Agent,开始遇到长任务交接、并行验证、失败回退和人工审批问题。
开始前需要:理解基本的 Prompt、工具调用和 Agent Loop,不要求先学某个 Graph 框架。
读完可以完成:看懂 Graph 工程的核心对象,判断什么时候值得从单 Loop 升级,并写出一张框架无关的最小工作图。
暂时不适合:想直接得到某个框架的完整部署教程,或只想学习 Knowledge Graph / GraphRAG 数据建模的人。
最近又开始有人讨论 Graph 工程了。
先说结论:Graph 工程不是把几个 Agent 画成框图,而是把多个受控的工作节点组织成一张可执行、可恢复、可审计的任务图。
这件事为什么会出现?因为我们刚学会让一个 Agent 在 Loop 里自己做事,马上又遇到一个更现实的问题:当任务需要研究、实现、测试、审查和审批时,究竟谁接着做什么?
这篇内容分为以下几个部分:
- 先看单个 Loop 为什么会遇到边界。
- 拆开一张 Graph 的核心对象。
- 理解 Graph 如何承载并行、验证、回退和人工接管。
- 分清 Graph 工程、前四个工程和 GraphRAG 的边界。
- 给出从单 Loop 升级到 Graph 的判断路径。
一、先破题:Graph 不是把流程图画复杂
1.1. 一个 Agent 会做事,不代表多个步骤能协作
一个典型 Agent Loop 大概是这样:
1 读取任务 → 规划 → 调用工具 → 观察结果 → 修正 → 再验证它很适合修一个小 Bug、查一段资料或改一个配置。
但任务一旦变成“研究影响范围、修改代码、跑测试、做安全检查、等待审批、生成交付报告”,隐含的交接就越来越多。你可能需要人工把研究结果复制给实现 Agent,再把实现结果交给测试 Agent,最后自己判断几个结果能不能合并。
ℹ️
读者
既然每个 Agent 都能跑自己的 Loop,为什么不能让它们自己聊天?
ℹ️
作者
可以,但“自己聊天”不是工程边界。你还得说清楚状态放在哪里、谁有权否决、失败往哪走、什么证据才算完成。
1.2. Loop 和 Graph 的区别
你可以先记住这句话:
1 Loop 管一个节点怎么做事;Graph 管多个节点怎样共同完成一件事。Loop 关注下一步行动;Graph 还要关注节点之间的依赖、路由、权限、产物版本、验证和停止条件。
Graph 工程是一个正在形成的工程视角,不是已经统一标准化的技术名词。近期讨论通常把它理解为:把多个 Agent Loop 连接成带分支、验证器、交接和停止条件的工作系统。
1.3. 先别急着上 Graph
如果一个单 Agent Loop 已经稳定完成任务,而且没有需要隔离的角色、可独立执行的并行工作、跨步骤审批或复杂回退,就先不要增加拓扑复杂度。
Graph 不是 Agent 的默认高级版,而是复杂协作出现以后才值得引入的控制层。
二、一张工作图由什么组成
2.1. Node:节点不是只能放 Agent
Graph 中的节点可以是 Agent、检索器、数据库查询、规则引擎、测试命令、人工审批点,或者普通的确定性函数。
这点很关键:多 Agent 只是 Graph 的一种实现方式,Graph 的本质是工作节点之间的关系。
每个节点都应该有一个小而明确的契约:
| 契约字段 | 要写清楚什么 |
|---|---|
| 输入 | 需要哪些事实、文件引用或上游产物 |
| 输出 | 交付什么结构化结果 |
| 权限 | 能读什么、写什么、执行什么 |
| 完成条件 | 什么证据说明这一步完成 |
| 失败处理 | 重试、回退、换节点还是交给人 |
| 预算 | 最大时间、调用次数、token 或费用 |
2.2. Edge:边是控制流,也是权威关系
Agent Graph 里的边至少包含三种信息:数据依赖、路由条件和控制权变化。
1 2 3 实现节点 → 测试节点 测试通过 → 审查节点 测试失败 → 实现节点第一条是正常依赖,后两条是条件路由。把条件写在边上,系统才不会靠模型自由发挥来决定失败后的下一步。
2.3. State:不要把共享状态退化成聊天记录
节点之间需要共享信息,但不等于把全部聊天记录拼进下一个 Prompt。更稳的做法是维护一个可版本化的任务状态:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 state: task: 修复空邮箱导致登录接口返回 500 acceptance: - 空邮箱返回 400 - 回归测试通过 - 不修改公开 API facts: - 入口位于 src/auth/login.ts artifacts: code_map: artifacts/code-map.v2.json patch: artifacts/login-fix.v1.diff evidence: tests: pending budget: max_rounds: 8 next: verify状态里保存的是已确认事实、产物引用、验证证据、预算和下一步,而不是所有中间废话。这样节点拿到的是最小必要 Context,长任务也更容易暂停和恢复。
2.4. Gate:让 Graph 知道什么时候不能继续
门控节点可以是测试、规则检查、评审 Agent 或人。它们把“我觉得可以了”变成可检查的证据。
1 2 3 实现 → 回归测试 ├─ 通过 → 安全检查 → 人工审批 → 交付 └─ 失败 → 回到实现,并附上失败日志没有 Gate,Graph 只是把不确定性拆成了更多步骤;有了 Gate,失败才能被识别、路由和记录。
三、Graph 如何承载复杂协作
3.1. 串行:把关键依赖写出来
最简单的工作图是流水线:
1 需求澄清 → 影响分析 → 实现 → 测试 → 审查 → 交付串行不是落后。对于有强依赖的任务,串行更容易观察,也更容易定位失败。第一次建 Graph,建议先把主干做成串行,再根据数据找并行机会。
3.2. 并行与汇合:独立工作才值得拆开
如果代码影响分析、测试设计和安全检查可以基于同一份稳定输入独立进行,可以这样组织:
1 2 3 ┌→ 代码影响分析 ─┐ 任务 → Context ──┼→ 测试设计 ─────┼→ 汇合与决策 → 实现 └→ 安全风险扫描 ─┘三条分支的输入版本必须固定,汇合节点还要能处理冲突,而不是盲目拼接结果。
并行不会自动带来更快。模型调用、数据锁、汇合等待和重复上下文都可能让总成本更高。
3.3. 回退:失败是一条路径,不是一句错误消息
| 失败类型 | 下一步 |
|---|---|
| 缺少文件或事实 | 回到探索节点 |
| 测试失败 | 把失败报告交给实现节点 |
| 需求冲突 | 升级人工澄清 |
| 权限不足 | 进入审批节点,不自动绕过 |
| 超出预算 | 保存 checkpoint,暂停任务 |
这就是 Graph 比“多个 Agent 自由对话”更像工程系统的地方:失败不会只停留在文本里,而会改变执行路径。
3.4. 人工接管:把权威边界放到图里
涉及生产发布、数据删除、资金、隐私或安全敏感操作时,人工应该是一个真实节点:
1 自动分析 → 自动修改 → 自动验证 → 人工审批 → 发布人工节点需要看到摘要、差异、测试证据、风险和可回滚方式。不要只显示“Agent 说已完成”。
四、Graph 工程和其他工程怎么分工
4.1. 五个工程面不是互相替代
| 工程 | 主要问题 | 在 Graph 中的职责 |
|---|---|---|
| Prompt | 这次要做什么? | 定义节点的意图和行为边界 |
| Context | 此刻应该看什么? | 生成节点输入和状态视图 |
| Harness | 能做什么、怎样验证? | 提供工具、权限、沙箱和证据 |
| Loop | 这一步如何行动和修正? | 驱动节点内部的连续执行 |
| Graph | 谁先做、谁检查、失败去哪? | 组织拓扑、状态转移和治理 |
1 2 3 4 5 6 7 8 9 Prompt:表达意图 ↓ Context:准备工作记忆 ↓ Harness:提供手脚和护栏 ↓ Loop:完成局部任务 ↓ Graph:组织多个局部任务Graph 并没有消灭前四个工程。相反,Graph 的每个节点仍然需要自己的 Prompt、Context、Harness 和 Loop。
4.2. Graph 工程不是 Knowledge Graph
| 方向 | 解决的问题 | 典型内容 |
|---|---|---|
| Graph 工程 | 工作应该怎样流动和被治理 | Agent、工具、测试、审批、状态、路由 |
| Knowledge Graph | 领域里的实体怎样关联 | 人、组织、产品、事件、概念、关系 |
| GraphRAG | 怎样利用知识关系检索和回答 | 实体抽取、关系、社区、摘要、向量 |
Microsoft GraphRAG 的官方流程会从原始文本抽取实体、关系和声明,再进行社区检测并生成摘要。这种图主要服务于知识组织和检索;Agent Graph 主要服务于工作编排。
两者可以组合:一个研究节点从 Knowledge Graph 或 GraphRAG 取证据,再把结构化结果交给工作图中的分析或决策节点。但它们不是同一层。
4.3. 框架是实现,不是定义
LangGraph 的官方定位是为长时间运行、有状态的 Agent 和工作流提供底层编排能力,强调持久化执行、人机协同、记忆和可观察性。OpenAI Agents SDK 则提供 Agent、Runner、handoff、guardrails、工具和 tracing 等编排构件。
这些工具可以帮助实现 Graph,但 Graph 工程应该先回答工作图的设计问题,再决定使用什么框架。否则很容易把框架 API 当成架构。
五、什么时候值得从 Loop 升级到 Graph
5.1. 先用这张判断表
| 现象 | 是否值得升级 | 原因 |
|---|---|---|
| 一个 Agent 能在几轮内完成小任务 | 暂不升级 | Graph 的管理成本没有收益 |
| 需要多个角色,但结果仍由人手工搬运 | 值得评估 | 交接关系已经成为瓶颈 |
| 有明显的并行分支和汇合条件 | 值得评估 | Graph 能表达依赖和冲突处理 |
| 失败需要回退到不同步骤 | 值得升级 | 条件边比自由对话更可控 |
| 高风险动作必须审批和审计 | 值得升级 | 人工节点和证据链需要显式存在 |
| 只是希望“看起来更智能” | 不推荐 | 增加节点不会自动增加可靠性 |
5.2. 一条务实的升级路径
- 保留现有单 Agent Loop,记录真实轨迹:读取了什么、调用了什么、在哪一步返工。
- 只把反复出现的交接和失败路径画出来,不要先画十几个 Agent。
- 为每个候选节点定义输入、输出、权限、完成条件、预算和失败处理。
- 先实现一条可观察的串行主干,再加入真正独立的并行分支。
- 把测试、规则检查和人工审批放进 Graph,而不是继续写在一段长 Prompt 里。
- 用成功率、返工次数、总时延、token/工具成本、人工介入次数和恢复成功率评估升级是否值得。
5.3. 三个最容易踩的坑
- 节点爆炸。 每个小动作都创建一个 Agent,导致上下文搬运和故障定位成本上升。
- 状态漂移。 节点各自保存一份事实,最后无法判断哪个版本可信。
- 只画成功路径。 没有失败、超时、权限拒绝、人工接管和回滚路径的图,不能算可治理的 Graph。
⚠️
注意
Graph 只能把关系和边界显式化,不能替你解决错误的业务规则、低质量的测试或不可信的数据。图越复杂,越需要稳定的状态模型、观测和验证。
六、收束:Graph 是协作与治理层
Graph 工程真正新增的,不是“更多 Agent”,而是三件事:
- 把交接关系变成显式的边;
- 把状态、产物、权限和证据变成可追踪对象;
- 把失败、审批和停止条件变成运行路径。
所以它和前面的四个工程是递进关系:Prompt 说清意图,Context 准备工作记忆,Harness 提供手脚与护栏,Loop 驱动一个节点行动,Graph 组织多个节点共同交付。
最后记住一句话:
1 2 不要因为 Graph 看起来更高级就使用它; 当交接、分支、回退和权威边界已经成为问题时,再用 Graph 把它们工程化。学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~