找回密码
 立即注册
首页 业界区 业界 .Net基于AgentFramework中智能体Agent Skill集成Shell命 ...

.Net基于AgentFramework中智能体Agent Skill集成Shell命令实现小龙虾mini版

乳杂丫 4 小时前
本文教大家使用AgentFramework集成Agent Skill智能体技能

1.基础知识

代理技能 是指令、脚本和资源的可移植包,可提供代理的专用功能和域专业知识。 技能遵循开放规范并实现渐进式披露模式,以便代理在需要时仅加载所需的上下文。
在需要时使用代理技能:
封装领域专业知识 - 将专业知识(费用策略、法律工作流、数据分析管道)捕获为可重用且可移植的包。
扩展代理功能 - 为代理提供新功能,而无需更改其核心指令。
确保一致性 - 将多步骤任务转换为可重复的可审核工作流。
启用互作性 - 在不同的代理技能兼容产品中重复使用相同的技能。
技能结构
技能是一个目录,包含一个 SKILL.md 文件,并且可以选择包括用于存放资源的子目录:
  1. expense-report/
  2. ├── SKILL.md                          # Required — frontmatter + instructions
  3. ├── scripts/
  4. │   └── validate.py                   # Executable code agents can run
  5. ├── references/
  6. │   └── POLICY_FAQ.md                 # Reference documents loaded on demand
  7. └── assets/
  8.     └── expense-report-template.md    # Templates and static resources
复制代码
SKILL.md 格式
该文件 SKILL.md 必须包含 YAML 前置数据,后跟 Markdown 内容:
  1. name: expense-report
  2. description: File and validate employee expense reports according to company policy. Use when asked about expense submissions, reimbursement rules, or spending limits.
  3. license: Apache-2.0
  4. compatibility: Requires python3
  5. metadata:
  6.   author: contoso-finance
  7.   version: "2.1"
  8. ---
复制代码
## Shell SKILL 文件夹
https://github.com/junkai-li/NetCoreKevin/tree/master/Kevin/kevin.Module/kevin.AI.AgentFramework/Skills
1.png

基本设置
创建一个指向包含您技能的目录的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.",              //
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册