Agent模式介绍

最近更新时间:2025-02-05 16:57:32

我的收藏

Agent实现方案

Agent模式的优势是由大模型进行自主规划和工具调用,把应用对话的主动权更多地交由给模型,发挥模型的主动性,适用于更灵活、开放的场景。
Agent模式的核心工作流程包括:
思考规划:制定整体任务达成的规划思路,并把整体的复杂任务拆解为细分的子任务。
主动选择和调用工具:根据拆解后的子任务和工具的描述说明,选择一个或多个合适的工具来解决问题。
主动纠错反思:模型自主改进优化过去的行为决策,并对行为进行纠正。
以上三类工作由思考模型执行完成,并可能存在多次循环执行,最终输出回复的答案。

以一个用户输入问题“深圳未来1周的天气,把最低和最高气温趋势图画出来”为例,Agent模式应用会按照下列描述响应。
1. [思考]第一步需要查询深圳的天气信息。并且选择GetWeatherInfo工具查询天气信息。

2. [工具调用]通过GetWeatherInfo查询未来一周的天气信息。

3. [思考]已经获取天气结果,思考下一步动作,自动生成代码,并通过CodeInterpreter把气温变化趋势图绘制出来。

4. [工具调用]选择{代码解释器}插件绘制气温变化趋势,并提供生成图片URL。

5. [思考]下一步需要将输出结果呈现给到用户。

6. [输出回复]输出温度变化趋势图(因为过程较为简单,工具调用未发生错误,因此没有进行反思纠错。)

在上述问题的回复示例中,中间的模型规划和工具调用的的过程结果为“思考过程”,最终输出答案。


Agent模式的模型配置

Agent模式支持配置两类模型,思考模型和生成模型,思考模型负责规划和思考,其中思考/工具调用/反思均是由思考模型完成;当应用涉及知识库问答时,由生成模型进行阅读理解和答案内容的生成。

Agent模式的插件配置

先澄清插件和工具的概念:
工具:工具是一个API,通过调用这个API完成某一项需求。
插件:插件是工具的集合,一个插件里面包含了若干个工具(相当于是工具组)。
Agent模式实际上选择的是插件里面包含的工具。思考模型的工具调用方式,是通过把工具的名称和描述信息注册在思考模型的系统提示词中,让思考模型了解哪些工具可用以及具体的使用场景。当用户输入问题时,思考模型根据对于问题的理解和拆分,和工具的描述说明,选择一个或多个合适的工具来解决问题。
因此,在Agent模式,需要选择好需要的工具,并且提供容易理解的工具描述说明(在自定义插件时候需要注意),对于工具的成功调用至关重要。

Agent模式应用搭建示例

简单应用搭建

在上面查询天气的问题示例里面,展示了Agent模式对于一个具体复杂问题的响应过程,如果希望搭建满足特定功能需求的应用,从而简化复杂问题的重复输入,也可以在应用的角色描述中描述指令要求,快速实现Agent模式的应用搭建。下面通过一个最简单的例子,说明搭建一个Agent模式应用的流程。
应用目标:搭建一个天气查询小助手应用,输入城市名称后,输出该城市的天气信息和穿衣建议。
第一步: 新建应用
单击新建应用,应用名称修改为“天气查询小助手”,并选择合适的头像上传,单击新建创建应用。


第二步: 切换到Agent模式
点击头像,弹出编辑应用弹窗。

在应用模式中选择切换为Agent模式并点击保存。

第三步: 应用配置
1. 提示词撰写:需要在提示词对于应用的角色任务、任务流程、输出示例、限制等内容进行描述,一份清晰无歧义的提示词可以帮助模型更好理解应用的要求,进而达成更好的表现。可以选择按照模板填写提示词内容。
在角色指令中,根据天气查询和穿衣建议生成的需求,撰写提示词内容。
可以在#任务目标 中描述天气小助手的角色定位,并在#任务流程 中描述具体应用执行的流程步骤,在#限制 中可以补充约束条件。
# 任务目标
作为天气查询小助手,你需要根据用户输入的城市名称,提供准确的天气查询服务,并针对查询结果给出相应的穿衣建议。

