让 AI Agent拥有“专业技能包“:Microsoft Agent Skills 目录Introduction to Agent Skills使用Agent Skills的好处技能列表的示例Progressive Disclosure总结本文介绍如何使用Agent Skills为Microsoft代理框架中的代理提供可重用的领域专业技能包。通过.NET和Python内置技能提供者代理可以在运行时动态加载所需技能增强其能力而无需修改核心指令。Introduction to Agent Skills您现在可以在Microsoft Agent Framework中配置可移植、可重用的Agent Skills包以提供领域专业知识而无需修改代理核心指令。本文构建了.NET和Python提供的内嵌技能提供程序允许代理在运行时发现并加载Agent Skills仅在需要时调用。Agent Skills是一个简单的开放格式用于赋予代理新能力和专业知识。每个技能的核心是一个SKILL.md文件这是一个描述技能功能并提供指导步骤的Markdown文档。技能还可包含可选的脚本、参考文档和其他资源以供代理随时访问。技能目录示例如下expense-report/ ├── SKILL.md # 必需 — 前言 指令 ├── scripts/ │ └── validate.py # 可执行代码代理可运行 ├── references/ │ └── POLICY_FAQ.md # 按需加载的参考文档 └── assets/ └── expense-report-template.md # 模板和静态资源SKILL.md文件包含YAML前言的元数据后续是用Markdown编写的技能指令。其中名称和描述是必需的许可、兼容性和其他元数据为可选项。使用Agent Skills的好处领域专业知识封装将特定知识打包为可重用的包。扩展代理能力为代理增加新特性而无需修改核心指令。确保一致性将多步骤任务转化为可重用、可审核的工作流程。启用互动性在不同Agent Skills兼容产品中重用相同技能。技能列表的示例构建技能的简单方式是创建一个包含SKILL.md文件的文件夹。技能目录结构如下skills/ └── meeting-notes/ └── SKILL.mdSKILL.md文件格式如下--- name: meeting-notes description: - 将会议记录汇总为结构化笔记和行动项。 在需要处理或总结会议录音或文字记录时使用。 --- ## 指令 1. 提取记录中的关键讨论点。 2. 列出所做的决定。 3. 创建行动项列表包括负责人和截止日期。 4. 保持摘要简洁 — 限于一页以内。在.NET中使用技能的示例// 从skills目录发现技能 var skillsProvider new FileAgentSkillsProvider( skillPath: Path.Combine(AppContext.BaseDirectory, skills)); // 创建带有技能提供程序的代理 AIAgent agent new AzureOpenAIClient( new Uri(endpoint), new DefaultAzureCredential()) .GetResponsesClient(deploymentName) .AsAIAgent(new ChatClientAgentOptions { Name SkillsAgent, ChatOptions new() { Instructions 你是一个有帮助的助手。 }, AIContextProviders [skillsProvider] }); // 代理自动发现并加载匹配的技能 AgentResponse response await agent.RunAsync( 总结今天站立会议的关键点和行动项。); Console.WriteLine(response.Text);在Python中使用技能的示例from pathlib import Path from agent_framework import SkillsProvider from agent_framework.azure import AzureOpenAIChatClient from azure.identity.aio import AzureCliCredential # 从skills目录发现技能 skills_provider SkillsProvider(skill_pathsPath(__file__).parent / skills) # 创建带有技能提供程序的代理 agent AzureOpenAIChatClient(credentialAzureCliCredential()).as_agent( nameSkillsAgent, instructions你是一个有帮助的助手。, context_providers[skills_provider], ) # 代理自动发现并加载匹配的技能 response await agent.run(总结今天站立会议的关键点和行动项。) print(response.text)总之Agent Skills不断增强在框架中的支持未来将推出更多功能包括通过API动态创建和注册代理技能以及支持主动代码执行等。如需了解更多信息并亲自尝试请查阅相关文档和示例。Progressive DisclosureAgent Skills设计原则强调逐步披露Progressive Disclosure。该方法通过三个阶段逐步展示技能信息避免一次性加载所有信息从而提升上下文管理的效率。广告阶段加载每个技能的名称和描述约100个tokens让代理了解可用的技能。加载阶段任务与技能匹配时代理调用load_skill获取完整的 SKILL.md 指令推荐加载量控制在5,000个tokens以下。按需读取通过read_skill_resource获取附加文件如引用、模板等确保仅在必要时加载以提高上下文利用率。这一策略使代理能有效访问深度领域知识同时保持上下文窗口简洁。这在处理多领域任务或控制token使用时尤为重要确保代理在不增加复杂性的前提下灵活应对用户请求。总结通过Agent SkillsMicrosoft代理框架中的代理可以动态加载可重用领域技能而无需修改核心指令。这将提升代理的专业水平提升业务响应能力。建议开发者根据特定需求实现自定义技能包以适应变化的市场环境。引入地址