Technical Guide
11. Skills 源码:Skill 是怎么安装、解析和约束工具的
从 installer、parser、validation、permissions、security_scanner、tool_policy 看 Skill 如何进入 DeerFlow。
这一篇看哪些文件
Skill 相关源码在:
backend/packages/harness/deerflow/skills/
建议按这个顺序看:
parser.py
validation.py
installer.py
storage/
permissions.py
security_scanner.py
tool_policy.py
parser.py:Skill 怎么被读懂
Skill 通常不是普通文本。
它需要被解析成系统能理解的结构:名称、描述、内容、权限、可能的工具约束。
所以先看 parser,比直接看 installer 更清楚。
validation.py:什么 Skill 合法
校验很关键。
如果 Skill 格式乱、字段缺、权限不清楚,Agent 后面用起来就会变得不可控。
validation.py 这类文件通常会告诉你官方希望 Skill 满足哪些规则。
installer.py 和 storage
安装和存储解决的是生命周期问题:
Skill 从哪里来
装到哪里
怎么被读取
怎么更新
相关目录:
skills/storage/
permissions / security_scanner / tool_policy
这几个文件体现了 Skill 的安全边界。
Skill 如果能影响工具调用,就不能只看内容好不好,还要看它是否扩大了权限,是否引入危险工具策略。
这一篇你要记住
Skill 源码的主线不是“读一段 Markdown”。
更准确的链路是:
解析 → 校验 → 安装/存储 → 权限/安全检查 → 影响 Agent 行为
下一篇用这个思路写一个约束研究报告质量的 Skill。
读源码时的顺序
不要从安装逻辑开始。
先看 Skill 的数据结构和解析方式,再看安装和权限。
一个比较顺的阅读顺序是:
types.py
parser.py
validation.py
installer.py
storage/
permissions.py
security_scanner.py
tool_policy.py
这样你会先知道“Skill 是什么”,再看“Skill 怎么进入系统”。
改源码时先改哪里
如果你只是想支持一种新的 Skill 格式,优先看 parser 和 validation。
如果你想改变 Skill 保存位置,看 storage。
如果你想限制 Skill 能调用哪些工具,看 permissions 和 tool_policy。
如果你要引入外部 Skill 来源,installer 和 security_scanner 必须一起看。
不要只改 installer,否则很容易绕过校验和安全检查。