AI Agent 与多智能体
本页介绍 LLM 应用生态中最高阶的形态——AI Agent(智能体)与多智能体系统:让 LLM 从”你问我答”进化为”你说目标,我自己搞定”。它是 LLM 应用生态概览中的”手脚”层,核心依赖提示工程中的 ReAct 模式和MCP 协议与工具调用中的工具能力。
Agent = 给 LLM 装上手脚和自主决策能力。
普通 LLM 对话像”咨询顾问”——你问一个,它答一个。Agent 像一个”实习生”——你给目标,它自己规划步骤、调用工具、检查结果、循环执行,直到任务完成。
- 单 Agent 循环:目标 → 思考(该干什么)→ 行动(调工具)→ 观察(看结果)→ 再思考 → … → 完成。这就是 ReAct 模式(Reasoning + Acting,推理与行动交替循环)。
- 多智能体协作:复杂任务拆给多个角色不同的 Agent,各司其职。比如”产品经理 Agent 写需求 → 程序员 Agent 写代码 → 测试 Agent 验证”——像一个小型团队。
2025 年里程碑:2025 年被称为”Agent 元年”——OpenAI Operator(浏览器操控 Agent)、Anthropic Computer Use(桌面操控 Agent)、Manus(通用 Agent)、Google Project Mariner 等产品集中爆发,Agent 从实验性技术进入主流商业应用。底层基础设施也在快速成熟:Anthropic 推出的 MCP(Model Context Protocol,模型上下文协议)成为连接 LLM 与外部工具的事实标准,OpenAI 发布了 Agents SDK,Google 提出了 A2A(Agent-to-Agent)协议。
什么是 Agent?——一个技术定义
Section titled “什么是 Agent?——一个技术定义”从工程角度,Agent 是一个以 LLM 为”大脑”的自主系统,具备三个核心能力:
- 感知(Perception):接收用户目标、环境状态、工具返回结果等信息。
- 决策(Decision-making):LLM 根据当前信息推理出下一步行动——调用哪个工具、传什么参数、或者直接回复用户。
- 行动(Action):执行决策——通过 Function Calling(函数调用,即 LLM 输出结构化 JSON 指定函数名和参数)触发外部工具执行。
这三个能力构成一个循环(loop),直到任务完成或达到最大步数限制。
Agent 与普通 LLM 对话的本质区别
Section titled “Agent 与普通 LLM 对话的本质区别”| 维度 | 普通 LLM 对话 | LLM Agent |
|---|---|---|
| 交互模式 | 单轮或简单多轮 | 多步循环,直到目标完成 |
| 信息来源 | 只有训练数据 + 用户输入 | 训练数据 + 实时工具调用结果 |
| 自主性 | 零——用户发起每次调用 | 高——Agent 自主决定下一步 |
| 错误恢复 | 无——错了就错了 | 有——看到工具报错可以自己修 |
| 执行时间 | 秒级(一次推理) | 分钟到小时级(多步循环) |
ReAct:Agent 的核心推理模式
Section titled “ReAct:Agent 的核心推理模式”ReAct(Yao et al. 2022)是几乎所有 Agent 的基础范式。核心是一个三步循环:
- Thought(推理):LLM 分析当前状态,决定下一步——“我需要搜索这个信息”。
- Action(行动):选择并调用一个工具——
search("GPT-4 API price")。 - Observation(观察):工具返回结果,LLM 基于新信息继续推理。
Thought 和 Action 的交替让模型不必一次”想对”——它可以走一步看一步,每步都根据真实反馈修正方向。这是 Agent 能处理开放性任务的关键。
Agent 的工具体系
Section titled “Agent 的工具体系”Agent 的能力边界取决于它能调用什么工具。2025 年的工具生态已经非常丰富:
- 搜索类工具:Tavily API、Brave Search API、Google Search——让 Agent 获取实时互联网信息。
- 代码执行工具:Python sandbox、Jupyter——让 Agent 运行代码做计算、数据分析。
- 文件操作工具:读写文件、Git 操作——让 Agent 管理代码库、生成文档。
- 浏览器/桌面工具:Anthropic Computer Use、OpenAI Operator——让 Agent 直接操控浏览器点击、输入、滚动,或操控桌面应用。
- MCP 工具生态:通过 MCP 协议,Agent 可以连接数据库、Slack、GitHub、Notion 等数百种外部系统。详见 MCP 协议与工具调用。
多智能体系统:何时需要拆分?
Section titled “多智能体系统:何时需要拆分?”单个 Agent 能力有限——当任务复杂到单 Agent 的 prompt(提示词)装不下,或者不同子任务需要截然不同的工具集和推理方式时,就需要多智能体协作:
- 角色分工:每个 Agent 专注于一个领域——研究员负责搜索,程序员负责写代码,测试员负责验证。
- 减少上下文污染:把不同类型的任务隔离在不同 Agent 的 context window(上下文窗口)中,避免互相干扰。
- 并行加速:多个 Agent 可以并行处理独立子任务。
主流多智能体协调方式:
- 对话协调(AutoGen):Agent 之间通过消息传递协作,像开会一样。
- 流程协调(CrewAI):预先定义好 Agent 的执行顺序和依赖关系,像流水线。
- 交接协调(OpenAI Swarm/Agents SDK):Agent 遇到不擅长的子任务时,把控制权 handoff 给更合适的 Agent。
多智能体系统的关键挑战是协调:谁先做、谁后做、意见冲突怎么办。不同框架用不同策略解决——AutoGen 用”对话”,CrewAI 用”流程”,MetaGPT 用”软件工程 SOP”。详见 Agent 设计模式。
Agent 决策循环(ReAct 模式)
Section titled “Agent 决策循环(ReAct 模式)”多智能体协作
Section titled “多智能体协作”Agent 技术栈全景
Section titled “Agent 技术栈全景”用 LangChain Agent 实现一个搜索 Agent
Section titled “用 LangChain Agent 实现一个搜索 Agent”from langchain_openai import ChatOpenAIfrom langchain.agents import create_tool_calling_agent, AgentExecutorfrom langchain.tools import Toolfrom langchain_core.prompts import ChatPromptTemplate
# 定义一个简单的搜索工具(实际产品接入搜索 API)def fake_search(query: str) -> str: return f"搜索结果:关于「{query}」的最新信息..."
tools = [Tool(name="search", description="搜索互联网获取信息", func=fake_search)]
# 创建 ReAct Agentllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)prompt = ChatPromptTemplate.from_messages([ ("system", "你是研究助手,用工具搜索后总结答案。"), ("human", "{input}"), ("placeholder", "{agent_scratchpad}"), # Agent 的思考-行动记录])agent = create_tool_calling_agent(llm, tools, prompt)executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 执行:Agent 会自动搜索 → 阅读 → 总结result = executor.invoke({"input": "2024 年 AI 领域最重要的突破是什么?"})print(result["output"])从零构建一个 ReAct Agent(不依赖框架)
Section titled “从零构建一个 ReAct Agent(不依赖框架)”理解 ReAct 最好的方式是亲手实现一个最小版本:
import openaiimport json
client = openai.OpenAI()
# 定义 Agent 可用的工具def search(query: str) -> str: """模拟搜索工具""" return f"搜索 '{query}' 的结果:相关数据已找到。"
def calculate(expression: str) -> str: """模拟计算工具""" try: return str(eval(expression)) except Exception as e: return f"计算错误: {e}"
# 工具注册表:名称 → 函数TOOL_REGISTRY = { "search": search, "calculate": calculate,}
# 工具的 JSON Schema 定义(让 LLM 知道有哪些工具可用)TOOLS = [ { "type": "function", "function": { "name": "search", "description": "搜索互联网获取信息。当你需要查找实时数据、新闻、事实时使用。", "parameters": { "type": "object", "properties": {"query": {"type": "string", "description": "搜索关键词"}}, "required": ["query"], }, }, }, { "type": "function", "function": { "name": "calculate", "description": "执行数学计算。当需要精确数值计算时使用。", "parameters": { "type": "object", "properties": {"expression": {"type": "string", "description": "数学表达式"}}, "required": ["expression"], }, }, },]
def react_agent(goal: str, max_steps: int = 10): """最小 ReAct Agent 实现""" messages = [ {"role": "system", "content": "你是一个能使用工具的助手。一步步思考,必要时调用工具。"}, {"role": "user", "content": goal}, ]
for step in range(max_steps): print(f"\n--- 步骤 {step + 1} ---") resp = client.chat.completions.create( model="gpt-4o-mini", messages=messages, tools=TOOLS, ) msg = resp.choices[0].message messages.append(msg)
# 如果没有工具调用,Agent 认为任务完成 if not msg.tool_calls: print(f"最终答案: {msg.content}") return msg.content
# 执行每个工具调用 for tc in msg.tool_calls: name = tc.function.name args = json.loads(tc.function.arguments) print(f"Action: {name}({args})")
result = TOOL_REGISTRY[name](**args) print(f"Observation: {result}")
messages.append({ "role": "tool", "tool_call_id": tc.id, "content": result, })
return "超过最大步数限制"
# 运行 Agent# react_agent("搜索最新的 GPT 模型信息,然后计算如果每天调用 1000 次 API,30 天总共调用多少次")这个最小实现展示了 ReAct 的本质:一个 while 循环,每次让 LLM 决定是”调工具”还是”给答案”。所有 Agent 框架的底层都是这个循环的变体。
- 设最大步数:Agent 循环必须有硬上限(如 20 步)。否则一旦 Agent 陷入”再试一次”的死循环,token 消耗会爆炸。
- 工具描述决定 Agent 智商上限:Agent 选工具全靠读 description(工具描述)。描述不清的工具等于不存在。好的描述要写清”做什么、何时用、参数格式、返回什么”。
- 从单 Agent 开始:2025 年的工程共识——先从单 Agent + 工具循环开始,验证核心路径走通后,再考虑引入多智能体。过早引入多 Agent 架构是项目失败的首要原因。
- 可观测性必不可少:生产级 Agent 必须接入追踪(LangSmith、Langfuse 等)。没有追踪,Agent 调试全靠猜。
- 安全边界:Agent 能执行真实操作(删文件、发消息、付款),必须设置权限边界——哪些操作需要人类确认(Human-in-the-loop),哪些可以自动执行。
- 成本控制:Agent 的多步循环意味着高 token 消耗。要监控每次任务的实际成本,设置预算上限。
- AutoGPT:2023 年爆火的开源项目,用户给一个高层目标(“帮我调研 XX 并写报告”),Agent 自主规划、上网搜索、保存文件——“自主 Agent”概念的首个现象级产品。
- Devin / Cursor Agent / Claude Code:AI 软件工程师,接收需求后自主编写代码、运行测试、调试修复——Agent 在编程领域的深度应用。详见AI 编程助手。
- Manus:2025 年发布的通用型 Agent,能处理数据分析、文档处理、网页操作等多类型任务,展示了 Agent 从”聊天”到”干活”的跨越。
- OpenAI Operator / Anthropic Computer Use:2025 年推出的浏览器/桌面操控 Agent,能直接操控浏览器点击、输入、滚动,将 Agent 的”手脚”从 API 调用扩展到完整的 UI 交互。
- AutoGen / CrewAI / OpenAI Agents SDK:多智能体框架,用户编排多个角色化 Agent 协作完成复杂任务——“用自然语言管理一个 AI 团队”。详见 Agent 设计模式。
- Perplexity Pro Search:AI 搜索引擎的多步推理模式,本质是一个搜索 Agent——自动分解问题、多轮检索、综合答案。详见 AI 搜索引擎。
典型类库与工具
Section titled “典型类库与工具”| 类库 | 语言 | 说明 |
|---|---|---|
| LangGraph | Python / TS | 基于状态图的 Agent 编排框架,支持复杂控制流,2025 年生产级 Agent 首选 |
| OpenAI Agents SDK | Python | OpenAI 2025 年正式发布的 Agent SDK,支持 handoff 交接、工具调用、内置追踪 |
| AutoGen | Python | 微软出品的多智能体对话框架,v0.4 重写后支持异步事件架构 |
| CrewAI | Python | 角色驱动的多智能体框架,定义角色→分配任务→自动协作,2025 年新增 Flows |
| LlamaIndex Workflows | Python | 基于事件驱动的 Agent 工作流编排 |
| MetaGPT | Python | 模拟软件公司 SOP 的多智能体框架,产品经理/架构师/工程师各司其职 |
| LangSmith / Langfuse | Python / TS | Agent 全链路追踪与评估平台 |
| 术语 | 英文 | 解释 |
|---|---|---|
| 智能体 | Agent | 能自主感知、决策、行动并调用工具完成目标的 AI 系统 |
| 推理与行动 | ReAct (Reason + Act) | Thought → Action → Observation 循环,Agent 的核心推理模式 |
| 函数调用 | Function Calling | LLM 输出结构化 JSON 指定函数名和参数,Agent 调用工具的底层机制 |
| 工具 | Tool | Agent 可调用的外部能力,如搜索、代码执行、API 请求 |
| 上下文窗口 | Context Window | LLM 单次能处理的最大 token 数量,限制了 Agent 的短期记忆容量 |
| 规划与执行 | Plan-and-Execute | 先制定完整计划再逐步执行的 Agent 模式,比 ReAct 更系统 |
| 多智能体 | Multi-Agent | 多个角色化 Agent 分工协作完成复杂任务的系统 |
| 交接 | Handoff | 一个 Agent 将控制权转交给另一个更适合当前子任务的 Agent |
| 角色 | Role | 多智能体中每个 Agent 的身份与职责定义 |
| 反思 | Reflection | Agent 回顾自身执行过程、总结经验并改进的能力 |
| 幻觉 | Hallucination | LLM 生成看似合理但实际不正确的内容,Agent 用工具调用部分缓解此问题 |
| 全链路追踪 | Tracing | 记录 Agent 每一步的推理、行动、观察,用于调试和评估 |
- ReAct:Yao et al., “ReAct: Synergizing Reasoning and Acting in Language Models”(2022),提出推理 + 行动交替模式,奠定了 Agent 的基本范式。详见提示工程中的 ReAct 介绍。
- AutoGPT:Significant Gravitas 2023 年开源,首个火爆的”自主 Agent”项目,让大众第一次看到”给 AI 目标它自己干”的可能性。
- Reflexion:Shinn et al., “Reflexion: Language Agents with Verbal Reinforcement Learning”(2023),让 Agent 通过自我反思持续改进。
- Anthropic “Building Effective Agents” (2024):Anthropic 工程团队的实践总结,提出”先简单后复杂”的 Agent 设计哲学,是 2025 年 Agent 工程的指导性文章。
- Agent 设计模式:本站配套页面,深入讲解 ReAct、Plan-and-Execute、Reflexion、Multi-Agent 等设计模式的内部实现。详见 Agent 设计模式。