魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
  1. 首页
  2. AI技术
  3. 正文

让 AI 代理拥有专业技能包:Microsoft Agent Skills

2026年3月23日 11点热度 0人点赞 0条评论

本文介绍如何使用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.md

SKILL.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_paths=Path(__file__).parent / "skills")

# 创建带有技能提供程序的代理
agent = AzureOpenAIChatClient(credential=AzureCliCredential()).as_agent(
    name="SkillsAgent",
    instructions="你是一个有帮助的助手。",
    context_providers=[skills_provider],
)

# 代理自动发现并加载匹配的技能
response = await agent.run("总结今天站立会议的关键点和行动项。")
print(response.text)

Progressive Disclosure

Agent Skills设计原则强调逐步披露(Progressive Disclosure)。该方法通过三个阶段逐步展示技能信息,避免一次性加载所有信息,从而提升上下文管理的效率。

  • 广告阶段:加载每个技能的名称和描述(约100个tokens),让代理了解可用的技能。
  • 加载阶段:任务与技能匹配时,代理调用 load_skill 获取完整的 SKILL.md 指令,推荐加载量控制在5,000个tokens以下。
  • 按需读取:通过 read_skill_resource 获取附加文件(如引用、模板等),确保仅在必要时加载,以提高上下文利用率。

这一策略使代理能有效访问深度领域知识,同时保持上下文窗口简洁。这在处理多领域任务或控制token使用时尤为重要,确保代理在不增加复杂性的前提下,灵活应对用户请求。

总结

通过Agent Skills,Microsoft代理框架中的代理可以动态加载可重用领域技能,而无需修改核心指令。这将提升代理的专业水平,提升业务响应能力。建议开发者根据特定需求实现自定义技能包,以适应变化的市场环境。

标签: Agent Skills
最后更新:2026年3月23日

daozi

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号