Agent Skill 快速开始

张开发
2026/4/4 21:49:51 15 分钟阅读
Agent Skill 快速开始
1 Agent Skill的基本概念用一句简单的话来说的话Agent Skill就是大模型随时翻阅的说明文档。Skill 本质上是一个沉淀了自然语言描述 SOP 的 markdown 文件能够避免重复性劳动统一能力标准实现高效且可复用的经验传递。Skill 的核心是一个包含 SKILL.md 文件的文件夹包含元数据以及指导 Agent 执行特定任务的指令。同时也可以包含文档资料、脚本、模板等文件。skill/ ├── SKILL.md # 必需指令 元数据 ├── scripts/ # 可选可执行代码 ├── references/ # 可选文档资料 └── assets/ # 可选模板、资源文件SKILL.md 大致长这样子--- name: Skill名称 description: Skill描述 --- # Skill 名称 ## 何时使用此技能 ...... ## 如何 XXXX ...... ## 如何 YYYY ......设计理念渐进式披露顾名思义渐进式披露就是不一次性加载所有信息而是按需加载。在 Agent 启动时仅加载 name 和 description 这种元数据信息用于判断相关性。只有当某个 Skill 被激活时才加载完整 SKILL.md 正文仅在需要时加载 scripts/references/assets 中的文件。这种渐进式披露的架构大致分为如下图所示的三层第一层元数据层会固定加载到系统提示词当中。~100 tokens第二层指令层当某个Skill被激活时才会被夹在即按需加载。一般5000 tokens第三层资源层可能某个Skill还需要调用其依赖的参考文件、资源文件或者脚本文件属于按需中的按需加载了。下图展示了一个会议总结助手Skill被激活的实例可以看到大模型通过用户的信息识别到需要启用会议总结助手这个Skill因此从会议总结助手的SKILL.md中加载了具体的指导又识别到需要再次加载一个财务规定的参考手册将参考手册中的内容也一起加载到了提示词中一起发给大模型进行处理。综上所述我们可以知道在渐进式披露的架构下Agent Skill的优点是大幅减少Token消耗因为系统提示词中只会包含简短的技能列表元数据信息避免了信息过载提高大模型处理效率大模型只需要快速判断当前任务和哪些技能相关MCP vs Agent SkillAgent Skill 和 MCP 并不是非此即彼而是互为辅助的关系。MCP 侧重连接 Agent 和 数据而 Agent Skill 则侧重于指导 Agent 如何处理这些数据。MCP Connects Agent to data, but Agent Skill teach Agent what to do with that data.下图展示了 MCP 和 Agent Skill 的侧重点 和 本质可以很好理解它们二者之间的关系总之在 Agent 智能体的开发中我们需要结合 MCP 和 Agent Skill 来使用开发一个高效的 Agent 智能体。2 快速开始MAF中使用 Agent Skill假设有这样一个需求有一个企业助手Agent可以回答企业内部员工提出的关于费用报销 和 差旅申请 等相关的常见问题。作为软件开发的我们自然知道这是两个业务知识域了因此我们计划将其规划为两个Skill供企业助手Agent按需加载调用。以终为始我们的Agent应用的解决方案长这样子这是一个.NET控制台应用程序其中有一个skills目录专门存放各种业务知识Skill。费用报销Skill首先我们创建一个SKILL.md内容如下--- name: expense-report description: 按照 Contoso 公司政策填写和审核员工费用报销。适用于费用报销、报销规则、收据要求、支出限额或费用类别等相关问题。 --- # 费用报销Expense Report ## 费用类别与限额 | 类别 | 限额 | 收据要求 | 审批 | |---|---|---|---| | 单人用餐 | $50/天 | $25 | 无需 | | 团队/客户用餐 | $75/人 | 必须 | 总额$200需经理 | | 住宿 | $250/晚 | 必须 | 超过3晚需经理 | | 地面交通 | $100/天 | $15 | 无需 | | 机票 | 经济舱 | 必须 | $1,500需VP | | 会议/培训 | $2,000/次 | 必须 | 经理LD | | 办公用品 | $100 | 是 | 无需 | | 软件/订阅 | $50/月 | 是 | $200/年需经理 | ## 报销流程 1. 收集收据——需包含商家、日期、金额、支付方式。 2. 按上表分类。 3. 使用模板[assets/expense-report-template.md](assets/expense-report-template.md)。 4. 团队/客户用餐需列出参与人及业务目的。 5. 提交——$500自动审批$500–$2,000需经理$2,000需VP。 6. 报销10个工作日内通过银行转账。 ## 政策规则 - 需在交易后30天内提交。 - 酒精类费用不予报销。 - 外币按交易日汇率折算为美元并注明原币种及金额。 - 混合个人/商务出行仅报销商务部分需提供对比报价。 - 丢失收据$25需提交财务部的丢失收据声明每季度最多2次。 - 如有未涵盖的问题请查阅FAQ[references/POLICY_FAQ.md](references/POLICY_FAQ.md)。答案应以本文件和FAQ为准。由于该Skill还定义了引用的资源所以我们还需要添加1参考文件费用政策常见QA说明这也是一个markdown文件。# 费用政策常见问答FAQ ## 用餐 **问工作日咖啡或零食可以报销吗** 答每日咖啡/零食低于$10不予报销视为个人消费。客户会议或团队协作期间购买的咖啡可作为团队用餐报销。 **问团队晚餐超出人均限额怎么办** 答$75/人限额为指导标准。超出20%以内可书面说明如“客户指定场地”超出20%需VP预先批准。 **问需要列出所有参与人吗** 答是。客户用餐需列明客户姓名及公司团队用餐需列出所有员工姓名。10人以上可单独附名单。 ## 差旅 **问可以预订高端经济舱或商务舱吗** 答经济舱为标准。6小时以上可选高端经济舱商务舱需VP预批通常仅限10小时以上或医疗原因。 **问打车Uber/Lyft和租车如何选择** 答往返30英里以内建议打车多日或超$100/天建议租车。3人以上可选更大车型。 **问小费可以报销吗** 答用餐、打车、酒店清洁小费20%以内可报销超出需说明理由。 ## 住宿 **问部分城市$250/晚不够怎么办** 答纽约、旧金山、伦敦、东京、悉尼等高消费城市自动提升至$350/晚无需额外审批。其他特殊情况请提前向经理申请。 **问住亲友家能否领取补贴** 答不可以。公司仅报销实际住宿费用不提供补贴。 ## 订阅与软件 **问个人效率工具可以报销吗** 答需与工作直接相关如IDE、设计软件、项目管理工具可报销。一般效率类应用需经理书面确认。 ## 收据与材料 **问收据模糊/损坏怎么办** 答可向商家补打如无法获取需提交丢失收据声明财务部网站下载每季度限2次。 **问停车/过路费需要收据吗** 答低于$15无需收据注明日期、地点、金额即可$15及以上需收据或银行流水。 ## 审批与报销 **问经理休假谁来审批** 答可由上级经理或系统指定的代理审批人审批。 **问能否报销上季度的费用** 答标准为30天内超期需书面说明并VP批准超90天仅特殊情况经CFO批准。2资源文件费用报销模板说明这也是一个markdown文件。# 费用报销模板Expense Report Template | 日期 | 费用类别 | 商家 | 描述 | 金额USD | 原币种 | 原币金额 | 参与人 | 业务目的 | 已附收据 | |------|----------|------|------|-------------|--------|----------|--------|----------|----------| | | | | | | | | | | 是 / 否 |画外音后续这类业务知识Skill可以交由业务专家或业务用户自行维护从而实现技术和业务的职责分离。差旅申请Skill我们创建一个SKILL.md内容如下--- name: travel-policy description: 公司差旅预订与审批政策。适用于航班预订、酒店预订、差旅审批流程或差旅安全指引等相关问题。 --- # 差旅政策Travel Policy ## 预订规则 | 项目 | 政策 | 审批 | |------|--------|----------| | 国内航班 | 仅限经济舱 | $800自动审批 | | 国际航班 | 经济舱6小时以上可选高端经济舱 | 均需经理审批 | | 酒店 | 优先公司协议酒店 | ≤$250/晚自动审批 | | 租车 | 紧凑/标准车型 | ≤3天自动审批 | | 火车/高铁 | 标准座 | 自动审批 | ## 预订流程 1. 所有预订须通过公司差旅平台TravelHub完成 2. 国内提前14天国际提前21天预订 3. 总费用超$2,000需经理预先审批 4. 预订后24小时内取消可全额退款 ## 安全指引 - 所有国际行程需向差旅安全团队报备 - 超过5天的行程需购买差旅保险 - 随身携带公司应急联系方式卡智能体调用Agent Skill最近MAF发布了1.0.0-rc2支持了Agent Skill所以让我们一步一步来实现在MAF中让智能体调用Skill尝尝鲜。1创建SkillsProvider从文件中发现和加载Skillsvar skillsProvider new FileAgentSkillsProvider( skillPath: Path.Combine(Directory.GetCurrentDirectory(), skills) ); Console.WriteLine( Skills 已从文件系统加载); Console.WriteLine();2创建Agent注入SkillsProvider让其有Skill调用能力AIAgent agent chatClient.AsAIAgent(new ChatClientAgentOptions { Name MultiSkillsAgent, ChatOptions new() { Instructions 你是一个高效的企业助手使用和用户同样的语言回答用户提出的问题。, }, AIContextProviders [skillsProvider], }); Console.WriteLine(✅ 多技能 Agent 创建成功);下面我们就来测试一下这个Agent测试用例1差旅政策问题 → 应加载 travel-policyvar session await agent.CreateSessionAsync(); var travelQuestion 我需要预订一张从纽约到伦敦、为期两周项目的航班。我可以乘坐什么舱位需要审批吗; Console.WriteLine( 测试1差旅政策问题); Console.WriteLine($ 用户: {travelQuestion}); Console.WriteLine(); var travelResponse await agent.RunAsync(travelQuestion, session); Console.WriteLine($ Agent: {travelResponse.Text}); Console.WriteLine(); Console.WriteLine(━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━); Console.WriteLine();测试结果如下图所示可以看到Agent通过查阅差旅申请Skill文档准确地回答了用户的问题。测试用例2费用报销问题 → 应加载 expense-reportvar expenseQuestion 我上周买了一个 $45/月的项目管理软件订阅需要什么审批流程; Console.WriteLine( 测试2费用报销问题); Console.WriteLine($ 用户: {expenseQuestion}); Console.WriteLine(); var expenseResponse await agent.RunAsync(expenseQuestion, session); Console.WriteLine($ Agent: {expenseResponse.Text}); Console.WriteLine(); Console.WriteLine(━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━); Console.WriteLine();测试结果如下图所示可以看到Agent通过识别判断是费用报销问题读取了费用报销Skill的文档后结合用户提出的问题进行了准确而完善的回复棒棒哒当然你还可以进行更多的测试体验这里就不多赘述了。下载示例源码动起来吧3 小结

更多文章