MAF快速入门(21)RC5引入的Script运行能力是什么?

摘要:本文介绍了RC5引入的令人激动的script执行能力,有了script执行能力,Agent Skill才变得更加完整,也从静态知识包 开始走向 可执行能力包,Agent Skill = 知识 + 资源 +
大家好,我是Edison。 最近我一直在跟着圣杰的《.NET+AI智能体开发进阶》课程学习MAF开发多智能体工作流,我强烈推荐你也上车跟我一起出发! 上一篇,我们了解下.NET 10新推出的File-Based App模式,它和MAF一起可以形成一个强大的“王牌组合”。而就在这两天,MAF 1.0.0-rc5发布了,之前github demo中的agent skills demo也可以运行了!有了script执行能力,skill的拼图终于完整了,我也相信GA版本就快到来了! 1 RC5的新变化 在RC5之前,我们使用Skills的方式还主要是静态知识注入,一方面解决如何让Agent知道领域知识,另一方面让Agent通过渐进式披露策略降低Token消耗。而至于script能力,MAF一直为开放,而前面的内容,圣杰也给出了一个思路。但是到了RC5,官方实现来了,别激动,请接住! Skill的定位变化 有了script的运行能力,skill从 静态知识包 开始走向 可执行能力包,其新增的接口 run_skill_script 就是来执行script的入口。 根据之前的了解,现在AgentSkillProvider就能有三个接口来构建Skill了: load_skill read_skill_resource run_skill_script 因此,我们对Agent Skills的定义也会更加完善: 即Agent Skill = 指令 + 资源 + 脚本 共同组成的可移植能力包 MAF Skills的4层架构 从MAF对Skills的实现来看,它做了较多的抽象 和 工程化,基本可以拆分为4层,如下图所示: 1.对象层:定义 Skill 是什么 2.Source 层:定义 Skill 从哪里来 3.Decorator 层:定义 Skill 怎么过滤、去重、组合 4.Provider 层:定义 Skill 怎么进入 Agent 运行时 更多地解析推荐大家阅读圣杰的《MAF悄悄更新到RC5,Agent Skills的脚本运行能力Ready了》,这里我就不再重复了,下面我们具体看看DEMO。 Code as Skill : 代码定义Skill 在RC5中,支持在代码中定义Skill,而不再限制于目录中的markdown文档,在Source层,它叫做 AgentInMemorySkillsSource。下面也会给出一个例子展示这个代码定义Skill的模式。 2 快速开始:单位转换器 这里我们直接来看官方团队给出的案例:单位转换器。虽然,这个案例有点脱了裤子放屁的意思,但是足够简单和覆盖知识点。 我们希望创建一个单位转换的Agent,能够通过查询skill及其相关计算规则 和 运行脚本 回复用户关于单位转换的结果。 老规矩,我们先写Skill的内容:SKILL.md,references 和 scripts。 SKILL.md 首先,我们创建这个SKILL.md,内容如下: --- name: unit-converter description: 使用乘法换算系数在常见单位之间进行转换。在需要将英里/公里、磅/千克等单位互相换算时使用。 --- ## 使用方法 当用户请求单位换算时: 1. 先查看 `references/conversion-table.md`,找到正确的换算系数 2. 使用 `--value <数值> --factor <系数>` 运行 `scripts/convert.py` 脚本(例如:`--value 26.2 --factor 1.60934`) 3. 输出内容需要清晰地展示换算系数、换算过程和换算结果,并同时标明换算前后的两个单位 reference: 转换公式表 其次,我们创建一个conversion-table.md,用于告诉Agent转换的系数和公式: # Conversion Tables(换算表) Formula(公式): **result = value × factor(结果 = 数值 × 系数)** > Note(说明): > - `From` / `To` 列请保持英文(miles, kilometers, pounds, kilograms),便于在工具参数/代码中稳定引用。 > - 中文列仅用于阅读理解。
阅读全文