本文教大家使用AgentFramework集成Agent Skill智能体技能
1.基础知识
代理技能 是指令、脚本和资源的可移植包,可提供代理的专用功能和域专业知识。 技能遵循开放规范并实现渐进式披露模式,以便代理在需要时仅加载所需的上下文。
在需要时使用代理技能:
封装领域专业知识 - 将专业知识(费用策略、法律工作流、数据分析管道)捕获为可重用且可移植的包。
扩展代理功能 - 为代理提供新功能,而无需更改其核心指令。
确保一致性 - 将多步骤任务转换为可重复的可审核工作流。
启用互作性 - 在不同的代理技能兼容产品中重复使用相同的技能。
技能结构
技能是一个目录,包含一个 SKILL.md 文件,并且可以选择包括用于存放资源的子目录:- expense-report/
- ├── SKILL.md # Required — frontmatter + instructions
- ├── scripts/
- │ └── validate.py # Executable code agents can run
- ├── references/
- │ └── POLICY_FAQ.md # Reference documents loaded on demand
- └── assets/
- └── expense-report-template.md # Templates and static resources
复制代码 SKILL.md 格式
该文件 SKILL.md 必须包含 YAML 前置数据,后跟 Markdown 内容:- name: expense-report
- description: File and validate employee expense reports according to company policy. Use when asked about expense submissions, reimbursement rules, or spending limits.
- license: Apache-2.0
- compatibility: Requires python3
- metadata:
- author: contoso-finance
- version: "2.1"
- ---
复制代码 ## Shell SKILL 文件夹
https://github.com/junkai-li/NetCoreKevin/tree/master/Kevin/kevin.Module/kevin.AI.AgentFramework/Skills
基本设置
创建一个指向包含您技能的目录的FileAgentSkillsProvider,并将其添加到代理的上下文提供者中。
源代码地址:https://github.com/junkai-li/NetCoreKevin/blob/master/Kevin/kevin.Module/kevin.AI.AgentFramework/AIAgentService.cs
[code]using Azure.AI.OpenAI;using Azure.Identity;using Microsoft.Agents.AI;// Discover skills from the 'skills' directory var skillsProvider = new FileAgentSkillsProvider( skillPaths: [Path.Combine(AppContext.BaseDirectory + "/Skills", "expense-report-skills"), Path.Combine(AppContext.BaseDirectory + "/Skills", "system-ops-skills")], options: new FileAgentSkillsProviderOptions { SkillsInstructionPrompt = """ 你可以使用以下技能获取领域知识和操作指引。 每个技能提供专业指令、参考文档和可执行脚本 它们如下: {0} 使用 `expense-report` 这个技能用于 按照NetCoreKevin科技公司政策填写和审核员工费用报销。适用于费用报销、报销规则、收据要求、支出限额或费用类别等相关问题。 使用 `system-ops` 这个技能 工作流程: 1. 当用户任务匹配技能描述时,使用 `load_skill` 加载该技能的完整指令 2. 技能指令中会标明可用脚本及其执行命令 3. 使用 `run_shell` 工具执行技能中标注的命令 4. 需要时使用 `read_skill_resource` 读取参考资料。 重要原则:先加载知识,再执行操作。 """ });// Create an agent with the skills providerAIAgent agent = new AzureOpenAIClient( new Uri(endpoint), new DefaultAzureCredential()) .GetResponsesClient(deploymentName) .AsAIAgent(new ChatClientAgentOptions { Name = "SkillsAgent", ChatOptions = new() { Instructions = "You are a helpful assistant.", //
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |