Agent与多智能体协作

2026-08-08hweihaobo-herbert👁 71 阅读13 分钟阅读📝 2201 字💬 0 评论
Agent与多智能体协作

Agent 与多智能体协作:AI 从"聊天"走向"自主执行任务"

LLM 是大脑,Agent 是给它装上手脚和工具箱,让它能行动。


一、从聊天机器人到 Agent

1.1 聊天机器人的能力边界

传统 LLM 交互模式:

你问 → 它答 → 你问 → 它答 → ...

这种模式有三个根本局限:

  • 不能行动:无法发邮件、查数据库、调 API
  • 不能规划:复杂任务不会拆解步骤
  • 不能纠错:出错了不会重试,一条路走到黑

1.2 Agent 的定义

AI Agent(智能体):能够感知环境、做出规划、执行动作、观察反馈、迭代调整直到完成目标的自主系统。

核心公式:

Agent = LLM + 记忆 + 工具 + 规划能力

用户:帮我订一张下周三去上海的机票,要早上的,国航优先。传统 LLM:对不起,我没有访问实时数据的能力。Agent:  ① 分析意图 → 需要查航班信息(调用工具)  ② 调用携程/航空公司 API → 获取航班列表  ③ 根据约束过滤(下周三、早上、国航) → 得到候选  ④ 把结果呈现给你确认 → 等你回复  ⑤ 收到"订第 2 个" → 调用支付接口 → 出票 → 发邮件确认

二、Agent 的核心架构

┌─────────────────────────────────────────────┐│                  AI Agent                    ││                                              ││  ┌─────────┐  ┌──────────┐  ┌────────────┐ ││  │ 记忆    │  │ 规划器   │  │ 工具集     │ ││  │ Memory  │  │ Planner  │  │ Toolbox    │ ││  └────┬────┘  └────┬─────┘  └─────┬──────┘ ││       │            │              │         ││  ┌────┴────────────┴──────────────┴──────┐  ││  │              LLM(大脑)              │  ││  └───────────────────────────────────────┘  ││                                              │└─────────────────────────────────────────────┘         │                    ↑         ▼                    │    执行动作  ──────→  环境反馈(Observation)

2.1 记忆(Memory)

Agent 的记忆分两层:

记忆类型 存储内容 技术实现 类比
短期记忆 当前对话历史、当前任务上下文 直接放 Prompt 里 工作记忆
长期记忆 用户偏好、历史经验、知识积累 向量数据库 + RAG 日记本
短期记忆示例:  User: "帮我分析 Q3 销售数据"  短期记忆里存储: 当前对话中的所有轮次长期记忆示例:  上次用户说过"我是市场部总监,每月需要销售趋势报告"  下次对话时检索到 → 自动调整输出格式和深度

2.2 工具(Tools)

工具是 Agent "行动能力"的来源。LLM 本身只能生成文本,工具让它能操作现实世界。

常见工具类型:

json
{  "tools": [    {      "name": "search_web",      "description": "搜索互联网获取最新信息",      "parameters": { "query": "string" }    },    {      "name": "read_file",      "description": "读取本地文件内容",      "parameters": { "path": "string" }    },    {      "name": "execute_code",      "description": "运行 Python 代码并返回结果",      "parameters": { "code": "string" }    },    {      "name": "send_email",      "description": "发送邮件",      "parameters": { "to": "string", "subject": "string", "body": "string" }    },    {      "name": "query_database",      "description": "执行 SQL 查询(只读)",      "parameters": { "sql": "string" }    }  ]}

工具调用的标准流程(Function Calling):

User: "北京今天天气怎么样?"Agent 内部推理:  "我需要获取实时天气数据,用 get_weather 工具"  → function_call: {"name": "get_weather", "arguments": {"city": "北京"}}系统执行: get_weather("北京")  →  {"temp": 28, "condition": "晴"}Agent 接收结果后生成回答:  "北京今天晴天,气温 28°C,适合户外活动。"

2.3 规划(Planning)

这是 Agent 和普通 LLM 最大的区别——能不能把一个模糊的大目标拆成可执行的小步骤。

2.3.1 ReAct(Reasoning + Acting)

最经典的 Agent 规划模式。Agent 交替进行"思考"和"行动":

Task: "帮我找出本月销售额最高的产品,并写一封祝贺邮件给它的负责人。"Thought: 我需要先查询本月销售数据,找到最高销售额的产品。Action: query_database("SELECT product, SUM(amount) FROM sales WHERE month=8 GROUP BY product ORDER BY SUM(amount) DESC LIMIT 1")Observation: {"product": "电竞椅 Pro Max", "amount": 520000, "owner": "李明"}Thought: 找到了,是李明的电竞椅。现在我需要李明的邮箱。Action: query_database("SELECT email FROM employees WHERE name='李明'")Observation: {"email": "liming@company.com"}Thought: 信息齐全,现在写邮件并发送。Action: send_email({"to": "liming@company.com", "subject": "恭喜!本月销售冠军", "body": "李明你好,你负责的'电竞椅 Pro Max'本月销售额达52万元..."})Observation: {"status": "sent"}Final Answer: 已发送祝贺邮件给李明。本月销售冠军是"电竞椅 Pro Max",销售额 52 万元。

