Skip to content

AI Agent / 工作流平台 架构模板

代表产品 / 原型:Dify、Coze、LangGraph、LangChain、AutoGPT、CrewAI 一句话定位:让大模型不只是「回答」,而是能「规划 → 调用工具 → 观察结果 → 再决策」,自主地多步完成任务;平台负责编排、记忆、工具接入和可控性。


1. 一句话定位

Agent 平台 = 给大模型装上「手脚(工具)+ 记忆 + 一个行动循环」,让它从「会说」变成「会做」。

它和 AI 对话产品 的区别在于「自主性」:对话产品基本是「你问我答」;Agent 则会自己决定下一步该干什么——查资料、调 API、执行代码、再根据结果决定下一步,循环往复直到任务完成。平台的核心职责,是让这种自主行为可编排、可记忆、可控制、可观测

2. 业务本质:它在解决什么问题

它要自动化的是需要「多步推理 + 使用工具」才能完成的任务:做一份调研报告、处理一个客服工单到底、写并调试一段代码、跑通一条业务流程。

这些任务的共同点是:没法一问一答搞定,需要中间「动手做事 + 看反馈 + 调整」。Agent 平台卖的就是「把这种复杂的多步任务自动化」。

Anthropic 的关键洞见值得先记住:能用确定的工作流(workflow)解决,就别上自主 Agent。 工作流可预测、可控、便宜;Agent 灵活,但更贵、更慢、更不可控。这和 架构模式 那句「能不用就先别用」一脉相承。

3. 核心需求与约束

功能性需求:

  • [ ] 工具 / 函数调用(让模型能调外部能力)
  • [ ] 多步规划与行动循环(plan → act → observe → repeat)
  • [ ] 记忆:短期(本次上下文)+ 长期(跨会话,常用向量检索)
  • [ ] 工作流编排(把确定的步骤固化下来)
  • [ ] 人类介入(human-in-the-loop):关键步骤让人审批
  • [ ] 可观测:每一步在干什么,可追踪可调试

非功能性需求 / 质量属性:

质量属性目标为什么对这类系统重要
任务成功率越高越好Agent 的根本价值
可控 / 可预测自主性越强越难控,要能兜底
成本可控多步 = 多次模型调用,成本随步数累加
可观测全程可追踪多步黑盒极难调试,trace 是刚需
安全必须工具能「改变世界」,有副作用

关键约束(不可逾越的边界):

  • 🔴 模型会出错、会跑偏:循环可能不收敛(原地打转、无限循环)。
  • 🔴 工具调用有副作用:发邮件、改数据、花钱——很多操作不可逆。
  • 🔴 成本随步数线性增长:一个任务十几步,就是十几次 LLM 调用。
  • 🔴 多步会累积误差:前一步错,后面越走越偏。
  • 🔴 不可预测:同一任务两次运行路径可能不同。

4. 架构全景图

   用户任务:「调研竞品定价,整理成表」


┌──────────────────────────────────────────────────────────────┐
│  编排器(Orchestrator)                                          │
│   ┌──────────────────── 行动循环 ────────────────────────┐    │
│   │  ① 模型规划:下一步做什么?                              │    │
│   │  ② 调用工具(搜索 / 代码 / API…)── 在沙箱里执行         │    │
│   │  ③ 观察结果,喂回模型                                   │    │
│   │  ④ 没完成?回到 ①(受【步数/成本/超时上限】约束)        │    │
│   └────────────────────────┬───────────────────────────┘    │
│        │                    │                    │            │
│        ▼                    ▼                    ▼            │
│  ┌──────────┐      ┌────────────────┐    ┌──────────────┐    │
│  │ 工具沙箱  │      │ 记忆            │    │ 状态/检查点    │    │
│  │ (隔离执行)│      │ 短期+长期(向量) │    │ (长任务可恢复) │    │
│  └──────────┘      └────────────────┘    └──────────────┘    │
│                                                               │
│   ⚠ 高危/不可逆操作 ──▶ 【人类介入关卡】审批后才执行            │
└──────────────────────────┬───────────────────────────────────┘
                           ▼  全程 trace 写入可观测系统
                       任务结果

