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的系统需要有以下三点:保持简单,保持透明,设计好的工具接口。

相关推荐
老衲不用@飘柔24 分钟前
SFP与SFP+学习知识整理
学习
X54先生(人文科技)43 分钟前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议
电子云与长程纠缠1 小时前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
syagain_zsx2 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
其实防守也摸鱼2 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
我命由我123452 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
kkkkkkkkkk_Z3 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla3 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
fanged5 小时前
嵌入式架构学习6--ZSWatch(TODO)
学习
叼烟扛炮5 小时前
Linux 学习笔记(十三):高效排错利器——GDB 调试器入门
linux·笔记·学习