Agent学习——AI Agent总体概览

一,agent介绍

agent的定义很广,不仅仅指的是claude code,codex这类coding ai,也包括了平时使用的deepseek,豆包网页版,ide的插件等,这些都能算作agent。agent的核心可以看作由三个部分组成,模型、工具和上下文。其中工具为agent的手脚,它让agent能真正接触到外部的世界;模型为agent的大脑,agent所有的决策和执行都是由模型来决定的;上下文为agent的眼睛,它不只是用户输入那一段文字,而是将之前的经验参考资料给到模型,让整个agent有了完整场景。

1,工具调用

在agnet中工具可分为五种,分别为感知工具,执行工具,协作工具,事件触发工具和用户沟通工具。感知工具提供了查阅的途径,包括上网、获取数据库的内容等。执行工具给agent提供执行操作的手,让agent能够真正的编写程序执行内容。协作工具则是让agent能与其他的agent相互交流,比如一个智慧医院系统中分诊agent给专科agent派遣任务就可算作协作工具的流程,协作工具也可以在agent执行到关键点时让人类来做抉择。事件触发工具和前三个完全不同,它不是由agent主导调用的工具,而是外部系统决定是否驱动agent执行任务,比如邮箱接入一个agent只有当收到新邮件才会驱动agent执行任务。用户沟通工具则是agent和用户连接的工具,这个工具和其他工具不同,其他注重于改变外部世界,这个则注重于信息交流,典型的例子就是网页版ai返回的文字结果。

工具调用分为四个流程:1、申明工具。2、模型决定工具调用。3、结果追加在上下文。4、模型基于结果回复。

工具调用的决策者为模型,我们只需要编写工具即可。

2,模型

模型为agent的大脑,agent的所有功能调用和返回结果都离不开模型。所以一个优秀的agent离不开好的模型,为了让模型更好的处理agent收到的任务,我们会让它进行三种不同学习机制,分别为:后训练、上下文学习、外部化学习。这个训练的时间从高到低。

后训练时间最长也是最能显著优化模型的学习机制,通过改变模型的内部权重,让它能够永久学习到具体要点。

上下文学习通过注意力机制来给出下一步的回答,其实这更像是模板匹配通过分析用户的话术来给出返回结果,比如用户投诉就给出安抚加赔偿方案,这个虽然能套用现成的方案但无法进行创造和学习新的内容。

外部化学习就是将知识和流程固化为外部的内容,也就是模型可以将一个流程转化为具体的代码实施,这个过程是可变的且是永久化的,比起前两个这个可验证性更强。

3,上下文

上下文也分为5个部分,分别为系统提示词,工具定义,用户消息,模型回复,工具执行结果。

系统提示词通常作为角色的划分,通过固定的模板编写agent现在处在哪种角色。

工具定义则是将agent可以调用那些工具给说明出来,规定agent的操作范围。

用户消息是用户现在的需求,给了agent具体执行的方向。

模型回复则将模型的思考过程和工具调用给展示了出来,能够直观看见模型内部的执行过程。

工具执行结果将结果返回给agent,这个回复是agent下一步的思考依据,避免重复犯错。

4,react

这是agent最为重要的部分之一,若只是像上面那样执行想→做→看,这样返回的结果仍然不如人意,react则是进行了一个循环将一个复杂的问题拆分成多个循环处理,将看的那一步在发送给agent,agent得到完整的轨迹执行下一个循环,开启下一个阶段,直至得出最终结果。

二,Harness 工程

Harness是给agent作限制的保证其能真正完成任务,可以说整个agent除了模型之外的部分都可以属于Harness工程。Harness可以包括上下文,工具,约束,验证,纠正。模型+上下文+工具和模型+上下文+工具+约束+验证+纠正这两个属于不同视角的agent不是替代关系,也就是之前说的agent中除了模型都可以看作Harness。

模型虽然能力强但不可控,Harness就可以做为缰绳来控制agent,其中约束是规定了agent的能力范围,验证是检查agent做的对不对,纠正就是在agent做错时如何补救。我使用agent发送邮件作为例子,约束就是规定agent可以发送给谁,验证就是检验agent是否发送成功、邮件是否正确发送给对的人,纠正则是当agent发错了执行撤回。

构建一个好用的agent的系统需要有以下三点:保持简单,保持透明,设计好的工具接口。

相关推荐
§ꦿCFོ༉14 小时前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习
2603_9696948516 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
北京云帆互联科技1 天前
云帆培训考试系统更新说明:v9.3.0
java·学习
sxlishaobin1 天前
Maven Setting详解
java·学习·maven
li星野2 天前
相位补偿学习记录:把被颅骨“打乱“的声波重新对齐
学习
Z21-X2 天前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
red_redemption2 天前
自由学习记录(230)
学习
晓梦林2 天前
BUUCTF-菜刀流量-MISC-学习笔记
笔记·学习
Godspeed Zhao3 天前
从零开始学AI25——无监督学习之层次聚类
学习·机器学习·聚类
David猪大卫3 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习