大家好,我是Edison。
最近我一直在跟着圣杰的《.NET+AI智能体开发进阶》课程学习MAF开发多智能体工作流,我强烈推荐你也上车跟我一起出发!
上一篇,我们初步学习了AG-UI Tools 工具系统,实现了前端和后端工具混合未使用。本篇,我们来初步了解一下最近十分火热的Agent Skill并学习如何在MAF中实现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被激活时才会被夹在,即按需加载。(一般$25 | 无需 || 团队/客户用餐 | $75/人 | 必须 | 总额>$200需经理 || 住宿 | $250/晚 | 必须 | 超过3晚需经理 || 地面交通 | $100/天 | >$15 | 无需 || 机票 | 经济舱 | 必须 | >$1,500需VP || 会议/培训 | $2,000/次 | 必须 | 经理+L&D || 办公用品 | $100 | 是 | 无需 || 软件/订阅 | $50/月 | 是 | >$200/年需经理 |## 报销流程1. 收集收据——需包含商家、日期、金额、支付方式。2. 按上表分类。3. 使用模板:[assets/expense-report-template.md](assets/expense-report-template.md)。4. 团队/客户用餐需列出参与人及业务目的。5. 提交——$2,000需VP。6. 报销:10个工作日内通过银行转账。## 政策规则- 需在交易后30天内提交。- 酒精类费用不予报销。- 外币:按交易日汇率折算为美元,并注明原币种及金额。- 混合个人/商务出行:仅报销商务部分,需提供对比报价。- 丢失收据(>$25):需提交财务部的丢失收据声明,每季度最多2次。- 如有未涵盖的问题,请查阅FAQ:[references/POLICY_FAQ.md](references/POLICY_FAQ.md)。答案应以本文件和FAQ为准。[/code]由于该Skill还定义了引用的资源,所以我们还需要添加:
(1)参考文件:费用政策常见Q&A
说明:这也是一个markdown文件。- ---
- name: expense-report
- description: 按照 Contoso 公司政策填写和审核员工费用报销。适用于费用报销、报销规则、收据要求、支出限额或费用类别等相关问题。
- ---
- # 费用报销(Expense Report)
- ## 费用类别与限额
- | 类别 | 限额 | 收据要求 | 审批 |
- |---|---|---|---|
- | 单人用餐 | $50/天 | >$25 | 无需 |
- | 团队/客户用餐 | $75/人 | 必须 | 总额>$200需经理 |
- | 住宿 | $250/晚 | 必须 | 超过3晚需经理 |
- | 地面交通 | $100/天 | >$15 | 无需 |
- | 机票 | 经济舱 | 必须 | >$1,500需VP |
- | 会议/培训 | $2,000/次 | 必须 | 经理+L&D |
- | 办公用品 | $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为准。
复制代码 (2)资源文件:费用报销模板
说明:这也是一个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批准。
复制代码 画外音>后续这类业务知识Skill可以交由业务专家或业务用户自行维护,从而实现技术和业务的职责分离。
差旅申请Skill
我们创建一个SKILL.md,内容如下:
[code]---name: travel-policydescription: 公司差旅预订与审批政策。适用于航班预订、酒店预订、差旅审批流程或差旅安全指引等相关问题。---# 差旅政策(Travel Policy)## 预订规则| 项目 | 政策 | 审批 ||------|--------|----------|| 国内航班 | 仅限经济舱 | |