# 任务流程
1. 使用GetWeatherInfo工具查询城市明天的天气信息
2. 根据天气信息生成个性化的穿衣建议,包括符合温度的上衣、裤子、外套等着装建议,以及是否要带帽子、雨伞
3. 按照以下要求输出天气信息
- 城市:<地点名称>
- 天气:<具体天气状况和温度>
- 穿衣建议:<具体的穿衣建议>
2. 
插件选择
:当应用不仅需要依赖模型能力,同时也需要外部工具获取实时信息(如天气查询、搜索引擎),或者执行特定操作(如代码生成、数学计算)时,需要配置相应的工具。目前知识引擎已经提供了一些常见的官方插件供选择,如果有需要可以选择新增自定义插件满足更多场景的需求。
“天气查询小助手”应用需要查询天气,需要依赖外部工具获取的实时天气信息,需要在插件中选择“天气”工具帮助完成天气查询任务。
点击 +添加插件

+添加插件 弹窗中,搜索“天气”,点击 +添加 天气插件下的GetWeatherInfo工具。

已选择的工具将显示在插件中,并支持点击复制工具名称到提示词中,让模型更准确地按照指令调用工具。

第四步:应用调试
在应用调试的对话框中测试应用的表现,例如输入北京、南京等城市名称的正面示例,可以获取结果。

如果输入“中国”,则会反问具体要查询的城市名称。

第五步:应用发布
在目前测试效果已经验证后,可以点击发布把应用发布到正式环境。

发布成功后,可以在发布管理调用信息中查看体验链接和API调用说明。


应用难度升级

上面通过简单几步即可快速搭建一个Agent模式应用,也可以再升级一些复杂度,为“天气查询小助手”应用提供更多的能力。
应用升级目标:输入城市,输出城市的温度、穿衣建议和未来的温度变化趋势,并展示趋势图呈现温度变化趋势。
下面展示了应用修改调试的流程。
第一步:修改配置
1. 插件补充:最新的应用目标中生成趋势图的要求,需要选择一个工具支持图表的绘制和生成,点击添加插件,添加官方插件中的代码解释CodeInterpreter工具完成温度变化趋势的图表生成。

2. 提示词修改:根据升级后的任务目标,修改提示词,在任务流程中,补充了未来气温趋势图的生成的步骤描述。
# 角色任务
作为天气查询小助手,你的主要任务是提供准确的天气查询服务,并针对查询结果给出相应的穿衣建议。

# 任务流程
1.用户输入城市名称,使用GetWeatherInfo查询城市今天、明天和未来3天的天气信息
2.未来气温趋势图:根据检索到5天的天气变化趋势,使用CodeInterpreter,把5天气温的最高气温和最低气温变化绘制一个曲线图
3.未来气温趋势总结:根据未来3天的气温变化,描述变化趋势并输出穿衣建议,比如“气温有波动”,或者“气温呈下降趋势”

按照以下格式输出天气信息
- 城市:<地点名称>
- 明日天气:<具体天气状况和温度,对比今天到明天到天气变化>
- 明日穿衣建议:<明天穿衣建议>
- 未来天气变化:<未来气温趋势总结><未来气温趋势图>
第二步: 调试效果
在应用调试的对话框中测试应用的表现,再次输入城市名称,例如“深圳”,可以看到能够通过天气插件查询多日的天气信息,并生成温度趋势变化图,成功升级了应用的效果表现。


第三步: 应用再次发布
如果希望正式环境可以同步到应用的最新的效果表现,可以点击再次发布应用。

常见问题

从标准模式切换到Agent模式,已经编辑的应用配置内容是否还会保留?

不同模式的应用配置保持独立,模式切换时配置内容不继承,包括模型选择、提示词内容等。但是应用的知识库范围和工作流范围在不同模式之间保持同步。
当再次从Agent模式切换回标准模式时,能够继续在原本标准模式下已经编辑的提示词和配置基础上修改。

Agent模式与其他两类模式的区别在哪里?

Agent模式区别于标准模式,应用的执行不是按照固定标准流程推进进行的,而是依赖思考模型进行任务的规划,根据用户的输入,由模型来进行任务的拆解和主动工具调用,其中思考模型需要理解插件中工具的名称和描述信息,选择合适的插件。
Agent模式区别于单工作流模式,不是执行单一特定的工作流程,如果有确定性的任务场景,建议选择单工作流模式。目前版本Agent模式暂不支持工作流,后续升级敬请期待。

为什么Agent模式不支持工作流?

Agent模式下支持工作流,需要考虑兼容工作流多轮交互和Agent思考方式。我们正在探索一些有趣的特性,可以在Agent模式下支持工作流,并实现工作流的灵活跳转承接,如果对于这部分感兴趣,欢迎联系运营咨询。