乐于分享
好东西不私藏

今天就来做一个 AI Agent吧

今天就来做一个 AI Agent吧

我今天就想做一个 AI Agent

目录:

  1. Agent 是如何工作的
  2. 五种工作流
  3. 构建你的 Agent
  4. 使用工具
  5. 给 Agent 加上记忆
  6. 让 Agent 真正跑起来
  7. 多 Agent 协作
  8. 最后做个收尾总结

好,直接进入正题……

1. Agent 是如何工作的


这些基础知识很重要。要是不先搞懂,你连自己到底需不需要 Agent 都判断不了。所以……

这是所有 Agent 共用的核心循环:

用户输入 → LLM 思考 → LLM 决策(直接回复,或调用工具)→ 如果调用工具:执行工具并将结果返回给 LLM → 重复以上过程

LLM 是负责推理的“脑子”。工具是负责执行动作的“手”(比如计算器、网页搜索、文件读写)。记忆则是“记事本”,用来记录到目前为止发生了什么。无论你用的是 LangGraph、CrewAI、Anthropic 的 SDK,还是 OpenAI 的 Agents SDK,这些框架本质上都只是把这个循环做了一层抽象封装,并没有改变它的核心逻辑。

增强型 LLM

普通的 LLM 接收文本,输出文本。增强型 LLM 则在此基础上多了三种能力:

  • 工具:模型可以调用的函数,例如计算器、数据库、API、文件操作等。Anthropic 和 OpenAI 都通过 JSON Schema 暴露工具能力;Anthropic 使用 input_schema,而 OpenAI 则把函数封装在带有 parameters 的 function 对象中。
  • 检索:能够从外部来源拉取相关信息,例如搜索引擎、文档、向量数据库。
  • 记忆:能够通过消息历史或其他持久化存储,在多轮交互中保留信息。

工作流 vs. 真正的 Agent

在选择实现方式时,“工作流”和“Agent”的区别非常关键。

工作流是确定性的:执行路径由你的代码控制,相同输入总会走相同流程。它适合步骤固定、边界清晰的任务,而且成本更低(因为需要的 LLM 调用次数更少)。

Agent 则是动态的:下一步做什么由 LLM 自己决定,它还可能反复调用工具。它更适合开放性任务,但成本也更高。判断自己到底需不需要做一个 Agent,最稳妥的起点通常是先从一个简单工作流开始,再看它是否真的有必要进化成自治 Agent。

2. 五种工作流

信不信由你,大多数问题其实根本不需要“完全自治”就能解决。下面这五种模式由 Anthropic 总结提出,也已经被广泛采用,基本覆盖了常见场景。每种模式都依赖增强型 LLM。

模式 1:提示链(Prompt Chaining)

它是什么:把一个任务拆成串行的多个步骤。每一次 LLM 调用都处理上一步的输出,并且可以在步骤之间加入程序化的“闸门”来校验质量。

适合什么时候用:当任务可以自然拆分成固定子任务时。你牺牲一点速度,换来更高准确性,因为每一步的 LLM 任务都更简单。

示例场景:先生成营销文案,再翻译;先写提纲,检查是否覆盖关键主题,再展开成完整文档。

模式 2:路由(Routing)

它是什么:先对输入进行分类,再把它分发给对应的专用处理器。每个处理器都使用为该类问题优化过的提示词。

适合什么时候用:当不同类别的输入需要完全不同的处理方式时。客服工单分诊就是经典案例。

模式 3:并行化(Parallelisation)

它是什么:同时发起多个 LLM 调用。分段式并行会把任务拆成互不依赖的子任务并行处理;投票式并行则是对同一任务执行多次,再聚合结果以提升置信度。

适合什么时候用:当子任务彼此独立时(分段式),或者当你需要对关键决策形成共识时(投票式)。

模式 4:编排者-执行者(Orchestrator-workers)

它是什么:由一个中心 LLM(编排者)动态拆解任务,并把子任务分配给多个执行 LLM。和并行化不同,这里的子任务不是预先定义好的,而是由编排者在运行时决定。

适合什么时候用:当任务复杂到你无法提前预测结构时。例如跨多个文件的代码生成、研究任务、报告写作。

