AI和大模型——Skills如何使用
一、skill在前面的文章中分析了什么是Skill。简单的理解它是为Agent提供标准化、程序化的控制。看上去它可能是一系列的md文件它们形成了文件夹但实际上它包含了三个重要的方面即元数据用于对Skill的自身的描述、指令标准化的作业流程和资源应用的其它资源。二、如何调用Skill无论一项技术如何先进其最终的目的只是为了解决问题。如果这个技术无法解决实际的问题那么它就没有存在的意义了。但在实际的应用中往往会出现Skill是用的但是有些开发者自己写的Skill却没有被调用。这其实就脱离了开发者的最初的目的。那么如何才会调用自己写的skill呢这就要明白skill的渐进式披露即agent不是一下子把所有的skill都加载一遍的。首先Agent只会从目录索引中查找名字和描述来进行匹配如果描述的不好智能体就不会去调用相关的skill。因此就需要把skill的description写好特别需要注意的是要想写提示词一样明白它是针对AI的而不是针对用户的。其次Agent中对描述的处理是有长度限制的超过一定长度会自动截断。所以要在指定的范围内把相关的描述说清楚。最后要把相关涉及到skill目录的加载包括各种工具、脚本等。需要在skill的脚本中将相关的位置描述清楚。三、如何编写Skill这里的编写skill不是说告诉大家怎么写文档是要说明什么样的情况才适合于编写成skill。在Anthropic的相关博客中给出重点的应用场景库和API的的应用固定的库或API的调用不需要每次再重复在上下文中声明对项目整体进行验证写一些单元测试等的验证工作不需要开发者自行处理数据查询分析对指定内容的查询并将分析结果反馈业务流程的自动化流程化的东西是最适合skill的它可以使用一条命令处理完成代码的模板和框架代码模板的意义就在于skill的可复用这和实际的场景的应用类似代码的Review和Aduit引入AI自行进行代码质量的控制也是skill的重要应用场景CI/CD集成部署流程化的东西只不过是Agent统一调度即可不再需要人为参与Runbook故障排除对故障的排除也可以引入固定的处理模板机制基础设施的运维常见的运维在以前可以使用脚本来完成这对于skill来说正是擅长的其实还有不少的场景也可以引入skill但可能局限性比较强这里就不再一一说明。在实际编写skill时需要注意的是不要把重复的低级的简单的东西反复写入skill。要限制skill的边界尽量提供显式的Agent无法自行推断的相关逻辑。四、高级应用对于skill的应用过程中其实还有一些高级的用法。这也是Anthropic提供的方法让skill保持状态在前面提到过大模型啥的都是无状态的。调用一次后下一次又得重来所以要想连续的应用就需要skill有记忆也就是要保存相关的数据进行持久化。即主动的将相关的数据信息写入到skill的配置或相关文件中去实现数据的状态保存让skill调用脚本skill是个标准化流程是模板所以它的优势不在于实现某个功能而处理功能的流程和结构。所以可以把实现功能的脚本放到skill的脚本调用中让它发挥更大的优势。比如定时删除数据库中的数据就可以写成一个脚本来调用让skill可以Hook钩子的优势大家都明白它可以在用户需要的时刻激发设置的处理行为。它是一种后处理机制是一种强制性的保证。它在skill被激活时才可以使用在会话结束后就会消失。它的应用场景太多了如为了保证安全阻止一些危险的命令skill的应用就和其自身的渐时式披露一样也不会是一下子在应用中铺开它需要一个时间甚至一个很长的时间来普及。甚至有可能在未来被更先进的机制给替代所以不必为此有什么负担。五、总结其实对于很多Agent的应用开发者来说借鉴官方或大牛们的方式是最简单的方法。不需要过多的自行编写和处理skill。要防止为了编写skill为去编写skill因为它会比编码时的这种思想破坏力更大。关键是这玩意它是要钱的。与诸君共勉