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 开发框架内置成基础框架,帮助开发者提升模型的调用效果。

相关推荐
pop_xiaoli2 分钟前
effective-Objective-C 第一章阅读笔记
开发语言·笔记·ios·objective-c·cocoa·xcode
jghhh012 分钟前
基于C#的CAN总线BMS上位机开发方案
开发语言·c#
serve the people2 分钟前
python环境搭建 (七) pytest、pytest-asyncio、pytest-cov 试生态的核心组合
开发语言·python·pytest
java1234_小锋5 分钟前
分享一套不错的基于Python的Django宠物信息管理系统
开发语言·python·宠物
一切尽在,你来7 分钟前
C++ 零基础教程 - 第4讲-实现简单计算器
开发语言·c++
女王大人万岁14 分钟前
Go语言JSON标准库(encoding/json):功能解析与实战指南
服务器·开发语言·后端·golang·json
摘星编程15 分钟前
OpenHarmony环境下React Native:Loading全屏加载遮罩
javascript·react native·react.js
wjs202416 分钟前
Scala 基础语法
开发语言
.ZGR.17 分钟前
从游戏到实战的线程进阶之旅:智能无人机防空平台
java·开发语言·无人机
上海合宙LuatOS18 分钟前
LuatOS ——fota 升级教程
开发语言·人工智能·单片机·嵌入式硬件·物联网·php·硬件工程