LLM 驱动的自主 Agent 系统
LLM 驱动的自主 Agent 系统
作者:Lilian Weng(翁丽莲 · OpenAI VP of AI)
发布:2023年6月23日 · Lil’Log(阅读约 31 分钟)
原文链接:https://lilianweng.github.io/posts/2023-06-23-agent/
以 LLM(大语言模型)作为核心控制器构建 Agent 是一个非常酷的概念。AutoGPT、GPT-Engineer 和 BabyAGI 等原型提供了令人鼓舞的示例。LLM 的潜力远不止生成文笔流畅的文章、故事、诗歌和程序——它可以被构架成一个强大的通用问题求解器。
Agent 系统概览
在 LLM 驱动的自主 Agent 系统中,LLM 扮演 Agent 的大脑,辅以几个关键组件:
┌─────────────────────────────────────────┐│ LLM(大脑/控制器) │├─────────────┬─────────────┬─────────────┤│ 规划 │ 记忆 │ 工具使用 ││ · 任务分解 │ · 短期记忆 │ · API 调用 ││ · 自我反思 │ · 长期记忆 │ · 代码执行 │└─────────────┴─────────────┴─────────────┘组件一:规划(Planning)
复杂任务通常涉及多个步骤,Agent 需要提前规划。
任务分解
- 思维链(Chain-of-Thought, CoT):已成为标准提示技术,引导模型”逐步思考”以利用更多测试时计算量,将困难任务分解为更小的步骤
- 思维树(Tree-of-Thought, ToT):在每一步探索多种推理可能性,先进行分支再评估,结合搜索和规划
- LLM+P:使用 LLM 将自然语言描述转换为 PDDL(规划领域定义语言),交给经典规划器求解
- 子目标分解:Agent 将大任务分解为更小、可管理的子目标,从而高效处理复杂任务
自我反思(Self-Reflection)
- ReAct:在思维链基础上集成行动(Action),让 LLM 交错生成”推理轨迹”和”任务行动”,实现推理与行动的结合
- Reflexion:Agent 不仅能执行任务,还能从执行结果中反思错误并修正行为。如果任务失败,Agent 将错误反馈给 LLM,LLM 据此生成改进计划
- Chain of Hindsight:通过对比”好输出”和”坏输出”来进行自我改进
- Algorithm Distillation:将强化学习过程压缩到 Transformer 的上下文窗口中,让模型隐式学习优化算法
组件二:记忆(Memory)
Agent 需要记忆系统来维护状态和信息。
记忆类型
| 类型 | 类比 | 说明 |
|---|---|---|
| 感觉记忆 | 你在屏幕上看到的 | 原始输入的最短记忆(< 1秒) |
| 短期记忆 | 你在思考的上下文 | 上下文学习(In-Context Learning),本质上是模型的提示上下文 |
| 长期记忆 | 你的知识库 | 外部向量数据库存储,可随时检索 |
最大内积搜索(MIPS)
长期记忆通过外部向量存储实现,核心技术是最大内积搜索(MIPS)——从大量嵌入向量中快速找到最相似的条目。常用工具包括:
- FAISS(Facebook)
- ScaNN(Google)
- Milvus、Pinecone、Weaviate 等
组件三:工具使用(Tool Use)
LLM 的知识截止于训练数据,工具使用让 Agent 获得以下”超能力”:
- 访问实时信息:天气、股票、新闻等
- 代码执行:使用 Python 解释器运行代码
- 专有数据源:访问公司内部知识库
- 外部 API:调用各类服务接口
MRKL 系统:将 LLM 视为路由器,自动选择并调用合适的专家工具模块处理任务。
TALM(工具增强语言模型):通过微调让模型学会何时调用工具以及如何解释工具返回结果。
Toolformer:模型自监督学习使用工具——它自己决定哪些工具适合哪些任务,自生成调用示例进行训练。
函数调用(Function Calling):GPT-4 等现代 LLM 原生支持函数调用,Agent 可声明一组函数,模型自动选择正确的函数和参数。
案例研究
1. 科学发现 Agent(Scientific Discovery Agent)
Chemistry Agent 系统可以:
- 阅读科研论文,理解化学反应
- 调用外部化学工具进行模拟和验证
- 设计新分子并预测属性
- 管理实验记录
2. 生成式 Agent 模拟(Generative Agents Simulation)
斯坦福的 Smallville 小镇模拟(25 个 AI Agent 自治生活):
- Agent 有身份、日常计划和社交关系
- 通过记忆流(Memory Stream)存储和检索日常经历
- 每个 Agent 根据经历反思并更新自我认知
- 产生涌现社会行为:组织派对、互相邀请、传播消息
3. GPT-Engineer / AutoGPT / BabyAGI
- GPT-Engineer:根据用户需求自动生成整个代码库
- AutoGPT:自主设定子目标、执行任务、迭代优化
- BabyAGI:持续循环——获取下一个任务→执行→丰富结果→创建新任务→优先级排序
Agent 系统的挑战
- 上下文窗口限制:长期记忆需要有效的检索机制,避免上下文过多
- 规划和长期任务:Agent 可能在长链任务中”漂移”或陷入循环
- 工具使用的可靠性:错误调用外部工具可能导致级联错误
- 评估困难:在开放环境中评估 Agent 表现的标准仍在形成中
- 安全性:Agent 自主执行代码和调用 API 带来了新的安全风险
Lilian Weng 的 Lil’Log 系列被认为是 Agent 领域最权威的综述之一,本文被学术界和工业界广泛引用。
Share Article
If this article helped you, please share it with others!