模式 5:评估者-优化者(Evaluator-optimiser)

它是什么:一个 LLM 负责生成结果,另一个 LLM 负责评估并给出反馈。如果评估不通过,就把反馈送回去继续改,直到满足质量标准为止。

适合什么时候用:当你有清晰的评估标准,而且迭代优化确实能带来可衡量价值时。比如翻译、代码生成和写作任务。

3. 构建你的 Agent

那么,怎样把“我想让一个 Agent 帮我做 XYZ”变成一个真正可运行的东西?

最容易理解的方式是这样:

  1. 把这个任务写清楚
  2. 确定它需要哪些工具
  3. 告诉模型该如何表现
  4. 用 5 个真实案例测试它
  5. 只有在失败时,才增加复杂度

你不需要先精通五套框架,才能做出自己的第一个 Agent。对我们这种普通人来说,最好的起点是:

  • 如果你想要一个像能干操作员那样工作的 Agent,能使用工具、文件、Shell 命令、网页操作,并且擅长编码工作流,那就选 Anthropic
  • 如果你想要一个干净的开发者 SDK,带托管工具、任务交接(handoffs)、护栏(guardrails),并且能平滑走向生产环境,那就选 OpenAI

这份指南主要聚焦这两个。

最简单的思考模型

在构建 Agent 之前,先回答这四个问题:

  1. 最终结果是什么?Agent 到底要产出什么?

示例:

  • “研究一个主题并写出摘要”
  • “读取我的笔记并整理成抽认卡”
  • “查看支持请求并进行正确分流”
  • “比较多个产品并给出最佳选项”
  • “审核我的内容,并用我的语气重写”
  1. 它需要什么信息?它需要网页搜索、文件、数据库、表格、CRM,还是只需要用户发来的消息?
  2. 它被允许执行哪些动作?它只能回答问题吗?还是可以搜索?可以编辑文件?可以发送邮件?可以写代码?可以调用你自己的函数?
  3. 它必须遵守哪些规则?包括语气、格式、约束条件、安全规则、不确定时怎么办,以及什么样的结果才算“好”。

如果你能把这四个问题答清楚,通常一天之内就能做出第一版 Agent。

一个很实用的小技巧,后面我们会展开讲:你可以直接把自己的想法丢给 LLM,让它深入思考,替你把上面这些问题都回答出来。

在真正动手构建之前,如何用 AI 先把 Agent 设计出来

一个非常实用的做法是,在写代码之前,先用 Claude 或 ChatGPT 帮你把 Agent 定义清楚。

可以直接贴下面这样的内容:

我想构建一个 AI Agent。我的目标是:[描述你希望它完成什么]用户可能会提出类似这样的问题:[填写 5 个真实、具体的示例]这个 Agent 应该可以访问:[网页搜索 / 文件 / 计算器 / 自定义 API / 不需要其他能力]它必须始终:[列出不可妥协的规则]它绝对不能:[列出边界条件]请帮我把这些内容整理成:1. 一份清晰的 Agent 规格说明2. 一段系统提示词3. 一份工具清单4. 第一版开发路线图5. 10 个测试用例

就这一个提示词,就足够帮一个新手把模糊的想法变成一份可以真正开工的实现计划。

一个适合新手的 Agent 设计公式

每次都套用这个结构:

Agent = 角色 + 目标 + 工具 + 规则 + 输出格式

示例:

  • 角色:XX项目研究助理
  • 目标:查找准确信息,并清晰地总结出来
  • 工具:网页搜索、文件检索、计算器
  • 规则:必须标注来源,不要臆测,不确定时要明确说明
  • 输出格式:摘要、风险、机会、最终结论

这就是大多数实用型 Agent 的基础骨架。

先从下面这五类新手 Agent 里挑一种开始

如果你是新手,别一上来就搞什么多 Agent 群体协作。先从下面这些类型里挑一个最实际的:

A-研究型 Agent

适用场景:你希望 Agent 帮你收集信息并做总结。

示例:

  • “研究一下脚踝扭伤后最好的康复训练动作”
  • “查一下某个加密协议的最新进展”
  • “对比三台笔记本电脑”

