什么是agent?

目录

什么是agent?

为什么需要agent?

Agent的核心组成

主流的Agent工作范式---ReAct循环

[另一种工作模式:Plan and Execute](#另一种工作模式:Plan and Execute)

两种模式怎么选呢?

Workflow工作流

真实的agent


什么是agent?

大模型只会说,不会做

agent要让大模型既会说,也会做

agent(智能体)是一个以大模型为"大脑",自主感知环境,做出决策,调用工具,完成多步骤任务的程序

自主(Autonomously):不需要人发出一步一步的指令,只需要给他一个目标,自主判断下一步做什么

多步骤(Multi-step):一个任务可能有五步十步,agent自主串联起来

工具调用(Tool use):调用真实的函数,查数据库,搜网页,发通知,写文件

大模型单独使用,就是一个只会出主意,不会做事情的顾问,而agent就是给这个顾问配了一双手,不仅能出主意,还能动手干活了

Agent = 大模型(大脑)+工具(双手)+执行循环(思考-行动-观察-再思考)


为什么需要agent?

大模型的三大短板:没有执行能力,知识有截至日期,没有持久记忆

当你提出一个故障问题,大模型只是一个猜测机,猜测可能的情况,而传统的脚本和workflow是写死的逻辑,无法解决新的故障

agent的价值在于:把大模型的灵活推理能力和工具的执行能力结合在一起,让系统可以处理无法提前穷极所有情况的复杂任务


Agent的核心组成

1.大模型(LLM),大脑

负责理解任务,分析当前的状态,决定下一步做什么。

  1. 工具(Tools),双手

一个个可以执行的真实函数:查数据库,调用搜索引擎,读写文件,发通知,调用API...

大模型告诉agent要调用哪个工具,传什么参数,代码层面真正去执行。工具的结果返回给大模型,供他继续推理。

  1. 记忆(Memory),记事本

短期记忆:当前任务的对话历史+每次工具调用的结果,存在context window里面

长期记忆:跨会话需要记住的内容,需要用到外部数据库,需要时检索出来注入context

4.执行循环(Loop),节拍器

不断重复"思考-观察-行动-观察"这个循环,直到任务完成。没有这个循环,大模型无法做多步骤的任务,这个循环是agent和普通大模型调用最本质的区别


主流的Agent工作范式---ReAct循环

全称Raesoning+Acting:推理(Think)- 行动(Act)- 观察(Observe)- 再推理

关键机制:

**结果回流:**每一轮的工具调用都会追加到context window里面,大模型下一轮能看见所有历史。基于已有发现继续推理,而不是每一次都从头开始

**动态决策:**每一步该怎么走是实时推理出来的,不是提前写好的。

**何时停止:**大模型判断任务已完成,或者达到预设的最大轮数


另一种工作模式:Plan and Execute

ReAct是边想边做,根据眼前的,决定后面的,但是这种模式在复杂任务中呢?

1.长任务可能会迷路:context window堆满了任务步骤的时候,大模型要在里面判断当前在第几步,最终目标是什么,还缺哪些信息,注意力越来越稀释,容易偏离原来的目标

  1. 容易绕路:没有全局规划,可能走了几步之后发现方向不对,要回头重来,白白消耗几轮LLM的调用

  2. token消耗滚雪球:每一轮都要把历史对话带上。步骤越多,context越长,LLM调用token消耗越高

因此催生了Plan and Execute(规划-执行模式)

先让大模型把任务步骤生成一份清单,再逐步按清单执行,而不是走一步看一步

第一阶段:Planner(规划阶段)

大模型拿到任务,将任务拆解成一份有序的任务清单

第二阶段:Execute(执行阶段)

计划有了,开始逐步执行,每一步可以是一次工具的调用,也可以是一个小的ReAct循环

还有一个重要机制:Re-planning(重新规划)。执行过程中遇到了计划里没有预料到的事情,Execute可以将新信息反馈给Planner,重新生成后续的步骤


两种模式怎么选呢?

任务步骤少,目标模糊,需要随机应变---用ReAct

任务步骤多,目标明确,需要全局把控---用Plan and Execute

系统复杂,两者都需要---Plan and Execute做外层框架,每个子任务内部跑ReAct


Workflow工作流

提前写好所有步骤和分支逻辑,大模型就是某个步骤被调用一次,整体流程是硬编码的

agent是只给任务目标,大模型实时决定做什么,调用什么工具,根据结果决定下一步。执行结果是动态的,每次运行可能不一样

如果流程能写清楚,步骤是固定的,优先用Workflow,更稳,更省钱,更可预期

任务是开放式的,需要根据中间结果动态决策,就用agent

实际可以用Workflow做骨架,Agent负责其中需要判断的环节,两者结合,不是非此即彼


agent开发的挑战

  1. 幻觉传导:大模型在第一步做出错误判断,在agent多步骤链条里面,会被逐步放大

应对:工具结果要可验证,对高风险操作加人工确认

  1. 工具调用失败:一个工具失败可能造成卡死或者走偏

应对:每个工具都要有明确的错误返回格式;system prompt里面说清楚如果返回错误格式应该怎么处理

  1. 成本和速度:每一轮循环都是一次LLM调用,有token消耗和时延。

应对:设置合理的最大循环轮数;能用workflow尽量用

  1. 循环风险:查了A,查B,查了B,又查A...

应对:设置最大迭代次数,超出就强制结束;让大模型在每步推理时判断当前是否已经足够判断得出结论,是否还需要继续


真实的agent

调用大模型决策

判断是否完成

没完成就执行工具,结果追加到messages

带着新结果再调用大模型

循环

相关推荐
带刺的坐椅3 小时前
Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
java·spring·ai·llm·agent·solon
JunLa3 小时前
Agent Basic 上篇
大数据·人工智能·agent
嘻嘻仙人6 小时前
从原理到代码,拆解AutoGen框架开发实践
人工智能·agent
xuco6 小时前
如何使用 Semantic Router 减少 Token 使用量
人工智能·agent
nix.gnehc6 小时前
AI Agent 设计范式的演进之路:从工具调用到多智能体协作
人工智能·agent
黄林晴7 小时前
Android官方发布 AppFunctions,让系统AI直接调用你的APP
android·agent
还是转转7 小时前
深入认识 Agent —— 智能体开发框架
人工智能·llm·agent
Only丿阿海7 小时前
当运维与AI结合 — 用 AI Agent 去维护 Nginx
运维·人工智能·nginx·agent·agent4j
XLYcmy8 小时前
GameGPT 初赛方案设计 训练入口+主入口
windows·python·ai·llm·prompt·agent·游戏安全