从零构建能自我优化的AI Agent:Reflection和Reflexion机制对比详解与实现

news/2025/9/30 5:07:52/文章来源:https://www.cnblogs.com/dBjZoQ833/p/19119821

AI能否像人类一样从错误中学习?反思型Agent系统不仅能生成回答,还会主动审视自己的输出,找出问题并持续改进。

反思策略本质上就是让LLM对自己的行为进行自我批评。有时反思器还会调用外部工具或检索系统来提升批评的准确性。这样一来系统输出的就不再是一次性的回答,而是经过多轮生成-审阅循环优化后的结果。

目前主流的反思系统主要分为三类:

基础Reflection Agent比较轻量,就是简单的生成器加反思器循环。生成器负责起草、反思器负责批评,然后生成器根据反馈进行修订。这种方式在很多编辑类任务中效果不错。

Reflexion Agent更加结构化,会在可追踪的日志中记录历史行为、假设和反思内容。特别适合那些需要从多次失败中汲取经验的问题求解场景。

语言Agent树搜索(LATS)采用搜索策略探索多条行动路径,对结果进行反思,然后裁剪或保留有前景的分支。在规划和多步推理任务中表现最佳。

本文重点讨论前两种:Reflection和Reflexion,并用LangChain与LangGraph来实现完整的工作流程。

基础Reflection Agent的工作原理
Reflection Agent的核心在于两个角色之间的互动:

生成器负责起草初始回答,反思器则审查这个草稿,指出缺陷并提出改进建议。

这种循环会进行几轮,每一轮都让输出变得更加精炼和可靠。AI实际上在实时学习自己的错误,就像作家根据编辑意见反复修改稿件一样。

接下来用LangGraph构建一个LinkedIn帖子生成的Reflection Agent。LangGraph专门用于创建自我改进的AI系统,能够模拟人类的反思思维过程——Agent不会止步于第一稿,而是持续打磨直到内容足够优秀。

这个演示会展示如何设置生成器和反思器角色,使用LangChain进行结构化提示,并通过LangGraph将所有组件编织成一个迭代反馈循环。

动手构建Reflection Agent
先从LinkedIn内容创建Agent入手,实现基础的Reflection模式。流程很直接:Agent起草帖子,独立的"反思器"对其进行评析,然后系统根据反馈修订内容。

环境配置
我们这里按需逐步引入,保持学习流程的清晰度。首先用

.env
文件设置API集成的环境变量:

ANTHROPIC_API_KEY="your-anthropic-api-key"

LANGCHAIN_API_KEY="your-langchain-api-key" # optional

LANGCHAIN_TRACING_V2=True # optional

LANGCHAIN_PROJECT="multi-agent-swarm" # optional

然后将这些加载到notebook中:

from langchain_anthropic import ChatAnthropic
from dotenv import load_dotenv

load_dotenv()
load_dotenv(dotenv_path="../.env", override=True) # mention the .env path

Initialize Anthropic model

llm = ChatAnthropic(
model="claude-3-7-sonnet-latest", # Claude model ID
temperature=0,
# max_tokens=1024
)
这里选择Anthropic的claude-3–7-sonnet-latest作为对话模型。当然也可以换成其他LLM,LangChain支持相当广泛的集成。
更多案例:
newsmth.net/nForum/#!article/PieLove/2920274
att.newsmth.net/nForum/#!article/PieLove/2920274
newsmth.net/nForum/#!article/PieLove/2920273
att.newsmth.net/nForum/#!article/PieLove/2920273
newsmth.net/nForum/#!article/PieLove/2920272
att.newsmth.net/nForum/#!article/PieLove/2920272
newsmth.net/nForum/#!article/PieLove/2920271
att.newsmth.net/nForum/#!article/PieLove/2920271
newsmth.net/nForum/#!article/PieLove/2920270
att.newsmth.net/nForum/#!article/PieLove/2920270
newsmth.net/nForum/#!article/PieLove/2920269
att.newsmth.net/nForum/#!article/PieLove/2920269
newsmth.net/nForum/#!article/PieLove/2920268
att.newsmth.net/nForum/#!article/PieLove/2920268
newsmth.net/nForum/#!article/PieLove/2920267
att.newsmth.net/nForum/#!article/PieLove/2920267
newsmth.net/nForum/#!article/PieLove/2920266
att.newsmth.net/nForum/#!article/PieLove/2920266
newsmth.net/nForum/#!article/PieLove/2920265
att.newsmth.net/nForum/#!article/PieLove/2920265
newsmth.net/nForum/#!article/PieLove/2920264
att.newsmth.net/nForum/#!article/PieLove/2920264
newsmth.net/nForum/#!article/PieLove/2920263
att.newsmth.net/nForum/#!article/PieLove/2920263
newsmth.net/nForum/#!article/PieLove/2920262
att.newsmth.net/nForum/#!article/PieLove/2920262
newsmth.net/nForum/#!article/PieLove/2920261
att.newsmth.net/nForum/#!article/PieLove/2920261
newsmth.net/nForum/#!article/PieLove/2920260

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黄页号码认证wordpress访问优化插件

简介 以太坊(Ethereum)是一提供个智能合约(smart contract)功能的公共区块链(BlockChain)平台. 本文介绍了一个简单的以太坊智能合约的开发过程. 开发环境 在以太坊上开发应用,首先需要安装其客户端,本文使用基于Go语言的Geth, 其官网为https://github.c…