所需能力:

  • 网页搜索
  • 如果你希望它使用你自己的文档,还需要文件检索
  • 清晰的输出格式

B-内容型 Agent

适用场景:你希望 Agent 帮你撰写、改写、总结,或转换内容形式。

示例:

  • “把我的笔记整理成一篇 newsletter”
  • “用我的品牌语气改写这段内容”
  • “总结这份会议纪要”

所需能力:

  • 通常只需要一个足够强的系统提示词
  • 可选的文件访问能力
  • 你偏好风格的示例

C-工作流型 Agent

适用场景:你希望 Agent 按照一个可重复的业务流程来执行任务。

示例:

  • “给客服工单分类”
  • “把销售线索分发到正确类别”
  • “检查表单提交内容,并生成一版回复草稿”

所需能力:

  • 清晰的分类体系
  • 明确的规则
  • 有时还需要自定义工具或 API 调用

D-个人知识型 Agent

适用场景:你希望 Agent 基于你自己的文档来回答问题。

示例:

  • “只使用我的 PDF 来回答”
  • “搜索我的笔记并解释这个主题”
  • “找出所有提到这个客户的地方”

所需能力:

  • 文件检索或 RAG
  • 明确要求它必须以所提供材料为依据,不能脱离材料乱答

E-操作型 Agent

适用场景:你希望 Agent 在某个环境中实际执行操作。

示例:

  • “读取这些文件并修改它们”
  • “搜索网页、整理结果,并保存成报告”
  • “执行 Shell 命令并帮我调试代码”

所需能力:

  • 工具
  • 权限
  • 明确而严格的安全边界

Anthropic:理解如何构建你的第一个 Agent,最容易上手的方式

如果你希望模型能使用工具,并且能在某个环境里实际操作,那么 Anthropic 的 Agent 工具体系会特别有帮助。Claude Code 于 2025 年 2 月发布,之后 Claude Code SDK 又在 2025 年 9 月更名为 Claude Agent SDK。截至 2026 年 3 月,GitHub 上列出的当前版本是 v0.1.50。

什么情况下 Anthropic 是个好选择

如果你希望 Agent 具备以下能力,优先考虑 Anthropic:

  • 读取、写入和编辑文件
  • 使用 Shell 命令
  • 搜索网页
  • 使用 MCP 工具
  • 擅长编码和技术类任务
  • 像一个可靠的助手一样,按步骤推进工作

使用 Anthropic 时,你本质上在做什么

从新手视角看,其实你只是在做三件事:

  1. 给 Claude 一个明确的任务
  2. 给 Claude 一组可用工具
  3. 让 Claude 一直循环,直到任务完成

就这么简单。

新手示例:一个“研究并总结”的 Agent

假设你想要的是:

“一个能帮我研究某个主题,并写出一份清晰报告的 Agent。”

那么你的构建方案会是:

  • 角色:高级研究助理
  • 目标:查找准确信息,并清晰总结
  • 工具:网页搜索,必要时加上文件访问
  • 规则:标注来源;不确定时要明确说明;保持简洁
  • 输出:要点总结 + 关键风险 + 结论

这些内容就能变成你的系统提示词:

SYSTEM_PROMPT = '''你是一个细心的研究助理。你的工作是帮助用户准确研究主题。在需要时使用工具。不要猜测。如果信息不确定或不完整,请清楚说明。始终产生:1. 总结2. 关键发现3. 风险或不确定性4. 最终结论'''

现在,用户就可以提这样的问题:

  • “研究一下最新的 AI agent SDK”
  • “对比 Anthropic 和 OpenAI,看看哪个更适合新手构建 Agent”
  • “找出三个高质量来源,并做总结”

到这里,它其实已经是一个真正可用的 Agent 了。

新手示例:一个基于文件的写作 Agent

也许你想要的是:

“读取我的笔记,再用我的语气把它们改写成一篇清晰的文章。”

那你的设计就会变成:

  • 角色:写作助理
  • 目标:把粗糙笔记整理成打磨过的成稿
  • 工具:文件读取,必要时加文件写入
  • 规则:保留原意、提升清晰度、匹配语气
  • 输出:最终文章 + 可选的标题建议

这就比一个模糊的“内容型 Agent”要容易落地得多。

在真正构建 Anthropic Agent 之前,你应该先让 AI 帮你回答这些问题

你可以直接用 LLM 帮你把方案定义清楚:

帮我设计一个基于 Anthropic 的 Agent。我的目标是:[goal]我希望这个 Agent 能够:[list actions]我希望这个 Agent 使用这些工具:[list tools]我希望最终输出长这样:[format]请帮我生成:1. 一段强有力的系统提示词2. 一份最小可用工具清单3. 一个第一版 Python 示例4. 10 个测试提示词5. 提升可靠性的建议

这个提示词通常能帮你把 80% 的工作先铺好。

OpenAI:理解如何构建你的第一个 Agent,最容易上手的方式

OpenAI 于 2025 年 3 月 11 日发布了 Agents SDK,同时推出了 Responses API,以及内置的网页搜索、文件检索和计算机使用工具。到了 2026 年 3 月,Python 包 openai-agents 的版本是 0.13.1。

什么情况下 OpenAI 是个好选择

如果你想要下面这些特性,优先选 OpenAI:

  • 一个非常干净的 Agent API
  • 易于接入自定义函数工具
  • 内置的托管工具
  • 专家型 Agent 之间的任务交接(handoff)
  • 护栏(guardrails)与链路追踪(tracing)
  • 从原型走向生产环境的平滑路径

使用 OpenAI 时,你本质上在做什么

从新手角度看,整个构建过程就是:

  1. 创建一个 Agent
  2. 给它写清楚指令
  3. 需要的话,再加上工具
  4. 用真实用户请求跑起来

就这些。

新手示例:一个支持请求分流 Agent

假设你的目标是:

“读取传入的支持请求,并判断它属于计费、技术,还是销售问题。”

那它就会变成:

  • 角色:支持请求分流助理
  • 目标:正确给请求分类
  • 工具:先不用,后面可以再加 CRM 工具
  • 规则:只能选一个类别,并简要说明原因
  • 输出:类别 + 原因

代码大概会长这样:

from agents import Agent, Runneragent = Agent(
name="Support Triage Agent",
instructions="""You classify customer requests.Choose exactly one category:- billing- technical- salesReply with:1. Category2. One sentence explaining why""",)result = Runner.run_sync(agent, "这个月我的订阅被收费了两次。")print(result.final_output)

到这里,它已经是一个有实际用途的 Agent 了。

新手示例:添加一个自定义工具

现在假设你想要的是:

“在需要的时候,帮用户完成计算。”

from agents import Agent, Runner, function_tool@function_tooldef calculate(expression: str) -> str:
import math
allowed = {k: v for k, v in math.__dict__.items() if not k.startswith("__")}
return str(eval(expression, {"__builtins__": {}}, allowed))agent = Agent(
name="Math Helper",
instructions="帮助用户解决数学问题。需要时使用计算器工具。",
tools=[calculate],)result = Runner.run_sync(agent, "10000 以 5% 的复合增长在 8 年后是多少?")print(result.final_output)

这时候,这个 Agent 就不只是陪你聊天了,它已经能够通过工具去执行实际动作。

新手示例:使用托管工具

OpenAI Agents SDK 还支持托管工具,例如网页搜索、文件检索和代码解释器。这些能力在 SDK 文档里都提供了辅助函数。对新手来说,你可以把它们理解成“预制能力”模块,直接挂到 Agent 身上,而不是每样都自己从零手写。

这意味着你可以构建出这样的 Agent:

  • “从网上研究这个主题并做总结”
  • “搜索我的文件,并基于文件内容回答问题”
  • “运行代码来分析这份数据”

在真正构建 OpenAI Agent 之前,你应该先让 LLM 帮你回答这些问题:

帮我设计一个 OpenAI Agent。我的目标:[goal]我希望它处理的任务有:[list tasks]我觉得它需要这些工具:[list tools]输出应该长这样:[format]请给我:1. 一段清晰的 Agent 指令块2. 一个最简单的第一版实现3. 一个在需要时带工具的版本4. 10 个测试提示词5. 常见失败模式,以及对应修复方法

如何定制你的 Agent,才能让它真按你的预期做事

