Skip to content
Go back

Agent Skills for .NET 正式发布:可复用的 Agent 领域技能包

Agent Skills for .NET 在 Microsoft Agent Framework 中已从实验性预览毕业——[Experimental] 标签已移除,API 稳定。你现在可以给 .NET agent 提供可复用的领域专业知识包——包含指令、参考文档和脚本,agent 只在任务需要时才加载。

Agent Skills 是什么

Agent Skills 是一种开放格式,用于打包 agent 按需发现和使用的领域专业知识。每个 skill 包含元数据和指令——对基于文件的 skill 来说是 SKILL.md 文件,对代码定义的 skill 来说是等价属性——可选附带脚本、参考文档和其他资源。

Agent 只在需要时加载它需要的东西,通过四阶段渐进式暴露保持上下文窗口精简:广播 skill 名称 → 加载指令 → 读取资源 → 运行脚本。

结果是 agent 获得专业化能力,却不膨胀其核心指令或上下文窗口——而你写一次专业能力,就能在所有需要它的 agent 之间复用。

你能用它做什么

统一执行企业策略:把公司的 HR 政策、报销规则或 IT 安全指引打包成 skill。面向员工的 agent 在有人问”协同办公空间能报销吗”时加载对应政策 skill,直接从政策本身回答。每个员工得到同样的、可审计的基于原文的回答。

把支持手册变成可重复的工作流:把支持团队的故障排查指南变成 skill。客户报告问题时,agent 加载匹配的手册并遵循文档步骤——无论哪个 agent 实例处理请求,解决方案保持一致。

组合来自多个团队的 skill:不同团队可以独立编写和维护 skill——作为共享仓库里的文件目录,或作为内部 NuGet 源的包——你无需跨团队协调就能组合进一个 agent。Agent 根据每个 skill 的描述决定用哪个;你不需要写路由逻辑。

三种编写方式

发布版支持三种编写风格,各团队按自己的工作方式选择。三种方式接入同一个 provider,agent 在运行时对它们一视同仁:

为生产环境构建

给 agent 新能力只有在你能治理它怎么用时才有价值。这个版本包含了在产线运行 skill 所需的控制:

快速上手

using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;

var skillsProvider = new AgentSkillsProvider(
    Path.Combine(AppContext.BaseDirectory, "skills"),
    SubprocessScriptRunner.RunAsync);

AIAgent agent = new AzureOpenAIClient(
        new Uri(endpoint), new DefaultAzureCredential())
    .GetResponsesClient()
    .AsAIAgent(new ChatClientAgentOptions
    {
        Name = "MyAgent",
        ChatOptions = new() {
            Instructions = "You are a helpful assistant." },
        AIContextProviders = [skillsProvider],
    },
    model: deploymentName);

AgentResponse response = await agent.RunAsync(
    "Help me with onboarding.");
Console.WriteLine(response.Text);

为什么重要

Agent Skills 给了你一个标准方式来打包、分发和治理 agent 的领域专业知识。团队独立编写 skill,builder 把它们组合进一个 provider,审批机制让任何重要操作都有人在回路。现在 .NET API 已经稳定发布,你可以在生产环境上构建,不再需要应对实验性 API 的变动。

参考


Tags


Previous

EF Core 二级缓存:从零配置到避开生产事故

Next

什么是单体架构?三种类型用 C# 讲清楚