Agent 设计模式

1、Chain of Thought(思维链)

提出背景:Google Research 在 2022年发表的论文《Chain-of-Thought Prompting ElicitsReasoning in Large Language Models》。核心思想:让模型在回答前,把推理过程一步步写出来。不是一口气报出答案,而是把整个推理过程展示出来。

场景例子:问小王比小李大1岁,小张的年龄是小李的两倍。如果三个人的年龄加起来是 41.岁,问小王多大?思维链方式:假设小李的年龄是x,那么小王=x+3,小张=2x,总和=(x+1)+x+(2x)=4x+1,4x+1=41,4x=38,x=10,所以小王=10+3=13。结果小王 13岁。这种方式在逻辑推理、数值计算、逐步分析类问题里,会显得更稳健。

2、Self-Ask(自问自答)提出背景:

Microsoft Research在 2022年的研究工作《Self-Ask with Search》,出自论文《Measuring and Narrowing the Compositionality Gap in Language Models》核心思想:让模型在回答时学会"反问自己",把大问题拆成多个小问题,然后逐个回答场景例子:问2016 年奥斯卡最佳男主角的年龄是多少?Self-AsK会先问:2016年奥斯卡最佳男主是谁?(答:李奥纳多·狄卡比奥),再问他当时多大?(答:41岁),最后组合答案。这种方式特别适合事实链路长的问题。

3、ReAct(推理+行动)

提出背景:Princeton与Google Research在2022年论文《ReAct: Synergizing Reasoningand Acting in Language Models》.

核心思想:在推理(Reasoning)和外部行动(Acting,比如调用搜索引擎或API)之间交替进行。ReAct 比 CoT、Self-Ask更全能,原因在于它不仅是推理模式,还内建了与外部世界交互的闭环。

场景例子:问杭州昨天的天气?ReAct会先想:"我不知道昨天的天气,需要查询"然后执行"调用天气 API",再推理并回答。这让 Agent 既有思维,又能动手。

4、Plan-and-Execute(计划与执行)

提出背景:出现在 2023 年前后的 Agent 应用开发框架实践(如 LangChain 社区)核心思想:把任务拆成两个阶段,先生成计划(Planning),再逐步执行(Execution)场景例子:假设你让 Agent写一篇"新能源车的市场调研报告",它不会直接生成报告,而是先拟定计划:收集销量数据,分析政策趋势,总结消费者反馈,写结论。然后逐条执行。适合多步骤、需长时间任务的场景。

5、Tree of Thoughts(ToT,树状思维)

提出背景:Princeton和 DeepMind在 2023年的论文《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》。核心思想:不是单线思维,而是生成多条思路分支,像树一样展开,再通过评估机制选出最佳分支。

场景例子:解一道数独时,Agent会尝试多个候选解法(分支A、B、C),逐步排除错误分.

支,最终选出唯一解。适合复杂规划和解谜任务。

6、Reflexion /lterative Refinement(反思与迭代优化)

提出背景:2023年论文《Reflexion:Language Agents with Verbal Reinforcement Learning》。

核心思想:Agent 具备自我纠错的能力,犯错后会总结失败原因,再带着反思尝试下一次。场景例子:让 Agent 写一段 Python 代码,如果第一次运行报错,它会读报错信息,反思",然后自动修正并重试。适合代码生成、流程执行类场景。"函数参数写错了"

7、Role-playing Agents(角色扮演式智能体或者说是多智能体协作)

提出背景:源自 AutoGPT、ChatDev、CAMEL等社区项目。核心思想:把任务拆分给不同角色的 Agent,每个 Agent都有专属职责,通过对话协作完成任务。

场景例子:一个软件开发任务里,有产品经理 Agent写需求文档,程序员 Agent 写代码,测

试 Agent 写测试用例。它们像团队一样协作。适合复杂系统开发或跨职能协同。

这些认知框架,其实构成了 Agent世界里的思维模式库:

CoT:一步步写过程

Self-Ask:拆分成小问题

ReAct:既思考也动手

Plan-Execute:先计划再执行

TOT:树状多分支探索

Reflexion:自我反思迭代

Role-playing:多人协作分工

它们并不是互斥的,可以混搭使用,理解这些模式,能让我们在应用开发框架选型和使用时,想的更为透彻,一些设计模式,例如 ReAct,已经被 LangChain、Llamandex、Dify、SpringAlAlibaba 等 Agent 开发框架内置成基础框架,帮助开发者提升模型的调用效果。

相关推荐
Lhan.zzZ7 分钟前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大27 分钟前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS41 分钟前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
满栀5851 小时前
vue动态路由效果
前端·javascript·vue.js·前端框架·vue
quantdash_cc1 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
ydd1001001 小时前
寻找两个正序数组的中位数 Java 题解,二分分割详解
java·开发语言
半亩码田2 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
Wzx1980123 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
jjw_zyfx3 小时前
css vue vite实现闪烁的呼吸效果
javascript·css·vue.js
牧羊人.3333 小时前
Python 办公自动化从入门到入土|09 数据容器之字典
开发语言·python