新手最容易翻车的地方就在这儿:他们做出来的是一个“泛用助手”,而不是一个“具体 Agent”。

拿下面这份检查清单对照就行。

1、把任务范围收窄

不好的写法:

  • “帮我处理一些业务相关的事”

更好的写法:

  • “把销售电话整理成行动项摘要”
  • “把销售线索分类成高意向、中意向、低意向”
  • “研究加密项目,并输出风险、催化因素和最终判断”

2、定义输出格式

不好的写法:

  • “给我一个答案”

更好的写法:

  • “请返回:摘要、证据、风险、下一步建议”
  • “请返回 JSON,字段包括 category、confidence、explanation”
  • “请按 5 个标题输出项目符号列表”

3、提供示例(few-shot)

如果你在意语气、结构,或者分类质量,那示例会非常有帮助。

你可以直接告诉模型:

  • “下面是 3 个优秀输出示例”
  • “下面是 5 个请求分类示例”
  • “请严格按照这种风格来写”

4、只在必要时添加工具

如果任务只是改写笔记,就不要加网页搜索。如果答案应该完全来自提示词本身,就不要加文件访问。每多一个工具,复杂度就会上一个台阶。

5、用真实提示词测试,而不是只用理想化输入

要用真实用户会打出来的那种乱糟糟提示词去测。

不要只测这种:

  • “Please classify this technical issue”

还要测这种:

  • “my account is broken and i keep getting charged what do i do”

这才是真正能看出你的 Agent 到底在干嘛的时候。

你的构建路径可以这样走:

第 1 步:用一句话写清楚这个 Agent 是干什么的
示例:“我想做一个 Agent,把我零散的笔记整理成一份干净的每周 newsletter。”

第 2 步:让 Claude 或 ChatGPT 把这句话展开成:

  • 一份 Agent 规格说明
  • 一段系统提示词
  • 一份工具清单
  • 10 个测试提示词

第 3 步:先做出最小可用版本
先别搞多 Agent。先别上复杂记忆。除非真的需要,否则也别急着上 RAG。

第 4 步:拿 10 个真实案例去测试

第 5 步:一次只改一个东西

  • 提示词
  • 输出结构
  • 示例
  • 工具
  • 记忆
  • 检索

这个顺序很重要。别一股脑全扑上去,把自己绕晕了。

避免犯这个错

最大的错误,就是一上来就想做一个“全能超级 Agent”。

不要从这些东西开始:

  • 网页搜索
  • 文件检索
  • 数据库访问
  • 记忆
  • 多 Agent 交接
  • 复杂护栏
  • 自定义仪表盘
  • 20 个工具

你应该从这些开始:

  • 一个明确任务
  • 一个 Agent
  • 一段清晰提示词
  • 最多一到两个工具
  • 五到十个真实测试用例

你真正更容易做成这件事的方式,就是别把自己先绕死,别一上来就过度复杂化。

实用总结:

现在你已经到第 3 部分的结尾了。这一部分讲的就是如何构建你的第一个 Agent。读到这里,你应该能明确说出:

  • 我知道我的 Agent 是干什么的
  • 我知道它需要哪些工具
  • 我知道它该遵守哪些规则
  • 我知道输出应该长什么样
  • 我知道该从 Anthropic 还是 OpenAI 起步
  • 我知道如何反过来利用 AI 帮我设计第一版

4. 使用工具

大多数人都会在这里搞错。

“工具越多 = Agent 越聪明” ->错。

更好的工具,才会让 Agent 更聪明。更少的工具,反而会让 Agent 更可靠。

理解工具最简单的方式

工具本质上就是:

“AI 靠自己做不到的东西”

例如:

  • 计算数字
  • 搜索网页
  • 读取你的文件
  • 发送邮件
  • 查询数据库

第 1 步:先问自己一句,“这事真的需要工具吗?”

在你添加任何工具之前,先问:

  • 模型能不能只靠推理就回答这个问题?
  • 还是说,它确实需要真实世界的数据或执行动作?

示例:

不需要工具:

  • “改写这封邮件”
  • “总结这段文字”
  • “解释这个概念”

