定义:
AI agent 可以理解为一个能够感知环境、做出决策并采取行动的程序或系统。——百科补充说明:是人们 基于大模型,试图 模仿人类解决问题行为 的一种尝试。
应用形式
反思(Reflection)
说明:类似自我纠错和迭代,让AI自己或使用其他方式,在AI生成内容后完成2次校验。
举例:
a. 文本生成场景:
让ai生成一段代码;
生成后,让ai检查(要求“检查此段代码的正确性,告诉我如何修改”);
再反给ai要求根据检查结果修改。
在这个案例中,ai会检查第一次生成的代码的问题,指出其中的bug,并以此往复进行自我迭代。虽然修改后的代码质量不一定能保证,但基本上来说效果会更好
同理,在让AI生成文章或其他内容时也可以要求它 [重新检查 > 提出问题 > 进行优化]
b. 智能客服场景:
客户向AI咨询某一个商品,在AI返还商品相关信息
此时,可增加逻辑(代码or其他方式),检查ai返还的信息与数据控中的信息是否匹配(比如是否真实存在这个商品、商品库存、价格是否准确),以此增加客服的准确性
此类形式还可以在很多不同的场景应用
使用工具(Tool use)
配置好工具,当AI判断有相关需要时,让AI 使用相关工具,进行后续动作。目前应用较多的是联网搜索。
个人理解,主要分为以下方向:
1. **额外信息获取:**通过联网搜索、文档阅读、图片识别等方式,获取更多信息,来回答模型训练数据以外的问题,比如:
1. 事实性质的新闻
2. 某个专业特定的文档资料
2. **使用其他工具执行任务:**某一些任务大模型存在劣势,需要使用其他工具进行具体操作,举例:
1. 调用计算器,或其他实用工具(AI在计算方面存在天然劣势,最典型的:13.11和13.8谁大)
2. 调用专业小模型(一些专业类型的知识,大模型本身回答可能不准确,可以在让大模型做出判断“此类知识属于某个小模型的专业方向”后,调用具体小模型来进行答案输出)
3. 调用其他模型(图片生成一类的)
3. **使用其他工具输出内容:**用户最终需要的内容可能不是文本类型的,比如一份word文档、ppt等,此类需求,需要调用其他工具,进行最终的输出。
制定流程规划(Planning)
用户输入任务 > AI 拆解流程 > 选择工具 > 调用、执行 > 输出结果
这个过程中,可以将原本复杂的任务拆分成单一的小任务,简化每一步的操作以此提高最终结果的质量
比如:
场景:我们需要AI帮忙给简历提出建议,这个要求有一些宽泛
实现逻辑:在Agent搭建的过程中,将这一任务拆分为:
1. 检查简历基础信息、模块是否完善
2. 是否存在语义问题/错别字
3. 针对每一段工作经历单独 分析,对那一段工作经历的描述进行评价、提出建议
4. 要求以STAR法则检查项目经历的描述,提出相应建议
5. 汇总每一步骤的建议,提出最终说明
在制定agent的流程时,需要对应方向的专家和对ai智能体熟悉的人通力合作,才能获得更好的结果。
多智能体协作(Multi-agent )
在整个流程过程中,每一个智能体可以被设定成不同的身份&拥有不同的能力,让他们通力协作,完成相关任务。
此处以 [清华面壁智能的开源项目 ChatDev] 为例:
每个 Agent 被赋予了不同的身份,比如有的是 CEO,有的是产品经理,有的是程序员,他们互相合作互相对话,比如你让他们开发一个简单的小游戏,他们会花几分钟时间来编写代码并测试。尽管有时候不是很有效,但非常有前景和想象力,它模拟了现实生活中的工作场景,Multi-agent 不仅仅只能执行单一任务,而是成为了一个复杂系统。
能力及特点
输入/感知:
a. 接入更多不同感知模块来获取更多不同类型的数据,如:视觉、听觉
举例:自主驾驶中感知路况、手机智能助手通过语言识别b. 通过增加输入内容,实现更多具体场景的应用
举例:智能文档解析(文档)、分析网页内容(输入网页url)c. 通过引导/限制输入内容,实现在具体场景下更准确的提问与输出
说明:自然语言本身足够复杂,很多人说话提问方式又有各自特点,有事很难准确的向AI提问。在这个基础上,在制作agent时,针对对应的场景做出引导/一定程度的限制,能够让这一些用户更好的与AI沟通,完成相应任务。补充:还有一个思路是设置好任务,ai定期执行。
规划/行动能力
可要求AI自行规划行动逻辑;
也可以在制作智能体时,可使用提示词要求 或 用代码/其他方式约束AI处理问题的方式(或工作流workflow),以此来获取更加准确结果,可实现:
a. 复杂目标的拆解:将复杂的目标拆分为更小、可管理的子目标,从而高效准确的处理复杂任务
b. 多步骤任务处理:让ai能够按步骤完成任务,并根据目标变化与环境反馈调整行动策略
c. 反思与总结:可对过去行为进行反思总结优化后续判断逻辑(此部分作者目前理解比较浅薄)
记忆
a. 短期记忆:通过上下文获取短期记忆
b. 长期记忆:利用外部向量存储&快速检索获取长时间保留和回忆信息的能力。
工具使用
Agent中,可接入大量的其他工具,使用过程中AI可以判单是否需要调用相关的工具(也可以通过设定要求AI在某些情况下使用对应的工具),一般使用Function call 的形式调用。
工具包含以下方向:
a. 实用工具:包含文档阅读、计算器等等各类工具
b. 数据检索:包含直接联网搜索(理解网页内容)、数据库检索等
c. 其他模型:可调用其他图片生成、音频生成的模型;也可以调用更擅长处理某一类问题的小模型。
输出/行动:
Agent 在设定后可以规范最终输出内容,在这个基础上进行其他操作
a. 除去文本输出,在具备相应工具的情况下可支持图片、音视频、文档等不同形式
b. 输出内容也可以是具体指令,在其他工具中做出相应决策等
优势/劣势
相比于直接使用LLM大模型的优劣势
优势 | |
---|---|
任务针对性更强 | 1. 通过对具体任务和环境定制优化,能够更精准地满足特定业务场景或用户的需求; 2. 对复杂任务可以通过集成自主验证和决策过程,弥补大模型的不足,确保行动的准确性和效率 |
可扩展性和 适应性强 |
1. 可通过接入不同的模型/插件,不断扩展功能和提升性能; 2. 也可方便地集成到各类系统中,为更多场景服务,实现更多的功能。 |
更好的交互性 | 结合不同的【感知模块(视觉/声音识别等)】和对【输入方式】的控制,可以在很大程度上丰富交互形式,更好的理解用户意图 |
劣势 | |
---|---|
通用性较弱 | 大部分Agent都对某一特定场景进行了针对性优化;相应的,在通用能力上会有所减弱 (设定固定流程的agent尤为明显) |
研发、训练复杂 | 开发过程涉及到多个组件和模块的设计与整合,包括感知、规划、决策、行动等,以及与环境的交互逻辑等,比单纯训练大模型更为复杂,需要更深入的技术理解和专业知识,对开发者要求较高 |
计算资源量更大 | 虽然在具体任务执行上可能更高效,但由于其包含多个模块和复杂的功能,运行时可能也需要较多的计算资源来支持其工作,尤其是在处理大规模数据或复杂任务时 |