从一个比喻开始:人类如何完成一项复杂任务? 📅 2026/6/28 20:41:13 假设你是一个活动策划今天接到任务为公司200人年会设计一个方案三天后汇报。你会怎么做先想清楚要干什么规划把大任务拆成小任务——场地、预算、节目、餐饮、主持……调用已有的知识和经验记忆你记得去年的供应商报价你记得哪个节目类型最受欢迎。打电话查资料、用工具工具调用你打开地图找场地调出Excel算预算发邮件给供应商问报价。执行并不断根据反馈调整ReAct循环场地报价太高重新找节目时长超了重新排……你就是一个Agent。规划、记忆、工具、执行循环这四件事你每天都在做只是不叫这个名字。现在OpenAI前安全主管Lilian Weng在她的著名博文《LLM Powered Autonomous Agents》中把这个过程精确地映射到了AI Agent的架构上。二、Agent的四大要素拆开来看1. 规划Planning大模型的分解力规划是把一个复杂任务拆成可执行的子任务序列的过程。听起来简单但这恰恰是大模型出现之前的Agent最难做到的事。传统AI要么死守规则遇到没见过的情况就不知所措要么只会反应式处理根本没有先想清楚再行动的能力。大模型改变了这一点。它有两类关键的规划技术任务分解思维链CoT让模型一步一步地思考。这不是一个特殊功能而是一种提示技巧——在提示词里加上请一步一步推理模型就能把隐式的推理过程显式化把大任务自然分解成小步骤。思维树ToTCoT的升级版。CoT是一条线ToT是一棵树——每一步都探索多种可能性用广度优先或深度优先搜索来找最优路径。复杂问题用CoT可能走进死路ToT能回溯重试。自我反思规划不是一次性的好的Agent要能反思自己的决定。这里有三个框架很重要ReAct后面会详细展开边推理边行动边行动边观察反馈构成循环。Reflexion让Agent在行动后回顾我做得怎么样用过去的反思改进下一轮决策。CoHChain of Hindsight向模型展示一系列带反馈的历史输出让它学会从失败中改进。这三者的共同点Agent不再是一次性给出答案的机器而是有了迭代和进化的能力。2. 记忆Memory大模型的四种脑子这是最容易被忽略却极其重要的部分。很多人以为大模型天生有记忆或者记忆就是上下文窗口。其实大模型的记忆有四种不同的机制每种来源不同、作用不同第一种预训练记忆参数记忆这是大模型最深层的记忆。GPT-4在训练时看过互联网上海量的文本这些知识被压缩进了数十亿个神经元权重里。它知道水是湿的、合同有法律效力、Python用缩进控制结构——这些不需要任何提示是天生就有的。但这种记忆有一个关键缺陷一旦训练完成就固定了。今天发生的新闻、你公司内部的数据它一概不知。第二种上下文记忆短期记忆这就是你和大模型对话时的当前窗口。把历史对话全部塞进prompt模型就能记住前面说了什么。这属于提示工程的范畴。局限也很明显上下文窗口有限长对话后早期内容会被截断或遗忘。用人类来比喻这就是工作记忆——容量有限、不持久。第三种微调记忆长期参数记忆在更具体的数据集上进一步训练模型让它专精某个领域。比如把大量医疗病历喂给模型做微调它在医疗问答上的表现就会显著提升。这种方式成本高、周期长适合垂直场景的深度定制不适合频繁更新知识。第四种外部记忆系统向量数据库这是给大模型加外挂第二大脑的方式也是RAG检索增强生成技术的核心。把大量文档、知识库、历史记录向量化存储每次对话时先检索相关内容塞进上下文模型就能参考远超上下文窗口的外部知识。想象一下一个法律AI Agent它的脑子里不仅有预训练的法律常识还能实时检索最新的法律法规数据库。这就是外部记忆的价值。四种记忆的关系记忆类型容量更新速度持久性预训练极大极慢重训永久上下文有限实时会话内微调较大慢重训永久外部系统无限实时持久真正强大的Agent需要把这四种记忆协同使用。3. 工具调用Tool Use从大脑到手脚这是Agent与ChatGPT最本质的差别。ChatGPT只有一颗大脑它能说、能想但它的世界终结于对话框。没有工具调用能力的AI再聪明也只能想不能做。工具调用让Agent有了手脚搜索工具知识库不够用去搜索引擎找最新信息。计算器让模型算复杂数学不靠猜而靠精确计算。代码执行器让模型写完代码直接跑看真实输出。日历、邮件、数据库API……几乎任何外部系统都可以封装成工具。举个实际例子。假设Agent接到任务帮我找到今天北京最便宜的一束玫瑰花并估算一下100元预算能买几束。没有工具的模型凭训练数据里的记忆给出一个可能严重过时的价格。有工具的Agent的执行路径调用搜索工具查询北京玫瑰花今日价格收到搜索结果提取价格数据调用计算器计算100÷单价综合信息输出最终答案这两者的差距不是准不准的问题而是能不能做到的问题。工具调用的挑战在于Agent需要知道何时用工具不是每个问题都要调工具Agent需要知道用哪个工具工具选择策略Agent需要协调多个工具的使用顺序复杂任务下的工具编排这些问题恰好是ReAct框架要解决的。4. ReAct框架把三件事串起来的推理引擎ReActReasoning Acting是2022年由Shunyu Yao等人在论文中提出的框架发表于ICLR 2023。它的核心思想极其简洁把推理和行动交织在一起形成循环。ReAct的循环只有三步思考Thought→ 行动Action→ 观察Observation→ 思考……每一轮思考评估当前情况决定下一步要做什么行动执行决定可能是调用工具可能是直接输出观察收集行动的反馈结果然后把观察的结果输入下一轮思考循环往复直到任务完成。这个循环有多重要来看一段真实的Agent执行过程书中原文问题当前Agent最新研究进展是什么 思考我需要搜索关于Agent的最新研究 行动SearchAgent最新研究进展 观察[搜索结果多篇论文摘要...] 思考搜索结果提到了AI对齐我需要更多信息 行动SearchAgent AI alignment 2024 观察[更多搜索结果...] 思考现在我掌握了足够信息 最终答案多Agent强化学习、AI对齐等领域已取得重大进展...注意相同的问题Agent两次运行给出了不同的搜索策略和不同的答案。这不是bug这是Agent在动态地思考如何解决问题。它不是硬编码的流程而是实时推理的产物。这正是ReAct框架的精髓操作的序列不是硬编码在代码里的而是由大模型实时决定的。这是AI自主决定应用程序逻辑的新编程范式。三、四个要素怎么协同工作现在把四件事放在一起看用户输入任务 ↓ [规划] 大模型分析任务制定执行计划 ↓ [记忆] 检索相关历史信息和外部知识 ↓ [ReAct循环] 思考 → 行动调用工具 → 观察结果 → 思考 → ... ↓ 任务完成输出结果 ↑ [记忆] 将本次交互结果存入记忆系统用书中KwaiAgents项目的架构来描述接收任务输入查询背景知识人设指令记忆更新确认记忆系统是最新状态记忆检索从记忆库中取出相关信息任务规划大模型生成包含工具调用计划的执行序列工具执行按计划调用工具观察结果循环判断任务完成则输出否则继续规划总结输出整合所有信息生成最终答案这七步就是一个完整的Agent工作循环。四、除了ReAct还有哪些认知框架ReAct是最主流的但不是唯一的。书中还介绍了几个值得了解的框架函数调用Function CallingOpenAI提出的方式。大模型作为调度中心直接调用预定义的函数。比ReAct更结构化适合与现有系统深度集成。计划与执行Plan-and-Execute先完整规划所有步骤再统一执行。ReAct是边想边做这个是先想好再做。适合确定性高、步骤清晰的复杂任务。自问自答Self-Ask让大模型对自己的问题提出追问层层深入。适合需要多角度分析的复杂查询。批判修正Critique-Revise也叫Self-Reflection。模型先输出再批判自己的输出再修正循环直到满意。适合创作、分析类任务。思维链 / 思维树CoT / ToT前文已讲线性推理 vs. 树状搜索复杂度越高越倾向用ToT。选哪种框架取决于任务类型和环境确定性。没有最好的框架只有最合适的框架。五、用50行代码跑起来一个真正的Agent理论说够了来看代码。书中用LangChain OpenAI SerpApi实现了一个会自主搜索并总结Agent最新研究进展的Agent。核心逻辑不超过50行from langchain import hub from langchain_openai import OpenAI from langchain_community.utilities import SerpAPIWrapper from langchain.agents.tools import Tool from langchain.agents import create_react_agent, AgentExecutor # 1. 获取ReAct提示模板来自LangChain Hub社区 prompt hub.pull(hwchase17/react)