12月中旬以来,忽如一夜春风来,感觉所有平台都在推进Skill能力。

最近也被老板拉来做Skill改造升级,经过几次理解和实践,分享一下最新的理解

是什么

Claude在10月提出的一种全新的上下文管理方式

Claude Skill博客:https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview

Skill官网:https://agentskills.io/home

核心理念

让大模型读取文件系统来获得上下文

组成部分

<span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/icF4iau8Sj7b3oZsz4v6kvia1boyOqNwibFgZZHn0AWYIGZhdgrywZCzEUs0pCE7XcIECxQFHicEv8EKWMicMnbSh9vUEkvL4gf7sB/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><span leaf="">my-skill/<span leaf="">  
<span leaf="">├── SKILL.md          <span leaf="">#核心文件,每次会被读取,里面可以写任何东西<span leaf="">  
<span leaf="">├── scripts/          <span leaf=""># 可执行的代码,一般是python<span leaf="">  
<span leaf="">├── references/       <span leaf=""># 参考资料,文本为主<span leaf="">  
<span leaf="">└── assets/           <span leaf=""># 模板和资源<span leaf="">  

使用

  1. 发现:在Claude Code中可以加载到这个my-skill的description

  2. 读取:Claude Code会判断选择哪个Skill,然后读取Skill.md中的内容

  3. 进一步读取:之后如果Skill.md中写了读取别的文件,那么就会触发Claude Code的再次读取

  4. 执行:Script中的python脚本或者MCP调用

Skill.md里面有什么

<span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/icF4iau8Sj7b3oZsz4v6kvia1boyOqNwibFgZZHn0AWYIGZhdgrywZCzEUs0pCE7XcIECxQFHicEv8EKWMicMnbSh9vUEkvL4gf7sB/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"><span leaf="">---<span leaf="">  
<span leaf="">name: ....<span leaf="">  
<span leaf="">description: ...<span leaf="">  
<span leaf="">---<span leaf="">  
<span leaf="">想写什么就写什么,可以写执行过程,也可以写读取什么文件<span leaf="">  

为什么要用

(敲桌板,划重点)

  • 更加内聚:一个Skill就是一个领域信息的汇总

  • 渐进式加载:一开始读取需要的Skill.md,然后再渐渐读取需要的script等文件。更少的上下文意味着更少的token以及更少的无关信息干扰

  • 被验证的代码:将一些已经被验证的流程变成代码接入,准确率有保证

对比一下

  • 相比于MultiAgent:Skill中所有的上下文都在主Agent当中,更有利于主A对上下文的理解

  • 相比于workflow:具有更强的泛化性,能够在workflow的中间过程执行,能够自然语言描述

图片

怎么用

1、怎么写

没有固定Skill要怎么写,只要能够提供你自己Agent的准确度,你可以用任何方式去写

anthropic的官方示例Skill:https://github.com/anthropics/skills/tree/main/skills

skill官方提供的一些基础规则:https://agentskills.io/specification

2、怎么融入自己的系统

Claude Code只提出了Skill的规范,但是没有提供Skill执行器的实现。

想要使用Skill,那么需要有一个Skill执行器,里面需要有以下几个功能

  • 函数:

  • list_file :传入文件夹返回其中文件名

  • read_file :传入文件名,返回文件内容

  • execute_python :传入python代码/文件名,返回python脚本结果

  • execute_mcp:传入函数名和入参,返回执行结果

  • Prompt:system_prompt要将Skill.md的descriptionname读进去,要告知可以读取文件