需要工具:

  • “现在天气怎么样?”
  • “搜索最新新闻”
  • “计算复利”
  • “从我的表格里拉取数据”

规则:

如果任务需要外部数据或实际动作,就用工具;如果不需要,就别加。

第 2 步:用 AI 帮你设计工具

我正在构建一个 AI Agent。我的目标是:[describe goal]我认为这个 Agent 需要完成这些事情:[list actions]这些任务里,哪些需要工具?我应该创建哪些工具?请尽量保持简单、最小化。请返回:1. 工具清单2. 每个工具的说明3. 每个工具所需的输入参数

这会帮你省下不少时间。

第 3 步:保持简单,别整花活

不好的工具设计:

manage_files(action, file, destination, overwrite, format, permissions)

更好的工具设计:

read_file(path)write_file(path, content)delete_file(path)

规则:

一个工具,只做一件清晰的事。

第 4 步:明确告诉 Agent 什么时候该用工具

大多数人就是死在这一步。

不好的写法:

“计算器工具”

更好的写法:

“当任务涉及数学计算时,必须使用这个工具。不要臆测计算结果。”

第 5 步:让 Agent 先失败,再修它

拿真实问题去测,例如:

“2^16是多少”、“计算10年7%的增长率”

如果它:

  • 不用工具 → 修改工具描述
  • 工具用错了 → 修改输入参数设计
  • 出现幻觉 → 把规则收紧

现在你已经到第 4 部分结尾了,你应该知道:

  • 你不需要很多工具
  • 你可以用 AI 帮你设计工具
  • 工具越简单,Agent 往往越好
  • 工具说明往往比工具本身还重要

好,继续……

5. 给 Agent 加上记忆

很多人把“记忆”这件事复杂化得离谱。

你其实只需要理解一件事:

记忆只有两种

  1. 短期记忆(对话记忆)

它其实就是:

“到目前为止,对话里说过什么”

这个能力你默认就已经有了。

  1. 长期记忆(外部知识)

它指的是:

“Agent 之后还能查到的东西”

例如:

  • 你的笔记
  • PDF
  • 文档
  • 数据库

你到底什么时候才真的需要记忆?

问自己:

  • Agent 是否需要跨多轮消息记住内容?→ 是 → 需要短期记忆
  • 它是否需要使用外部文档?→ 是 → 需要长期记忆
  • 否则 → 你大概率根本不需要记忆

第 1 步:让 AI 帮你判断自己需不需要记忆

我正在构建一个 AI Agent。我的目标是:[goal]这个 Agent 是否需要:1. 对话记忆?2. 外部知识(RAG)?如果需要,请解释为什么。如果不需要,也请解释为什么。请保持简单。

第 2 步:你有三个选择……

方案 A:不要记忆(从这里开始)

  • 对大多数新手来说,这是最好的起点
  • 适用于 70% 的场景

方案 B:对话记忆

  • 大多数 SDK 已经内置处理了
  • 你只需要别重置消息历史

方案 C:基于文件的记忆(轻量 RAG)

  • 上传文档
  • 使用文件检索工具

第 3 步:别一上来就玩过头

常见大坑:

  • 加向量数据库
  • 加 embeddings
  • 加复杂流水线

而这时候你甚至都还没搞清楚自己到底需不需要它们。

规则:

如果你的 Agent 在没有记忆的情况下也能正常工作,那就不要加记忆。

好,现在你已经到第 5 部分结尾了,你应该知道:

  • 大多数 Agent 并不需要复杂记忆
  • 先从简单开始
  • 只有出问题时,再补记忆

6. 让 Agent 真正跑起来

这里往往就是 Agent 要么做成了,要么做成一坨的分水岭。而很多 Agent 之所以很烂,通常都是因为:

  • 提示词太差
  • 没有测试
  • 预期不切实际

所以……

第 1 步:用 AI 生成测试用例

我构建了一个 AI Agent,它的目标是:[goal]请创建 15 条真实感强的用户输入,要求:- 杂乱- 模糊- 符合真实世界表达方式另外还请包含:- 边界情况- 容易混淆的输入- 糟糕输入

第 2 步:像真实用户一样去测试

不要测试这种:

请对这个计费请求进行分类

要测这种:

