认识 Agent 技能
Agent 技能能做什么
Agent 技能,类似单 Agent 模式,支持添加多个操作。终端用户可以直接使用自然语言说出需求,由大模型编排操作的组合调用顺序,以实现不同场景的用户需求。开发者侧,仅需要将需要使用的操作添加进来,使用自然语言来编写提示词,指定这个技能的人设和指引大模型如何使用添加的这些操作。
在模型推理模式下,实际是指定了执行一个固定的 Agent 技能;在混合调度模式下,Agent 技能也可以被模型选择和调度。
终端用户触发效果
配置步骤
新建一个 Agent 技能
在页面左侧进入「技能编排」,点击「添加技能」,选择「Agent」技能即可创建。
250px|700px|reset
添加提示词
你需要通过提示词指定 Agent 技能的人设,引导大模型进行正确的回复。在页面左侧的编辑框内可以添加和编辑提示词,可以添加人设、目标、回答约束、回答样例等信息。
例如,我们要开发一个天气查询的 Agent 技能,可以根据天气情况给出合理的穿搭和出行建议,你可以添加如下提示词:
# 角色
你是一个智能天气查询助手,能够理解用户的问题,获取正确的信息,并提供准确、清晰、有用的回答。
# 约束
- 专注于回答用户的问题,不偏离主题,回答应简洁明了,避免冗长和不必要的信息。
- 回答问题时,可以使用一些 emoji 来丰富回答的表现力。
- 尊重用户,保持礼貌和友好的态度。
# 核心任务
## 1: 理解问题
1. 仔细分析用户提出的问题,确定其核心意图。
2. 提取关键信息,以便提供更针对性的回答。
## 2: 提供答案
1. 根据问题的类型和情境,选择合适的回答方式。
2. 针对查询到的天气信息,给出合理的穿衣和出行建议。
3. 确保回答内容准确、清晰、易懂。
## 3: 引导交流
1. 如果需要,通过提问或提供相关信息,引导用户进一步阐述问题或展开提问。
添加你需要的操作(可选)
以天气查询为例,大模型本身无法感知到实时的天气信息,因此我们还需要添加一些操作,让大模型能够感知和总结实时天气。你可以点击页面中的“添加操作”,从高德地图连接器中添加“查询实时天气”和“查询天气预报”两个操作。
入参中的字段,如果需要大模型根据用户输入自动推断,则需要在右上角切换该字段的输入方式,切换为“AI 推断”;如果有的字段必须传入固定的值,则你可以直接在输入框中输入固定的值。如果你在调试过程中发现大模型对有些字段的推断效果不佳,可以尝试点击字段名旁边的编辑按钮,给字段添加更多解释或提供一些样例。
出参中的字段往往比较多,在出参设置中可以进行一些裁剪,将需要大模型消费的出参勾选“AI 处理”,避免太多无关字段影响大模型的编排和信息总结。
调整提示词,添加编排说明
你可以在提示词中增加一些说明,告诉大模型在什么情况下应当使用什么操作。如果操作之间具有一定的调用顺序和参数传递关系,你也可以添加在提示词中,告诉大模型什么场景下按什么样的顺序编排、如何将前一个操作的出参传递给下一个操作的入参。
继续以天气查询为例,添加了查询实时天气和查询天气预报的操作后,在提示词中也对应增加一些说明。
250px|700px|reset
完整提示词如下:
# 角色
你是一个智能天气查询助手,能够理解用户的问题,获取正确的信息,并提供准确、清晰、有用的回答。
# 约束
- 专注于回答用户的问题,不偏离主题,回答应简洁明了,避免冗长和不必要的信息。
- 回答问题时,可以使用一些 emoji 来丰富回答的表现力。
- 尊重用户,保持礼貌和友好的态度。
# 核心任务
## 场景 1: 理解问题
1. 仔细分析用户提出的问题,确定其核心意图。
2. 提取关键信息,以便提供更针对性的回答。
3. 如果用户的提问是“查一下{城市}现在的天气”、“查一下{城市}今天的天气”等,则说明用户想查询实时的天气情况,你需要调用“查询实施天气”。
4. 如果用户的提问是“查一下{城市}明天的天气”、“{城市}未来几天的天气”等,则说明用户想查询天气预报,你需要调用“查询天气预报”。
5. 如果无法判断用户需要查询实时天气还是天气预报,则你需要同时查询实时天气和天气预报。
## 场景 2: 提供答案
1. 根据问题的类型和情境,选择合适的回答方式。
2. 针对查询到的天气信息,给出合理的穿衣和出行建议。
3. 确保回答内容准确、清晰、易懂。
## 场景 3: 引导交流
1. 如果需要,通过提问或提供相关信息,引导用户进一步阐述问题或展开提问。。。
调试和预览
完成上述步骤后,你可以直接在右侧的调试台中尝试触发技能了。
你可以在日志中查看大模型推断的操作调用顺序和操作入参,如果操作调用顺序或入参推断不合理,你可以修改编排说明、操作本身的名称描述、字段的描述来调整,直到效果满意后提交此技能。
250px|700px|reset
开启技能并发布应用
完成技能的调试后,你需要提交此技能。应用发布后,线上环境的用户才可以用到此 Agent 技能。在应用发布时,针对你的技能中调用的飞书连接器操作,Aily 会自动计算依赖的权限,如果需要添加其他权限,你也可以点击下方的“手动添加”按钮进行添加。
发布应用时,自动检测依赖的飞书开放平台权限:
250px|700px|reset
常用 tips 和已知问题
不同场景拆分不同操作
一些操作支持通过不同的入参实现不同效果,我们可以通过输入不同的固定值,拆分多个能实现不同功能的操作,便于大模型选择。
例如,更新飞书任务操作,可以同时更新任务的标题和任务的执行人。但用户在对话时不会每次都同时更新标题和执行人,我们可以添加两个“更新任务”操作到 Agent 技能中,一个只更新任务标题,一个只更新任务的执行人。通过将操作拆分,让大模型选择更准确。
一些限制条件
- Agent 技能的模型设置中,请尽量选择 GPT 3.5 16k 或更高的模型,并且模型必须有 函数调用 能力。
- 目前一个 Agent 技能内,最多支持添加 8 个操作,建议控制在 5 个以内,操作越多会导致大模型编排的时间变长,编排的效果可能会不稳定。
- 单次触发 Agent 技能,最多支持编排 10 次操作执行。
大模型对于用户 OpenID 的推断
Aily 在运行时会自动注入上下文的信息,可以自动获取到当前对话人的 OpenID。此外,如果用户在对话中通过 @ 指定了具体的人,那平台也可以自动获取到被 @ 用户的 OpenID。在需要传入 OpenID 的字段描述中,你需要声明这里传入用户的 OpenID,大模型会自动推断并填入 OpenID。