潍坊在线制作网站wordpress中文链接

1:防止DNS劫持:使用 https 进行通信。 因为是SDK授权开发,需要尽量压缩so库文件和三方依赖。所以第一想法是使用 head only 的 cpp-httplib 进行开发。 cpp-httplib 需要 SSL 版本是 3.0及以上。但本地已经在开发使用的是1.0.2a版本,不满足需求。 方案1:升级OpenSSL 将Op…

青海论坛网站建设网站优化培训中心

公司电脑如何限制安装软件 安企神终端管理系统下载使用 在企业环境中,电脑已经成为企业中必不可少的办公工具,确保员工的生产力和公司的信息安全是至关重要的。为了实现这一目标,公司可能会限制员工在某些情况下安装软件或者由管理员来为终…

建设网站主机东莞人才网官网

介绍 在许多编程场景中,我们需要编写交互式程序,以便用户可以在终端中输入数据并与程序进行交互。Go语言提供了丰富的方式来获取用户终端输入,使得编写交互式程序变得简单而有趣。本篇博客将深入探讨Go语言中获取用户终端输入的各种方法&…

即墨哪里有做网站的晋城两学一做网站

阿里云国外服务器优惠活动「全球云服务器精选特惠」,国外服务器租用价格24元一个月起,免备案适合搭建网站,部署独立站等业务场景,阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动: 全球云服务器精选特惠…

建设部执业资格注册中心快速seo关键词优化技巧

这里写一个Red hat AS4开启telnet过程开启过程,按照以下步骤(4个步骤)就可以了:1、确定你的telnet服务打开没有:[root111 ~]# chkconfig --list|grep telnettelnet: offkrb5-telnet: off[root111 ~]#注意检查结果这里是关闭状态2、打开tel…

seo网址大全江门网站seo推广

一、引言 随着科技的不断进步,物联网(Internet of Things,IoT)已经成为当今世界最具发展潜力的领域之一。物联网智能项目通过将各种设备、传感器和系统连接到互联网,实现了智能化的监测、控制和管理,为人们…

企业网站的功能中国国建设监理协会网站

MySQL WITH AS及递归查询 WITH AS 官网:WITH 是 SQL 中的一个关键字,用于创建临时表达式(也称为 Common Table Expression,CTE),它允许你在一个查询中临时定义一个表达式,然后在后续的查询中引…

企业建设网站的方式关于网站建设的图片素材

一、题目 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true ;否…

文化传媒网站php源码百度竞价效果怎么样

前言 管理工作在很大程度上是要言传身教的,如果管理者不懂得如何在自己的工作中做到卓有成效,就会给其他人树立错误的榜样。 第 1 章 卓有成效是可以学习的 关于体力工作,我们已有一套完整的衡量方法和制度,从工程设计到质量控制…

包河网站建设个人网站设计与开发

PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。 需要将一个物理量保持在稳定状态(比如维持平衡,温度、转速的…

网站seo检测怎么做外汇返佣的网站

使用Imagine WebAR - Image Tracker插件部署WebGL应用 在使用Imagine WebAR - Image Tracker插件进行WebGL应用开发时,有两个关键知识点需要掌握: 1. 部署到支持HTTPS的服务器 由于WebGL应用需要访问用户的摄像头,因此必须在支持HTTPS的服…

瑞金建设局网站百度网页打不开

近年来随着汽车保有量不断增加,随之而来的是: ( 1) 严重的交通拥堵,通行效率低下,用在通行上的时间不断增加; ( 2) 交通事故频发,交通事故导致的伤亡人数和费用不断增加,而且绝大多数事故是由人为因素导致的; ( 3) 大气…

引航科技提供网站建设vps wordpress hostgator

关于 div 4 的思考 感觉好像可以写到 F 都不需要什么算法知识 关于 div 3 的思考 感觉可以做到 E 好像都不需要什么算法知识 关于 div 2 的思考 好像做到 C 都不需要什么算法知识 赶紧刷题就行,加油加油

驻马店做网站优化旅游网站建设策划书模板

前言 锁的策略:加锁过程中,即处理冲突的过程中,需要涉及到的一些不同的处理方式(此处锁策略并不是java独有的),本篇内容主要是讲解一下关于锁的相关知识点; 1. 关于锁的分组 1.1 第一组&#x…

SEO如何建设网站天津魔方网站建设

1. 题目 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。 示例 1:输入: S "loveleetcode", C e 输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]来源:力扣(LeetCode) 链…

北京市保障房建设投资中心网站首页济南长清网站建设

题意 题目就是说让我们在l到r的数字中求得有多少个连续k为不相同的数 1≤L≤R≤1e18 2≤K≤5 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)分析 直接枚举必然超时 考虑数位dp 由于k最大到5 所以我们可以记录前四位的大小 通过一个c…

青岛做网站公司电话一起做业官方网站

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…

杭州制造业企业做网站自带代理的浏览器

后端从数据库获取数据给到前端: 第一种方式: admin.py文件代码: admin.route(/showList) def show():# 获取数据库所有文章数据,得到一个个对象resArticle.query.all()dicts[]# 将每一个对象转成字典并加入一个列表,再…

php网站开发图文教程抖音分销系统开发

java-ssm-jsp-大学社团管理系统 获取源码——》公主号:计算机专业毕设大全