“为什么他tm我又被收费了”

第 3 步:一次只修一个问题

当它失败时,问自己:

  • 是提示词不清楚吗?
  • 是输出格式太模糊吗?
  • 是少了某个工具吗?
  • 是少了某条规则吗?

第 4 步:用 AI 帮你调试 Agent

这是我的 Agent:这是我的输入:[input]这是它的输出:[output]问题出在哪?我该怎么修?请具体一点。

第 5 步:别太早发疯式加复杂度

先不要加:

  • 多个 Agent
  • 复杂工作流
  • 自动化流水线

除非:

  • 你的简单版本已经能稳定工作

现在你已经到第 6 部分结尾了,你应该知道:

  • 测试就是一切
  • AI 可以帮你调试它自己
  • 先修清晰度,再谈复杂度

下一部分……

7. 多 Agent 协作

这里特别容易一路跑偏。

很多人会觉得:

“Agent 越多 = 能力越强”

错。

永远先从一个 Agent 开始。

永远。

只有在这些情况下,才考虑增加:

  • 任务边界已经明显可以拆开
  • 一个 Agent 明显扛不住
  • 不同角色之间差异非常大

只有 3 种情况,你才真的需要多个 Agent

  1. 技能不同

示例:

  • 研究 Agent
  • 写作 Agent
  1. 流程明确分段

示例:

  • 输入 → 分析 → 写作 → 输出
  1. 权限不同

示例:

  • 一个 Agent 只能读取数据
  • 一个 Agent 可以执行动作

第 1 步:用 AI 帮你判断是否需要多个 Agent

我已经构建了一个 AI Agent。它的任务是:[describe]这个场景应该用:1. 单个 Agent2. 多个 Agent如果是多个 Agent:- 分别承担什么角色?- 为什么?请保持简单。

最稳妥的模式是 Supervisor 模式:

用户 → 主 Agent →(有需要时再调用其他 Agent)

不要一上来就做:

  • swarm
  • 完全自治的多 Agent 系统

这玩意很容易碎一地。

第 2 步:角色命名保持简单

不好的写法:

  • “具备动态认知分层能力的 AI 战略 Agent”

更好的写法:

  • “研究 Agent”
  • “写作 Agent”

第 3 步:慢慢增加 Agent

起步:

  • 1 个 Agent

然后:

  • 最多先加到 2 个

只有在下面这种情况下再继续扩展:

  • 你确实看到了真实收益

第 7 部分的结论是什么?

  • 大多数人其实根本不需要多个 Agent
  • 单 Agent + 好工具,通常已经够用
  • 只有被现实逼到那一步时,再增加复杂度

8. 收尾总结

这份指南里最重要的洞见是:Agent 在概念上其实很简单,但在落地执行上要求很高。核心循环无非就是 LLM 思考、调用工具、重复推进,这些逻辑 50 行 Python 可能就能写完。真正的工作量,藏在工具设计、错误处理、评估机制,以及判断什么时候应该用更简单模式(比如提示链、路由)而不是自治 Agent 里。

给刚开始上手的人,三个可执行建议:

  1. 先亲手做一个从零开始的 Agent。理解最原始的循环,会让所有框架都变得“透明”而不是“玄学”。这样你排查问题会更快,选工具也会更准。
  2. 从能跑通的最简单模式开始。提示链足以处理大多数多步骤任务;路由模式足以处理大多数“先分类再执行”的流程。只有当你真的需要让 LLM 动态决定执行路径时,再升级到自治 Agent。
  3. 尽早把精力投入在工具设计和评估上。一个命名清晰、描述准确、错误信息结构化的工具,对 Agent 表现的提升,往往比你换模型、换框架更大。而 20 个高质量测试用例,通常也比一大堆手动乱测更能抓出真实问题。

这个领域变化很快。MCP 在不到一年里就成了通用标准,两家头部厂商都推出了 Agent SDK,新框架几乎月月冒头。但这份指南讲的基本功并没有变:Agentic Loop、五种工作流模式、好的工具设计原则,以及“先从简单开始”的纪律。把这些学扎实,后面不管世界怎么变,你都能跟得上。

你现在已经能自己构建一个 Agent 了。