2.3.2 Plan-and-Execute

先把完整计划列出来,再一步步执行:

Task: "帮我做一个竞品分析报告,关于 Notion 和 Obsidian"Plan:  Step 1: 搜索 Notion 的核心功能、定价、目标用户  Step 2: 搜索 Obsidian 的核心功能、定价、目标用户  Step 3: 搜索第三方评测对比  Step 4: 生成对比表格  Step 5: 整合为报告(含 SWOT 分析和推荐结论)执行 Step 1 → 完成 ✓执行 Step 2 → 完成 ✓...执行 Step 5 → 完成 ✓

2.3.3 Self-Reflection

Agent 在执行过程中自我检查:

Step 3 执行结果: "数据只覆盖了欧美市场,缺少亚洲数据"Self-Reflection: "报告不完整,需要补充亚洲市场数据"→ 追加 Step 3.5: 搜索 Notion vs Obsidian 亚洲用户评价→ 重新生成报告

三、Agent 开发框架

3.1 主流框架对比

框架 特点 适合
LangChain / LangGraph 生态最全,图结构编排 复杂工作流
AutoGPT 最早的自主 Agent,全自动 实验探索
CrewAI 多 Agent 协作,角色扮演 团队模拟
AutoGen(微软) 多 Agent 对话,代码执行 代码生成 + 审查
OpenAI Swarm 轻量级,最小化抽象 教学、轻量原型
MetaGPT 仿软件公司 SOP 软件开发全流程
Dify / Coze 低代码搭建 Agent 非开发者、快速搭建

3.2 一个 LangChain Agent 的最小示例

python
from langchain_openai import ChatOpenAIfrom langchain.agents import tool, AgentExecutor, create_openai_tools_agentfrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder@tooldef get_weather(city: str) -> str:    """获取指定城市的天气"""    # 实际应调用天气 API    return f"{city}今天晴,25°C"llm = ChatOpenAI(model="gpt-4", temperature=0)tools = [get_weather]prompt = ChatPromptTemplate.from_messages([    ("system", "你是一个得力助手,可以使用工具完成用户请求。"),    ("user", "{input}"),    MessagesPlaceholder(variable_name="agent_scratchpad"),])agent = create_openai_tools_agent(llm, tools, prompt)executor = AgentExecutor(agent=agent, tools=tools, verbose=True)result = executor.invoke({"input": "北京天气怎么样?"})

四、多智能体协作(Multi-Agent)

单个 Agent 可以完成单一任务。现实世界的复杂任务,往往需要多个 Agent 像团队一样协作。

4.1 为什么需要多 Agent?

单个 Agent 的问题 多 Agent 如何解决
任务太复杂,单一 Agent 顾此失彼 拆分职责,各司其职
缺乏审查机制,错误无法发现 一个 Agent 产出,另一个 Agent review
需要多领域知识 每个 Agent 专精一个领域
难以处理冲突需求 多个 Agent 辩论,达成共识

4.2 多 Agent 协作拓扑

拓扑 1:顺序流水线

[需求分析 Agent] → [架构设计 Agent] → [编码 Agent] → [测试 Agent] → [部署 Agent]

适合:软件开发全流程、文档生成流水线。上一个的输出是下一个的输入。

拓扑 2:星型(中心调度)

                      ┌──────────┐                      │ 调度者   │                      │ Dispatcher│                      └────┬─────┘              ┌────────────┼────────────┐              ▼            ▼            ▼        [研究员A]    [分析员B]    [写手C]              └────────────┼────────────┘                      综合成报告

适合:需要协调不同专长的任务,如调研报告生成。

拓扑 3:辩论型

[Agent A: 这个方案好,因为...] ⟷ [Agent B: 不,有问题,因为...]              [裁判 Agent: 综合来看...]

适合:策略决策、风险评估、代码设计评审。

拓扑 4:层级型

                [CEO Agent]               /     |     \         [CTO]   [CMO]   [CFO]          /  \      |      /  \     [工程师] [架构师] [分析师] [会计]

适合:模拟公司运作、大型项目的分层次决策。

4.3 CrewAI 示例

python
from crewai import Agent, Task, Crew# 研究员researcher = Agent(    role="市场研究员",    goal="收集和分析 {topic} 的最新市场数据",    backstory="你是一个经验丰富的市场分析师,善于从大量数据中提取关键洞察。",    tools=[search_tool, scrape_tool],    verbose=True)# 写手writer = Agent(    role="商业报告写手",    goal="基于研究数据撰写专业的商业分析报告",    backstory="你是一个资深的商业报告作家,擅长将复杂数据转化为可读性强的报告。",    verbose=True)research_task = Task(    description="收集 {topic} 的市场规模、竞品、趋势",    agent=researcher,    expected_output="一份包含数据的市场调研摘要")writing_task = Task(    description="基于上述调研,写一份完整的商业分析报告",    agent=writer,    expected_output="一份结构完整的 Markdown 报告")crew = Crew(agents=[researcher, writer], tasks=[research_task, writing_task])result = crew.kickoff(inputs={"topic": "AI 编程助手市场"})

五、Agent 的核心挑战

5.1 可靠性

问题:Agent 执行了 7 步,第 6 步出了个小错,前 5 步全部白费。

解法方向:

  • 检查点(Checkpointing):每步完成后保存状态,出错了从中间恢复
  • 重试与回退:出错自动重试 3 次,不行就换个方案
  • 人机协同(Human-in-the-Loop):关键决策暂停,等人确认

5.2 幻觉在行动层的放大

聊天时说错了可以撤回,Agent 说错了可能直接:

  • 删了数据库
  • 发了错误邮件给全公司
  • 花了一万块钱调了错误的 API

解法方向:

  • 工具级权限控制(数据库只读、金额上限、高危操作二次确认)
  • 沙箱执行(代码在 Docker 里跑,坏了不影响宿主机)
  • Output Guardrails(输出经规则校验后才执行)

5.3 无限循环

Agent 可能陷入:试 A → 失败 → 试 B → 失败 → 试 A → 失败 → …

解法:

  • 步数上限(Max Iterations)
  • Token 预算(超过即停止)
  • 循环检测(检测到重复动作模式时中断)

5.4 成本爆炸

Agent 每"思考"一次就要调一次 LLM。一个复杂任务可能调用 20-50 次 API,成本是单次问答的几十倍。

解法:

  • 小模型做简单决策,大模型做复杂推理(级联)
  • 缓存重复调用结果
  • 批处理工具调用(一次调多个工具)

5.5 多 Agent 的协调成本

Agent 越多,通信开销越大。两个 Agent 各说各话,三四个 Agent 意见不统一。

解法:

  • 明确角色边界(不要让两个 Agent 职责重叠)
  • 强制的输出格式(结构化传递信息,减少歧义)
  • 设置仲裁者 Agent(最后拍板)

六、Agent 的能力谱系

Level 0: 聊天机器人 — 你问它答,无工具无记忆Level 1: 带工具的 LLM — 能调用预定义工具,但无自主规划Level 2: 单 Agent — 自主规划 + 执行 + 观察 + 反思Level 3: 多 Agent 协作 — 多角色分工,相互审查Level 4: 自适应 Agent — 自己决定"造"新工具、学习新技能Level 5: 完全自主 Agent — 像人类一样的长期自主运作(目前不存在)

目前工业界主流在 Level 1-2,学术前沿在探索 Level 3-4Level 5 在未来相当长时间内仍是科幻。


七、实践建议

如果你是第一次构建 Agent

  1. 从单个工具开始,先让 LLM 能调一个 API,跑通 Function Calling 流程
  2. 加第二个工具,让 Agent 在"搜索"和"计算"之间自己选择
  3. 引入规划,尝试让 Agent 做一个需要 2-3 步的任务
  4. 加记忆,让 Agent 记住用户偏好
  5. 多 Agent 最后再上——大多数场景单 Agent 就够了

选择框架的建议

只会用 Python,想做原型          → LangChain(生态最广)需要生产级可控状态                → LangGraph(图结构状态机)需要多 Agent 角色扮演             → CrewAI在微软生态(Azure/C#)            → AutoGen不想写代码                        → Dify / Coze想学理论                         → 手写 ReAct,不依赖框架

八、总结

传统 LLM = 会说话的百科全书
Agent = 能动手的助手,会查、会算、会发邮件、会自我纠错
多 Agent = 一个 AI 团队,有分工、有协作、有审查

Agent 的本质是给 LLM 装上了"行动能力"和"闭环思考"。未来的 AI 应用,从"聊天窗口"向"自主执行"演进是确定性的方向。但安全、可靠性、成本,是这条路上的三座大山。


—— 2024-2025 是 Agent 元年,但"元年"之后才是真正落地的开始。

hweihaobo-herbert
技术博客作者
2201 字 · 0 评论
2026-08-08

评论 (0)

暂无评论,来写第一条吧

登录后发表评论