灵魂是中间那个行动循环,以及套在它外面的控制阀(步数 / 成本 / 超时上限、人类审批、沙箱)。没有控制阀的 Agent 循环,就是一台会自己烧钱、还可能闯祸的失控机器。

5. 组件职责

  • 编排器(Orchestrator):驱动「规划 → 行动 → 观察」循环,或执行固化的工作流。为什么需要:它是把模型的「想法」变成「受控行动序列」的中枢。
  • 工具注册与执行(沙箱):登记可用工具,在隔离环境里真正执行模型要求的操作。为什么需要:让模型「能做事」;沙箱是因为执行外部代码 / 操作有风险。
  • 记忆:短期(本轮上下文)+ 长期(跨会话,常用 向量库 检索)。为什么需要:多步任务和长期助手都要「记得住」。
  • 状态 / 检查点:把长任务的进度持久化,中断后可恢复。为什么需要:Agent 任务可能跑很久,不能一断就全废(durable execution)。
  • 人类介入关卡(human-in-the-loop):高危 / 不可逆操作前暂停,等人审批。为什么需要:给自主性装一个「人能踩的刹车」。
  • 可观测 / trace:记录每一步的思考、工具调用、结果。为什么需要:多步黑盒,没有 trace 根本没法调试。

6. 关键数据流

场景一:自主 Agent 的行动循环

任务:「查华东区上季度销量并画个趋势图」
  ① 模型:我需要先查数据 ──▶ 调「数据库查询」工具
  ② 沙箱执行 ──▶ 返回 [Q1,Q2,Q3 销量]
  ③ 喂回模型:模型:数据有了,现在画图 ──▶ 调「代码执行」工具
  ④ 沙箱跑绘图代码 ──▶ 返回图片
  ⑤ 模型:任务完成 ──▶ 输出结果
  ⟲ 全程受「最多 10 步 / 最多 $0.5 / 超时 60s」约束,超了就停

场景二:确定性工作流(更可控的选择)

固定流程:[接收工单] → [分类] → [检索知识库] → [生成回复] → [人工审核] → [发送]
  每一步是预先定义好的,模型只在某些节点做判断
  ✓ 可预测、好调试、便宜 —— 适合流程明确的任务
  (对比:自主 Agent 适合流程不确定、需要随机应变的任务)

7. 数据模型与存储选择

核心实体:任务 / 会话;步骤轨迹(trace);记忆;工具定义;检查点

数据存储类型为什么
任务状态 / 检查点关系型 / 持久化日志长任务要可靠、可恢复
长期记忆向量库按语义检索「相关的过往」
步骤轨迹(trace)时序 / 日志海量、按时间回放、用于调试和评测
工具定义 / 配置关系型结构化、要一致

8. 关键架构决策与权衡 ⭐

决策 1:确定性工作流,还是自主 Agent?(最重要的判断)⭐

  • 工作流:步骤预先编排好,模型只在节点上做有限判断。可预测、便宜、好调试,但不灵活。
  • 自主 Agent:模型自己决定每一步。灵活、能应对开放任务,但贵、慢、不可控。
  • 取向:默认用工作流,只在「任务确实开放、必须随机应变」时才上自主 Agent。 这是 Anthropic「能不用 Agent 就别用」的核心建议。

决策 2:循环怎么收敛 / 兜底?(防失控的生命线)⭐

  • 不设限:模型可能原地打转、无限循环、烧光预算。
  • 设上限:最大步数、最大成本、超时、重复检测。
  • 取向:必须设多重上限。 自主性越高,越要有硬性的「刹车」。

决策 3:工具执行的安全边界 ⭐

  • 给 Agent 无限制权限:它可能误删数据、乱发邮件、闯大祸。
  • 沙箱隔离 + 最小权限 + 高危操作人工确认。
  • 取向:工具一律沙箱执行;不可逆 / 高影响操作走 human-in-the-loop 审批。

决策 4:单 Agent,还是多 Agent 协作?

  • 单 Agent:简单,但复杂任务里它要身兼数职。
  • 多 Agent(如「规划者 + 执行者 + 审查者」):分工明确,但协调成本、成本和延迟都上升。
  • 取向:从单 Agent 起步;任务复杂到「一个角色扛不动」时再拆多 Agent。

9. 规模化与瓶颈

  • 第一个瓶颈:成本与延迟随步数放大。 → 破解:能工作流就别自主、限制步数、简单子任务用小模型(模型路由)、缓存。
  • 第二个瓶颈:长任务的状态管理。 → 破解:检查点持久化,支持中断恢复(durable execution)。
  • 第三个瓶颈:工具执行并发与隔离。 → 破解:沙箱池、超时、资源配额。
  • 第四个瓶颈:调试困难(多步黑盒)。 → 破解:全程 trace + 可观测,把每一步摊开看。

10. 安全与合规要点

  • 🔴 工具能「改变世界」:发邮件、转账、改库——必须沙箱 + 最小权限 + 不可逆操作人工确认。
  • 🔴 提示注入在 Agent 里危害最大:检索结果 / 工具返回 / 网页内容里若藏「去把数据删了」,而 Agent 又有工具权限,后果严重。把一切外部内容当不可信输入
  • 失控防护:步数 / 成本 / 超时上限,防无限循环烧钱。
  • 审计:每一步、每次工具调用都留痕,可追责。

11. 常见误区 / 反模式

  • 能用固定流程,却硬上自主 Agent → ✅ 简单 / 明确任务用工作流,可预测又便宜。
  • 循环不设上限 → ✅ 步数 / 成本 / 超时多重兜底。
  • 给 Agent 无限制工具权限 → ✅ 最小权限 + 沙箱 + 高危操作人工确认。
  • 信任工具 / 检索返回的内容 → ✅ 当不可信输入,严防注入。
  • 不做可观测,多步全黑盒 → ✅ 全程 trace,否则无法调试和优化。

12. 演进路线:MVP → 成长期 → 成熟期(不同阶段怎么设置)

阶段规模量级怎么设置(具体)此时该操心什么
MVP验证Dify / Coze 拖拽搭一个固定工作流或单 Agent + 几个工具;设好步数 / 成本上限先验证「自动化这个任务」到底靠不靠谱
成长期上规模LangGraph 等自定义编排:加长期记忆、human-in-the-loop、状态持久化、trace 可观测成功率、可控性、成本、可调试
成熟期复杂 / 高价值任务多 Agent 协作、durable 长任务、精细权限与沙箱、模型路由控成本、持续评测成功率成功率、安全、成本、容灾、评测

13. 可复用要点

  • 💡 「能确定就别自主」——可预测性是工程美德。 和「能不用模式就别用」「能用单体就别微服务」是同一种克制。
  • 💡 任何自主循环都必须有兜底:上限、超时、熔断。给放飞的东西装刹车,是系统安全的通则。
  • 💡 有副作用的操作要可控 + 可审计:沙箱、最小权限、人工确认、留痕——这套在任何「能改变外部世界」的系统里都适用。
  • 💡 外部内容永远不可信:Agent 的工具权限放大了提示注入的危害,更要警惕。
  • 💡 状态持久化让长流程可恢复:把进度存成检查点,呼应 协同文档 的操作日志思想。

🎯 随堂检验

🤔关于自主 Agent,业界(如 Anthropic)的建议是?
  • A能上自主 Agent 就尽量上,越自主越先进
  • B能用确定的工作流解决,就别上自主 Agent
  • C复杂度越高越好

参考原型与延伸阅读

本模板基于以下真实开源项目公开工程资料整理。想动手,从拖拽式平台到代码级编排框架都有。

🔧 开源原型(可直接读代码):

  • langgenius/dify — 可视化的 LLM 应用 / Agent 工作流平台,内置工具、RAG、可观测,适合快速搭建。
  • langchain-ai/langgraph — 用「图」建模有状态、长时运行 Agent 的编排框架,支持持久执行与 human-in-the-loop。
  • langchain-ai/langchain — 最经典的 LLM 应用框架,工具调用 / 记忆 / 链式编排的事实标准之一。

📖 工程文章:


📌 一句话记住 Agent 平台:它是「给模型装上手脚和一个行动循环」,让它会做事——但所有设计都在回答『怎么让自主行动既有用、又不失控』:能用工作流就别放飞,放飞了就一定要装上刹车、沙箱和人工审批。