四、Agent原理与ReAct 架构详解 ——《动手学Agent应用开发》学习心得

news/2025/12/14 13:01:10/文章来源:https://www.cnblogs.com/laoluo2025/p/19210596

四、Agent原理与ReAct 架构详解 ——《动手学Agent应用开发》学习心得

==================================================================================

最近参加了Datawhale开源组织举办的组队学习。本篇的学习内容是基础原理-选修:三、Agent原理与最简实践
【教程地址】
https://gitlink.org.cn/datawhalechina/build_good_agents

==================================================================================

1、Agent 核心概念

1.1、Agent 的本质公式

大模型 + 记忆 + 工具 = Agent

Agent(智能体)是能够感知环境、做出决策并采取行动以实现特定目标的自主实体。与传统程序相比,Agent 具备以下核心特征:

  • 自主性:无需人工干预即可独立运行
  • 反应性:能对环境变化做出实时响应
  • 主动性:主动追求目标而非被动响应
  • 社会性:能与其他 Agent 或人类进行交互

当前主流的 Agent 架构

  1. ReAct(推理+行动)
    • 将思考和行动融合在每个步骤中
    • 通过观察-思考-行动的循环实现决策
    • 适合需要实时响应的动态任务
  2. Plan-and-Solve(规划-求解)
    • 先规划再执行的解耦式架构
    • 制定详细计划后严格按照步骤执行
    • 适合需要长远规划的复杂任务
  3. Reflection(反思优化)
    • 执行→反思→优化的三步循环
    • 通过自我评估和迭代改进提升质量
    • 适合追求高精度的关键任务

1.2、ReAct 架构详解

ReAct(Reasoning + Acting)是目前最简洁有效的 Agent 架构,其核心思想是:

观察环境 → 思考推理 → 采取行动 → 观察结果 → 循环

ReAct 决策循环

  1. Thought:基于当前观察进行推理
  2. Action:选择并执行具体行动
  3. Observation:观察行动结果
  4. 循环:根据新观察继续思考
image

示例流程

用户:"北京天气如何?"
Thought:用户询问天气,需要获取北京当前天气信息
Action:weather_query(location="北京")
Observation:{"temperature": 25, "condition": "晴"}
Thought:已获得天气数据,可以回复用户
Action:回复"北京今天25度,晴天"

1.3、其他主流 Agent 架构

Plan-and-Solve Agent

  • 工作原理:由 Lei Wang 在2023年提出,将整个流程解耦为规划阶段和执行阶段
  • 规划阶段:接收完整问题,分解任务并制定分步骤的行动计划
  • 执行阶段:严格按照计划执行,保持目标一致性,避免中间步骤迷失方向
  • 优势:在处理多步骤复杂任务时能够保持更高的目标一致性

Reflection Agent

  • 核心思想:灵感来源于人类学习过程,通过执行→反思→优化的循环提升质量
  • 执行阶段:使用 ReAct 或 Plan-and-Solve 生成初步解决方案
  • 反思阶段:调用独立的 LLM 实例担任"评审员",评估事实性、逻辑性、效率等维度
  • 优化阶段:基于反馈内容对初稿进行修正,生成更完善的修订稿

LangChain Agent

  • 基于链式调用的 Agent 框架
  • 支持多种提示模板
  • 丰富的工具集成生态
  • 适合复杂工作流

AutoGPT

  • 完全自主的目标追求
  • 长期记忆系统
  • 自我提示生成
  • 适合开放式任务

MetaGPT:

  • 软件开发的 Multi-Agent 协作框架
  • 模拟真实软件团队角色分工
  • 产品经理、架构师、工程师等角色扮演
  • 适合自动化软件开发任务

CAMELAI:

  • 基于角色扮演的对话式 Agent 框架
  • 多 Agent 协作完成复杂任务
  • 强调角色定义和通信协议
  • 适合创意写作、教育培训等场景

架构对比

架构 复杂度 控制力 适用场景
ReAct 简单决策任务
Plan-and-Solve 多步骤复杂任务
Reflection 高精度关键任务
LangChain 复杂工作流
AutoGPT 自主探索任务
MetaGPT 软件开发自动化
CAMELAI 角色扮演对话任务

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

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

相关文章

三、Agent 应用开发与落地全景 ——《动手学Agent应用开发》学习心得

三、Agent 应用开发与落地全景 ——《动手学Agent应用开发》学习心得 ================================================================================== 最近参加了Datawhale开源组织举办的组队学习。本篇的学习…

业财一体化五步法 - 智慧园区

你有没有在公司遇到过这些情况: 业务部门和财务部门的销售数据和账务数据总是对不上;业务部门卖得飞快,财务部门却发现账户上的钱少了;决策者要靠数据制定策略,结果数据没一个是可用的。 说白了 ,这些问题其实就…

多项式牛顿迭代

【前置知识】泰勒展开。设 \(g\) 是一个光滑的函数,\(g(y)=\sum_{n\ge 0} \frac{g^{n}(y_0)}{n!}(y-y_0)^n\).多项式 exp。 给定多项式 \(a(x)\) 满足 \(a_0=0\),求 \(\exp a(x)\bmod x^n\)。 设 \(\exp a(x)=f(x)\)…

Vibe coding All In One

Vibe coding All In One Vibe coding is an artificial intelligence-assisted software development technique popularized by Andrej Karpathy in February 2025. It was named Collins Dictionarys Word of the Ye…

路径计数与反射容斥

【路径计数模型】 【卡特兰数】 组合意义:从 \((0,0)\) 走到 \((n,n)\),每次向右或者向上,不严格越过对角线的方案数。 它也和长度为 \(2n\) 的合法括号序列个数相等。各种问题都可以转化为卡特兰数。 回忆一下卡特…

Day21浮动

1.浮动的基本使用 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-sc…

KEYDIY KD B12-3 3-Button Ford Flip Key Remote - 5pcs/lot (Replacement for Ford Vehicles)

## Problem: Key Replacements for Ford Vehicles – A Costly and Time-Consuming Hassle For European and American automotive repair shops and Ford vehicle owners, replacing lost or damaged keys can feel l…

Spring AI Alibaba 项目源码学习(七)-Agent、BaseAgent、ReactAgent 分析

Agent、BaseAgent、ReactAgent 分析 请关注微信公众号:阿呆-bot 概述 本文档分析 Spring AI Alibaba Agent Framework 中的核心 Agent 类层次结构,包括 Agent 基类、BaseAgent 抽象类和 ReactAgent 具体实现,重点分…

fireworks

fireworks https://github.com/materialsproject/fireworks FireWorks stores, executes, and manages calculation workflows.Website (including documentation): https://materialsproject.github.io/fireworks/ He…

KEYDIY KD ZB28-3 Universal Hyundai Smart Remote Key (5pcs/lot) – Reliable Replacement

## Hyundai Smart Key Woes? Meet the KEYDIY KD ZB28-3 Universal Solution ### Problem: The Frustration of Hyundai Smart Key Replacement When a Hyundai owner’s smart remote key fails, or a mechanic need…

Yanhua Mini ACDP-2 A303 Volvo 2022+ IMMO License for ACDP-2 Module20

**Tackling Modern Volvo IMMO Challenges: The Yanhua Mini ACDP-2 A303 License** Modern Volvo vehicles (2022 and newer) are equipped with advanced Immobilizer (IMMO) systems designed to enhance security.…

西电TIC带鱼杯新生训练赛复盘

传送门 A 最大子树和 P1122 最大子树和 - 洛谷几天前看过一眼,大概知道思路,但是因为忘记ans可能取负而没有一次切掉分析题目要求一个节点带权的树的最大子树和我们用 f [ i ]记录子树以节点 i 为根节点时的最大子树…

C++篇(13)计算器实现 - 指南

C++篇(13)计算器实现 - 指南2025-11-15 22:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

20232306 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1.实验要求 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息: DNS注册人及联系方式 该域名对应IP地址 IP地址注册人及联系方式 IP地址所在国家、城市和具体地理位置 PS:使…

完整教程:linux离线环境局域网远程ssh连接vscode

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第26天(简单题中等题 二分查找、贪心算法)

打卡第二十六天 1道简单题+2道中等题题目:思路: 贪心+二分查找,维护一个"潜在的最优递增序列集合",让每个长度的递增子序列的末尾元素尽可能小,从而为后续元素提供更多的增长可能性。代码: class Solution…

byd秘钥 - MKT

byd秘钥 https://rcorex.github.io/nuttyb-config/

【服务器】服务器被攻击植入了挖矿病毒,CPU一直占用100%,@monthly /root/.cfg/./dealer病毒清除 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

牛客101:链表 - 教程

牛客101:链表 - 教程2025-11-15 22:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

完整教程:Redis 事务机制:Pipeline、ACID、Lua脚本

完整教程:Redis 事务机制:Pipeline、ACID、Lua脚本pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…