技术深度解析
用于长程规划的AI Agent基本架构可分解为三个相互连接的循环:感知循环、规划循环和执行循环。感知循环摄取新信息(用户输入、环境状态、工具输出)。规划循环使用大语言模型(LLM)生成一系列动作。执行循环执行这些动作,通常借助外部工具或API。
大多数Agent的关键失败点在于规划循环。一种天真的实现方式是直接让LLM输出步骤列表,然后顺序执行。这种方式之所以失败,原因如下:
1. 任务分解脆弱: 将高层目标(例如“研究竞争对手定价并起草报告”)分解为子任务(例如“搜索竞争对手A的定价”、“搜索竞争对手B的定价”、“汇总发现”)的过程对提示措辞和模型状态高度敏感。轻微的歧义就可能导致不相关或循环的计划。
2. 上下文窗口成为瓶颈: 随着Agent执行步骤,动作、观察结果和中间结果的历史记录不断增长。这很快就会超出即使最先进模型(例如GPT-4的128k token)的上下文窗口。Agent随后会“忘记”原始目标或早期发现,导致行为不连贯。
3. 错误恢复绝非易事: 当子任务失败时(例如API调用返回错误、网络搜索无结果),Agent必须决定是重试、重规划还是中止。简单的重试逻辑可能导致无限循环。动态重规划要求Agent理解失败的上下文并相应调整剩余计划——这是当前LLM表现不佳的能力。
架构方法:
行业正趋同于几个关键架构模式:
- ReAct(推理+行动): Agent将推理步骤(“思考”)与行动(“行动”)交错进行。这是许多开源Agent的基础。开源项目LangGraph(GitHub上超过15,000颗星)提供了一个使用此模式构建有状态、循环Agent的框架。它允许开发者定义节点(推理、行动)和边(条件转换)来创建复杂工作流。
- 规划与求解(Plan-and-Solve, PS): Agent首先生成一个完整计划,然后逐步执行,每一步后可能进行重规划。对于需要全局视野的任务,这比ReAct更稳健。CrewAI框架(超过25,000颗星)通过允许开发者定义具有特定角色(例如研究员、写手)的Agent“团队”来协作执行共享计划,从而推广了这种方法。
- 思维树(Tree-of-Thoughts, ToT): Agent同时探索多条推理路径,评估其进展并剪除死胡同。这种方法计算成本高昂,但能解决复杂的规划问题。AutoGPT项目(超过160,000颗星)是早期先驱,尽管其实际可靠性仍然有限。
基准测试表现:
标准基准测试揭示了差距。下表比较了在GAIA基准测试上的表现,该测试考察多步骤推理与工具使用:
| 模型/Agent | GAIA验证得分 | 平均完成步骤数 | 错误恢复率 |
|---|---|---|---|
| GPT-4o (ReAct) | 48.2% | 7.3 | 32% |
| Claude 3.5 Sonnet (Plan-and-Solve) | 52.1% | 5.8 | 41% |
| 自定义Agent (LangGraph + GPT-4o) | 61.5% | 6.1 | 58% |
| Gemini 1.5 Pro (Tree-of-Thoughts) | 55.0% | 9.2 | 45% |
数据要点: 使用LangGraph并配备显式状态管理和条件重规划的自定义Agent,显著优于基线ReAct和Plan-and-Solve实现。关键区别不在于基础模型,而在于编排架构。错误恢复率是整体成功的最强预测指标。
内存管理:
持久化内存是长程规划中无名英雄。最有效的方法采用混合内存系统:
- 情景记忆: 向量数据库(例如Chroma、Pinecone)存储过去的观察和动作,允许Agent通过语义搜索检索相关上下文。
- 语义记忆: 结构化知识图谱(例如Neo4j)存储执行过程中提取的事实和关系。
- 工作记忆: 短期缓冲区(例如Redis缓存)保存当前计划和最近动作。
开源项目MemGPT(现名Letta,超过12,000颗星)通过为LLM提供“虚拟上下文管理系统”开创了这种方法,该系统自动归档和检索信息,有效创建了无限上下文窗口。
关键参与者与案例研究
构建可靠长程Agent的竞赛吸引了从基础模型提供商到专业初创公司的各类参与者。
基础模型提供商:
- OpenAI: 其内部编排层,用于Code Interpreter和Assistant等工具