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

【NLP】 38. Agent

什么是 Agent?

一个 Agent 就是能够 理解、思考,并且进行世界交互 的模型系统,并不是纯粹的 prompt 返回器。

它可以:

  • 读取外部数据(文件/API)
  • 使用记忆进行上下文维持
  • 用类Chain-of-Thought (CoT)方式进行多段思考
  • 使用工具(调用接口)进行行动

代表方式:ReAct 模型

ReAct = Reasoning + Acting

使模型在解决问题时的每一步,要么做思考(Thought),要么进行行动(Action)

示例:

  • Thought: I want to find the latest news about electric vehicles.
  • Action: Search(“latest electric vehicle news”)

通过 prompt 给出格式,展示了没有经过频繁训练的大语言模型也能有效拟真场景操作。


各类系统创造 Agent 方法

单个 LLM + Prompt(如 ReAct、Reflexion)

通过设计精巧的提示(prompt),即使是单个 LLM 也可以模拟出“思考—行动”过程。ReAct 让模型在输出中明确分出 Thought 与 Action,增强推理与操作联动。Reflexion 则在每轮尝试失败后引导模型生成自我反思文本,形成闭环提升效果。

多个 LLM 分工协作(如 AutoGen)

将复杂任务拆解为多个角色协作处理,如规划者(Manager)、执行者(Editor)、校验者(Verifier)。每个角色由单独的 LLM 扮演,协作完成复杂决策流程,提升系统稳定性与准确性。

模型集合动态挑选(如 DyLAN)

DyLAN 不直接用固定模型,而是在任务开始阶段从多个候选 LLM 中动态挑选表现最优的代理组合,形成“专家团队”,提升适应性与任务成功率。

多模态/物理化 Agent(如 WebArena, 机器人)

这类 Agent 不再局限于文本,而具备真实环境交互能力,如浏览网页、操控机器人。WebArena 提供了包含多类网页环境的模拟测试平台,而机器人代理则将自然语言转为实际物理动作。


原型模型 + 记忆系统

  • 短期记忆:Prompt 历史,保持上下文一致性
  • 长期记忆:结合 RAG 机制,通过查询 BM25 或 embedding 检索外部知识,支撑长期任务或补充事实

原型思考技术

Chain-of-Thought

将复杂问题分解为多个可解释的中间步骤,显著提高模型在数学、逻辑、推理类任务的正确率。

Self-consistency(多数投票)

对同一问题生成多个思维链,再对答案进行投票,选择最一致的那个,从而缓解偶发错误的影响。

Tree of Thought

以树结构展开推理,每一步都有多个“想法”分支,通过搜索与剪枝找到最优解,类似规划或博弈搜索。

Reflexion(反思)

引导模型在任务失败后生成反思文本,结合先前经验进行下一轮尝试,持续优化行为。


行动技术补充:

【Toolformer】

通过在生成文本中嵌入特殊标记,模型可以主动决定是否调用外部 API 工具(如计算器、搜索引擎)。训练中利用自监督方式挖掘出自然文本中的合适调用时机,使模型学会判断何时、如何使用工具以增强准确性。

【WebGPT】

模拟人类浏览网页找答案的行为,模型可发出 Search、Click、Quote 等指令访问网页,并在生成答案时引用证据来源。训练采用 RLHF(人类反馈强化学习),提升回答真实度与信息来源可靠性。

【OpenHands / Anthropic】

让语言模型控制完整的 Shell 环境或图形界面,支持写代码、点击界面元素等多步指令操作,并提供执行日志以便审查调试,是实现实用型 AI Agent 的关键平台。


评价指标 / Benchmark

WebShop

模拟电商购物过程的交互测试环境,考验 Agent 理解复杂购买意图与筛选能力。

WebArena

提供丰富多样的真实网页环境(论坛、电商、文档协作等),评估 Agent 的跨页面长链任务能力。

SWE-Bench

来自 GitHub 的真实编程修复任务集,要求模型根据 Issue 编写补丁代码并通过测试,是对代码生成和理解的严苛挑战。

PrivacyLens

通过构造包含敏感信息的用户交互轨迹,测试模型在隐私保护与泄露防范上的表现,衡量其遵守社会规范的能力。


总结

  • Agent = LLM + memory + tools + 世界交互
  • ReAct 是一种 prompt-based agent 实现方案
  • Acting = 超越 token generation,进行世界操作
  • 构建 agent 需要多模态输入、长期记忆、工具集成等支撑能力
  • 新型 benchmark 可衡量推理能力、隐私合规性、网页交互能力等关键维度

LLM Agent 是未来智能系统的关键形态,掌握其结构与方法有助于我们构建更可靠、更通用的 AI 应用。

相关文章:

【NLP】 38. Agent

什么是 Agent? 一个 Agent 就是能够 理解、思考,并且进行世界交互 的模型系统,并不是纯粹的 prompt 返回器。 它可以: 读取外部数据(文件/API)使用记忆进行上下文维持用类Chain-of-Thought (CoT)方式进行…...

Windows开机自动启动中间件

WinSW(Windows Service Wrapper 是一个开源的 Windows 服务包装器,它可以帮助你将应用程序打包成系统服务,并实现开机自启动的功能。 一、下载 WinSW 下载 WinSW-x64.exe v2.12.0 (⬇️ 更多版本下载) 和 sample-minimal.xml 二、配置 WinS…...

AIGC 基础篇 Python基础 02

1.bool类型 书接上回,我们上次最后讲了三大数据类型,除了这三个之外,Python也有bool类型,也就是True和False。 a 2 print(a1) print(a2) 像这里,输出的内容第一个是False,因为a的值为2,而第…...

【图片转AR场景】Tripo + Blender + Kivicube 实现图片转 AR 建模

总览 1.将 2D 图片转为立体建模 2. 3. 一、将 2D 图片转为立体建模 1.工具介绍 Tripo 网站 2.找图片 找的图片必须是看起来能够让 AI 有能力识别和推理的,因为现在的AI虽然可以补全但是能力还没有像人的想象力那么丰富。 比如上面这张图片,看起来虽…...

NLP常用工具包

✨做一次按NLP项目常见工具的使用拆解 1. tokenizer from torchtext.data.utils import get_tokenizertokenizer get_tokenizer(basic_english) text_sample "Were going on an adventure! The weather is really nice today." tokens tokenizer(text_sample) p…...

LSTM-XGBoost多变量时序预测(Matlab完整源码和数据)

LSTM-XGBoost多变量时序预测(Matlab完整源码和数据) 目录 LSTM-XGBoost多变量时序预测(Matlab完整源码和数据)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 普通的多变量时序已经用腻了,审稿人也看烦了&#…...

Git 切换到旧提交,同时保证当前修改不丢失

在 Git 中&#xff0c;可以通过以下几种方式切换到之前的提交&#xff0c;同时保留当前的修改 1. 使用 git checkout 创建临时分离头指针&#xff08;推荐用于查看代码&#xff09; git checkout <commit-hash>这会让你进入"分离头指针"状态&#xff0c;你可…...

C#学习12——预处理

一、预处理指令&#xff1a; 解释&#xff1a;是在编译前由预处理器执行的命令&#xff0c;用于控制编译过程。这些命令以 # 开头&#xff0c;每行只能有一个预处理指令&#xff0c;且不能包含在方法或类中。 个人理解&#xff1a;就是游戏里面的备战阶段&#xff08;不同对局…...

Razor编程中@Helper的用法大全

文章目录 第一章&#xff1a;Helper基础概念1.1 Helper的定义与作用1.2 Helper的基本语法结构1.3 Helper与HtmlHelper的区别 第二章&#xff1a;基础Helper用法2.1 无参数Helper2.2 带简单参数的Helper2.3 带默认值的参数2.4 使用模型作为参数 第三章&#xff1a;高级Helper用法…...

React 样式方案与状态方案初探

React 本身只提供了基础 UI 层开发范式&#xff0c;其他特性的支持需要借助相关社区方案实现。本文将介绍 React 应用体系中样式方案与状态方案的主流选择&#xff0c;帮助开发者根据项目需求做出合适的选择。 1. React 样式方案 1.1. 内联样式 (Inline Styles) 通过 style …...

鸿蒙APP测试实战:从HDC命令到专项测试

普通APP的测试与鸿蒙APP的测试有一些共同的特征&#xff0c;但是也有一些区别&#xff0c;其中共同特征是&#xff0c;它们都可以通过cmd的命令提示符工具来进行app的性能测试。 其中区别主要是&#xff0c;对于稳定性测试的命令的区别&#xff0c;性能指标获取方式的命令的区…...

git删除本地分支和远程分支

删除本地分支 git branch -d 分支名删除远程分支 git push origin --delete 分支名...

MySQL用户远程访问权限设置

mysql相关指令 一. MySQL给用户添加远程访问权限1. 创建或者修改用户权限方法一&#xff1a;创建用户并授予远程访问权限方法二&#xff1a;修改现有用户的访问限制方法三&#xff1a;授予特定数据库的特定权限 2. 修改 MySQL 配置文件3. 安全最佳实践4. 测试远程连接5. 撤销权…...

在Android13上添加系统服务的好用例子

在Android13上添加一个自动的system service例子 留好&#xff0c;备用。 --- .../prebuilts/api/30.0/plat_pub_versioned.cil | 76 - .../prebuilts/api/31.0/plat_pub_versioned.cil | 94 - .../prebuilts/api/32.0/plat_pub_versioned.cil | 94 - frameworks/base/co…...

HarmonyOS-ArkUI 自定义弹窗

自定义弹窗 自定义弹窗是界面开发中最为常用的一种弹窗写法。在自定义弹窗中&#xff0c; 布局样式完全由您决定&#xff0c;非常灵活。通常会被封装成工具类&#xff0c;以使得APP中所有弹窗具备相同的设计风格。 自定义弹窗具备的能力有 打开弹窗自定义布局&#xff0c;以…...

JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?

引入 在Java的编程宇宙中&#xff0c;“Everything is object”是最核心的哲学纲领。当我们写下new Book()这样简单的代码时&#xff0c;JVM正在幕后构建一个复杂而精妙的“数据实体”——对象。这个看似普通的对象&#xff0c;实则是JVM内存管理、类型系统和多态机制的基石。…...

Java求职者面试:微服务技术与源码原理深度解析

Java求职者面试&#xff1a;微服务技术与源码原理深度解析 第一轮&#xff1a;基础概念问题 1. 请解释什么是微服务架构&#xff0c;并说明其优势和挑战。 微服务架构是一种将单体应用拆分为多个小型、独立的服务的软件开发方法。每个服务都运行在自己的进程中&#xff0c;并…...

[electron]预脚本不显示内联script

script-src self 是 Content Security Policy (CSP) 中的一个指令&#xff0c;它的作用是限制加载和执行 JavaScript 脚本的来源。 具体来说&#xff1a; self 表示 当前源。也就是说&#xff0c;只有来自当前网站或者当前页面所在域名的 JavaScript 脚本才被允许执行。"…...

开疆智能Ethernet/IP转Modbus网关连接斯巴拓压力传感器配置案例

本案例是将ModbusRTU协议的压力传感器数据上传到欧姆龙PLC&#xff0c;由于PLC采用的是Ethernet/IP通讯协议&#xff0c;两者无法直接进行数据采集。故使用开疆智能研发的Ethernet转Modbus网关进行数据转换。 配置过程 首先我们开始配置Ethernet/IP主站&#xff08;如罗克韦尔…...

【Redis】Redis 的持久化策略

目录 一、RDB 定期备份 1.2 触发方式 1.2.1 手动触发 1.2.2.1 自动触发 RDB 持久化机制的场景 1.2.2.2 检查是否触发 1.2.2.3 线上运维配置 1.3 检索工具 1.4 RDB 备份实现原理 1.5 禁用 RDB 快照 1.6 RDB 优缺点分析 二、AOF 实时备份 2.1 配置文件解析 2.2 开启…...

20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决

20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决 2025/6/7 17:20 缘起&#xff1a; 1、根据RK809的DATASHEET&#xff0c;短按开机【100ms/500ms】/长按关机&#xff0c;长按关机。6s/8s/10s 我在网上找到的DATASHE…...

Asp.net Core 通过依赖注入的方式获取用户

思路&#xff1a;Web项目中&#xff0c;需要根据当前登陆的用户&#xff0c;查询当前用户所属的数据、添加并标识对象等。根据请求头Authorization 中token&#xff0c;获取Redis中存储的用户对象。 本做法需要完成 基于StackExchange.Redis 配置&#xff0c;参考&#xff1a;…...

浏览器工作原理01 [#]Chrome架构:仅仅打开了1个页面,为什么有4个进程

引用 浏览器工作原理与实践 Chrome打开一个页面需要启动多少进程&#xff1f;你可以点击Chrome浏览器右上角的“选项”菜单&#xff0c;选择“更多工具”子菜单&#xff0c;点击“任务管理器”&#xff0c;这将打开Chrome的任务管理器的窗口&#xff0c;如下图 和Windows任务管…...

智能问数Text2SQL Vanna windows场景验证

架构 Vanna 是一个开源 Python RAG&#xff08;检索增强生成&#xff09;框架&#xff0c;用于 SQL 生成和相关功能。 机制 Vanna 的工作过程分为两个简单步骤 - 在您的数据上训练 RAG“模型”&#xff0c;然后提出问题&#xff0c;这些问题将返回 SQL 查询&#xff0c;这些查…...

【VLAs篇】02:Impromptu VLA—用于驱动视觉-语言-动作模型的开放权重和开放数据

项目描述论文标题Impromptu VLA&#xff1a;用于驱动视觉-语言-动作模型的开放权重和开放数据 (Impromptu VLA: Open Weights and Open Data for Driving Vision-Language-Action Models)研究问题自动驾驶的视觉-语言-动作 (VLA) 模型在非结构化角落案例场景中表现不佳&#xf…...

[学习笔记]使用git rebase做分支差异化同步

在一个.NET 项目中&#xff0c;使用了Volo.Abp库&#xff0c;但出于某种原因&#xff0c;需要源码调试&#xff0c;因此&#xff0c;使用源码方式集成的项目做了一个分支archive-abp-source 其中引用方式变更操作的提交为&#xff1a;7de53907 后续&#xff0c;在master分支中…...

Java + Spring Boot + Mybatis 插入数据后,获取自增 id 的方法

在 MyBatis 中使用 useGeneratedKeys"true" 获取新插入记录的自增 ID 值&#xff0c;可通过以下步骤实现&#xff1a; 1. 配置 Mapper XML 在插入语句的 <insert> 标签中设置&#xff1a; xml 复制 下载 运行 <insert id"insertUser" para…...

【Linux应用】Linux系统日志上报服务,以及thttpd的配置、发送函数

【Linux应用】Linux系统日志上报服务&#xff0c;以及thttpd的配置、发送函数 文章目录 thttpd服务安装thttpd配置thttpd服务thttpd函数日志效果和文件附录&#xff1a;开发板快速上手&#xff1a;镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互&#xff08;RADX…...

Nginx 事件驱动理解

在做埋点采集服务的过程中&#xff0c;主要依靠openresty加lua脚本来实现采集。高并发还是主要依靠nginx来实现。而其核心就是事件驱动/多路io复用&#xff08;epoll机制&#xff09;&#xff0c;不同的linux服务器都有对应的实现方式。 而epoll机制就是&#xff0c;应用启动的…...

Jmeter(四) - 如何在jmeter中创建网络测试计划

1.简介 如何创建基本的 测试计划来测试网站。您将创建五个用户&#xff0c;这些用户将请求发送到JMeter网站上的两个页面。另外&#xff0c;您将告诉用户两次运行测试。 因此&#xff0c;请求总数为&#xff08;5个用户&#xff09;x&#xff08;2个请求&#xff09;x&#xff…...