LLM Agent 技术全景
“大模型是脑子,Agent 是手脚。” — 吴恩达
一、从”说话”到”做事”
传统的大语言模型只能回答问题——你问它,它答。但一个真正有用的 AI 系统需要能够执行动作:查天气、订机票、写代码并运行、操控机器人……
LLM Agent 就是让大语言模型具备行动能力的核心技术。它让 AI 从被动的”应答者”变成主动的”执行者”。
1 2 3 4 5 6 7 8
| 传统 LLM: 用户: "帮我查一下北京的天气" LLM: "北京今天晴,温度 15-22 度,适合出行。"
LLM Agent: 用户: "帮我查一下北京的天气" Agent: [Step 1] 调用天气 API → [Step 2] 解析结果 → [Step 3] 告知用户 (实际执行了网络请求,不是瞎编)
|
二、Agent 的核心组件
一个完整的 LLM Agent 由四大组件构成:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ┌─────────────────────────────────────────────────┐ │ LLM Agent │ ├─────────────────────────────────────────────────┤ │ 🔧 工具(Tools) │ │ - 搜索、API、代码执行、文件读写 │ │ │ │ 🧠 记忆(Memory) │ │ - 短期记忆:当前对话上下文 │ │ - 长期记忆:历史经验、用户偏好 │ │ │ │ 📋 规划(Planning) │ │ - 任务分解(Task Decomposition) │ │ - 自我反思(Self-Reflection) │ │ │ │ 🔄 状态(State) │ │ - 当前进度、已完成步骤、下一步计划 │ └─────────────────────────────────────────────────┘
|
工具是 Agent 与外部世界交互的桥梁。没有工具,Agent 只能”空谈”;有了工具,Agent 才能”实干”。
常见工具类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| search = { "type": "search", "description": "搜索互联网获取最新信息", "query": "2024年北京人口" }
get_weather = { "type": "function", "function": { "name": "get_weather", "parameters": { "type": "object", "properties": { "city": {"type": "string", "description": "城市名"} } } } }
code_executor = { "type": "code_interpreter", "language": "python", "code": "import pandas as pd; ..." }
file_tools = { "read": {"path": "/data/report.txt"}, "write": {"path": "/output/result.txt", "content": "..."}, }
|
关于工具调用的更多细节,可以参考我之前的文章《Function Calling 实战》。
2.2 记忆(Memory)
短期记忆是当前对话的上下文窗口,受限于 LLM 的 token 上限。
长期记忆让 Agent 记住跨对话的重要信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
user_profile_vector = embed("用户喜欢简洁的回答风格")
user_knowledge_graph = { "name": "张三", "preferences": ["简洁回答", "技术细节"], "recent_tasks": ["写代码", "数据分析"] }
memory_summary = summarize_past_conversations(conversation_history)
|
一个实用的记忆策略:
1 2 3 4
| 当任务完成时: 1. 提取关键信息(用户偏好、任务结果、错误教训) 2. 更新长期记忆库 3. 下次类似任务时,检索相关记忆作为上下文
|
2.3 规划(Planning)
规划让 Agent 能够处理复杂多步骤任务,而不只是回答简单问题。
两种核心规划方法:
方法 1:任务分解(Task Decomposition)
将大任务拆解成小步骤,逐步完成。
1 2 3 4 5 6 7 8 9 10 11 12 13
|
plan = [ {"step": 1, "task": "获取 A 股票的历史价格数据"}, {"step": 2, "task": "获取 A 股票的基本面数据(市盈率、ROE 等)"}, {"step": 3, "task": "获取近期新闻和分析师评级"}, {"step": 4, "task": "综合分析,给出投资建议"} ]
for step in plan: execute(step)
|
方法 2:自我反思(Self-Reflection)
执行过程中遇到错误或失败时,让 Agent 反思并调整策略。
1 2 3 4
| Agent 执行任务 → 发现结果不理想 → 自我反思哪里出了问题 → 调整策略 → 重新执行 → 再次评估
类似于人类的"试错学习"过程。
|
三、ReAct:推理与行动的结合
3.1 什么是 ReAct?
ReAct(Reason + Act) 是 Princeton 和 Google 提出的 Agent 框架,核心思想是:在每个行动前先进行推理,用推理指导行动。
3.2 ReAct 的循环
1 2
| Thought → Action → Observation → Thought → Action → Observation → ... 思考 行动 观察结果 思考 行动 观察结果
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
"我需要分别查出北京和深圳的人口,然后相减。"
search(city="北京人口")
"北京市常住人口约 2189 万(2023年)"
"好的,北京人口已知。现在查深圳人口。"
search(city="深圳人口")
"深圳市常住人口约 1766 万(2023年)"
"2189 - 1766 = 423 万,北京市人口比深圳市多约 423 万。"
|
3.3 ReAct vs 其他范式
| 范式 |
特点 |
适用场景 |
| ReAct |
推理与行动交替 |
需要外部知识的复杂问答 |
| Chain-of-Thought |
先推理后行动 |
数学、逻辑问题 |
| Action-Oriented |
直接行动,少推理 |
简单工具调用 |
| Plan-then-Execute |
先计划后执行 |
复杂多步骤任务 |
四、主流 Agent 框架
4.1 LangChain Agents
LangChain 是最流行的 Agent 开发框架,提供标准化的 Agent 抽象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from langchain.agents import AgentExecutor, create_react_agent from langchain_openai import ChatOpenAI from langchain import tool
@tool def get_weather(city: str) -> str: """获取城市天气""" return f"{city}今天晴,15-22度"
@tool def search_wiki(query: str) -> str: """搜索维基百科""" return f"{query}的维基百科内容..."
llm = ChatOpenAI(model="gpt-4") agent = create_react_agent(llm, [get_weather, search_wiki])
result = agent.run("北京的天气和维基百科介绍")
|
4.2 AutoGPT / GPT-Engineer
AutoGPT 是最早引起公众关注的 Agent 项目——给它一个目标,它会自动拆解任务、调用工具、直到完成目标。
1 2 3 4
| python -m autogpt --ai-name "研究助手" \ --ai-role "帮你完成市场调研" \ --goal "分析新能源汽车市场趋势"
|
局限性:AutoGPT 容易陷入无限循环,每次行动后可能忘记原始目标。
多 Agent 协作框架,多个 Agent 扮演不同角色(产品经理、工程师、测试)协作完成软件开发。
1 2 3 4 5 6 7 8
| 用户:帮我做一个博客网站
MetaGPT 协作流程: 产品经理 Agent → 写 SPEC.md 架构师 Agent → 设计系统架构 工程师 Agent → 写代码 测试 Agent → 写测试用例 运维 Agent → 部署上线
|
4.4 CrewAI
专注于”多 Agent 团队协作”的框架,Agent 可以扮演不同角色,在”团队”中分工合作。
1 2 3 4 5 6 7 8 9 10 11 12 13
| from crewai import Agent, Task, Crew
researcher = Agent(role="研究员", goal="找到最新AI进展", backstory="...") writer = Agent(role="作家", goal="写出吸引人的文章", backstory="...")
task1 = Task(description="调研2024年AI进展", agent=researcher) task2 = Task(description="写一篇博客", agent=writer)
crew = Crew(agents=[researcher, writer], tasks=[task1, task2]) result = crew.kickoff()
|
五、Agent 的关键技术挑战
5.1 规划失效(Planning Failure)
问题:Agent 可能制定了错误的计划,导致任务失败。
解决思路:
- 自我反思机制:执行前检查计划合理性
- 错误恢复:失败后重新规划
- 人类反馈:关键节点需要人类确认
5.2 循环陷阱(Looping)
问题:Agent 可能重复相同的行动,形成死循环。
1 2
| 搜索 → 搜索 → 搜索 → 搜索 → 搜索 → ... (永远在搜索,不产出结果)
|
解决思路:
- 限制最大行动次数
- 记录已尝试的行动,避免重复
- 设置明确的停止条件
5.3 幻觉(Hallucination)
问题:Agent 可能在没有足够信息时瞎编行动理由。
1 2 3
| Thought: "根据我的知识,北京市人口约 3000 万" Action: ... (实际上北京约 2200 万——Agent 瞎编了一个数字)
|
解决思路:
- 强制 Agent”查证”而非”回忆”
- 对不确定的信息,主动调用工具搜索
- 设置置信度阈值,低置信度时主动说”我不知道”
5.4 工具调用可靠性
问题:工具可能返回错误结果,或者超时、格式错误。
1 2 3 4 5 6 7
| try: result = call_tool(tool_name, args) except TimeoutError: return "工具调用超时,重试一次" except JSONDecodeError: return "工具返回格式错误,跳过此工具"
|
六、Agent 的应用场景
6.1 个人助手(Personal Agent)
1 2 3 4 5 6 7
| 任务:帮我安排下周的出差 Agent 行为: 1. 查日历,确认可用时间 2. 查航班,预订机票 3. 查酒店,预订酒店 4. 发邮件给同事,告知行程 5. 将行程加入日历
|
6.2 自动化工作流(Automation)
1 2 3 4 5 6 7
| 场景:自动化代码审查 Agent 行为: 1. 拉取 PR 代码 2. 运行 lint/测试 3. 分析代码质量和安全性 4. 生成审查意见 5. 在 PR 下留言
|
6.3 研究助手(Research Agent)
1 2 3 4 5 6 7 8
| 任务:帮我写一篇关于 Transformer 的调研报告 Agent 行为: 1. 搜索相关论文 2. 下载并阅读论文摘要 3. 精读关键论文全文 4. 整理技术要点 5. 生成报告草稿 6. 检查事实准确性
|
6.4 代码生成与调试(Coding Agent)
1 2 3 4 5 6 7 8 9
| 任务:帮我写一个 Web 服务器 Agent 行为: 1. 分析需求 2. 选择技术栈 3. 编写代码 4. 运行测试 5. 发现 bug 6. 调试修复 7. 迭代直到通过所有测试
|
代表工具:GitHub Copilot Workspace、Devin(首个 AI 软件工程师)
七、Agent 的未来展望
7.1 长期视角
“未来每个人都会有一个 AI Agent,它像今天的智能手机一样普及。” — Sam Altman
7.2 当前局限性
- 可靠性:复杂任务成功率仍不高
- 成本:多步骤任务消耗大量 token
- 安全:Agent 有能力执行危险操作
- 可控性:Agent 的决策过程难以解释
7.3 发展方向
- 更好的规划能力:更可靠的长期任务执行
- 多模态 Agent:不仅处理文本,还处理图像、音频、视频
- 具身智能(Embodied AI):Agent 控制机器人或虚拟化身
- Agent 间协作:多个 Agent 分工协作完成更大任务
八、总结
LLM Agent 是大模型从”能说”到”能干”的关键:
- 核心组件:工具(Tools)+ 记忆(Memory)+ 规划(Planning)+ 状态(State)
- ReAct 范式:推理指导行动,行动验证推理
- 框架选择:LangChain(生态全)、CrewAI(多 Agent 协作)、AutoGPT(原型探索)
- 挑战:规划失效、循环陷阱、幻觉、工具可靠性
- 未来:Agent 将成为 AI 落地的主要形态
相关文章: