当前位置: 首页 > news >正文

从一个比喻开始:人类如何完成一项复杂任务?

假设你是一个活动策划,今天接到任务:为公司200人年会设计一个方案,三天后汇报。

你会怎么做?

  1. 先想清楚要干什么(规划):把大任务拆成小任务——场地、预算、节目、餐饮、主持……
  2. 调用已有的知识和经验(记忆):你记得去年的供应商报价,你记得哪个节目类型最受欢迎。
  3. 打电话查资料、用工具(工具调用):你打开地图找场地,调出Excel算预算,发邮件给供应商问报价。
  4. 执行并不断根据反馈调整(ReAct循环):场地报价太高,重新找;节目时长超了,重新排……

你就是一个Agent。规划、记忆、工具、执行循环,这四件事你每天都在做,只是不叫这个名字。

现在,OpenAI前安全主管Lilian Weng在她的著名博文《LLM Powered Autonomous Agents》中,把这个过程精确地映射到了AI Agent的架构上。


二、Agent的四大要素:拆开来看

1. 规划(Planning):大模型的"分解力"

规划,是把一个复杂任务拆成可执行的子任务序列的过程。

听起来简单,但这恰恰是大模型出现之前的Agent最难做到的事。传统AI要么死守规则,遇到没见过的情况就不知所措;要么只会反应式处理,根本没有"先想清楚再行动"的能力。

大模型改变了这一点。它有两类关键的规划技术:

任务分解

  • 思维链(CoT):让模型"一步一步地思考"。这不是一个特殊功能,而是一种提示技巧——在提示词里加上"请一步一步推理",模型就能把隐式的推理过程显式化,把大任务自然分解成小步骤。

  • 思维树(ToT):CoT的升级版。CoT是一条线,ToT是一棵树——每一步都探索多种可能性,用广度优先或深度优先搜索来找最优路径。复杂问题用CoT可能走进死路,ToT能回溯重试。

自我反思

规划不是一次性的,好的Agent要能"反思自己的决定"。这里有三个框架很重要:

  • ReAct(后面会详细展开):边推理边行动,边行动边观察反馈,构成循环。
  • Reflexion:让Agent在行动后回顾"我做得怎么样",用过去的反思改进下一轮决策。
  • CoH(Chain 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的执行路径:

  1. 调用搜索工具,查询"北京玫瑰花今日价格"
  2. 收到搜索结果,提取价格数据
  3. 调用计算器,计算100÷单价
  4. 综合信息,输出最终答案

这两者的差距,不是"准不准"的问题,而是"能不能做到"的问题。

工具调用的挑战在于:

  • Agent需要知道何时用工具(不是每个问题都要调工具)
  • Agent需要知道用哪个工具(工具选择策略)
  • Agent需要协调多个工具的使用顺序(复杂任务下的工具编排)

这些问题,恰好是ReAct框架要解决的。


4. ReAct框架:把三件事串起来的"推理引擎"

ReAct(Reasoning + Acting)是2022年由Shunyu Yao等人在论文中提出的框架,发表于ICLR 2023。

它的核心思想极其简洁:把推理和行动交织在一起,形成循环。

ReAct的循环只有三步:

思考(Thought)→ 行动(Action)→ 观察(Observation)→ 思考……

每一轮:

  1. 思考:评估当前情况,决定下一步要做什么
  2. 行动:执行决定(可能是调用工具,可能是直接输出)
  3. 观察:收集行动的反馈结果

然后把"观察"的结果输入下一轮"思考",循环往复,直到任务完成。

这个循环有多重要?

来看一段真实的Agent执行过程(书中原文):

问题:当前Agent最新研究进展是什么? 思考:我需要搜索关于Agent的最新研究 行动:Search("Agent最新研究进展") 观察:[搜索结果:多篇论文摘要...] 思考:搜索结果提到了AI对齐,我需要更多信息 行动:Search("Agent AI alignment 2024") 观察:[更多搜索结果...] 思考:现在我掌握了足够信息 最终答案:多Agent强化学习、AI对齐等领域已取得重大进展...

注意:相同的问题,Agent两次运行给出了不同的搜索策略和不同的答案。这不是bug,这是Agent在动态地"思考"如何解决问题。它不是硬编码的流程,而是实时推理的产物。

这正是ReAct框架的精髓:操作的序列不是硬编码在代码里的,而是由大模型实时决定的。这是AI自主决定应用程序逻辑的新编程范式。


三、四个要素怎么协同工作?

现在把四件事放在一起看:

用户输入任务 ↓ [规划] 大模型分析任务,制定执行计划 ↓ [记忆] 检索相关历史信息和外部知识 ↓ [ReAct循环] 思考 → 行动(调用工具) → 观察结果 → 思考 → ... ↓ 任务完成,输出结果 ↑ [记忆] 将本次交互结果存入记忆系统

用书中KwaiAgents项目的架构来描述:

  1. 接收任务:输入查询+背景知识+人设指令
  2. 记忆更新:确认记忆系统是最新状态
  3. 记忆检索:从记忆库中取出相关信息
  4. 任务规划:大模型生成包含工具调用计划的执行序列
  5. 工具执行:按计划调用工具,观察结果
  6. 循环判断:任务完成则输出,否则继续规划
  7. 总结输出:整合所有信息,生成最终答案

这七步,就是一个完整的Agent工作循环。


四、除了ReAct,还有哪些认知框架?

ReAct是最主流的,但不是唯一的。书中还介绍了几个值得了解的框架:

函数调用(Function Calling):OpenAI提出的方式。大模型作为"调度中心",直接调用预定义的函数。比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")
http://www.jsqmd.com/news/1085431/

相关文章:

  • Python程序设计基础知识点100道填空题(含解析)
  • Midscene.js:如何用视觉AI技术彻底革新跨平台UI自动化测试
  • ViGEmBus:Windows内核级虚拟游戏控制器驱动架构深度解析与技术实现
  • 3步实现大麦智能抢票:告别手速比拼的自动化解决方案
  • ORACLE 19C DataGuard实战:从零到一构建高可用灾备环境
  • PotPlayer字幕翻译插件终极指南:免费实现外语视频实时双语字幕
  • 如何为Windows游戏添加虚拟手柄支持:ViGEmBus驱动终极指南
  • Debian 12 虚拟机安装实战:从零到可用的完整图解指南
  • KMS_VL_ALL_AIO:告别激活烦恼的终极解决方案
  • 终极解决方案:如何用ViGEmBus内核驱动解决Windows游戏控制器兼容性问题
  • 从Photoshop到GIMP:PhotoGIMP如何帮你平滑迁移设计工作流
  • MounRiver Studio与WCH-Link实战:从零点亮CH32V103C的LED与串口通信
  • 缠论量化框架chan.py:三步构建智能交易系统的技术突破
  • 利用AI写专著,20万字专著轻松搞定,这些工具你不能错过!
  • 2026年高考志愿智能填报辅助系统--辅助你选志愿
  • Snap.Hutao:原神玩家必备的终极工具箱完整指南
  • MTK设备BROM模式深度解析:从硬件底层到安全解锁的终极指南
  • OpenMV实战:从零到一的视觉项目搭建指南
  • SX1278跳频实战:基于E32-400M22S模块的LoRa抗干扰通信实现
  • 五轴加工核心技术架构深度解析:自适应算法、实时同步与数字孪生
  • RH850/U2B开发板硬件设计:电源管理、复位时钟与高速接口实战解析
  • NHSE架构设计与实现原理深度解析:动物森友会存档编辑器的核心技术剖析
  • WindowsCleaner终极指南:如何快速解决C盘爆红问题并让Windows系统重获新生
  • 软件安全与漏洞挖掘:从基础原理到实战SRC的完整指南
  • 从理论到实践:SFM与SLAM系统核心算法解析与工程实现
  • 【STC8驱动AD8370】可变增益放大器在信号调理电路中的精准控制实践
  • ViGEmBus虚拟手柄驱动:如何让任何设备变身专业游戏控制器?
  • 如何用3个核心技术模块破解QQ音乐API接口限制
  • 赛博朋克2077存档编辑器:免费开源工具完全使用指南
  • WPF TabControl 现代化视觉风格定制指南