牛牛算账机器人
「Skill 机制」指的是 Agent Skills——Anthropic 在 2025 年 10 月推出、继 MCP 之后的又一个 Agent
领域开放标准,用一份 SKILL.md 文件把「模型临时缺少的知识、流程、确定性工具」打包成可复用、按
需加载的能力单元[citation:web:10.5][citation:web:10.16]。下面按「定义 → 触发 → 调用外部工具」把
机制讲透。
一、定义:Skill 的本质是什么
Skill 既不是插件,也不是接入 API 的脚本,而是一份写给 AI 的「工作手册 / 入职指南」:把原本每次都
要重复交代的流程、判断标准、确定性操作,写进一个文件,任务匹配时 Agent 自动加载使用[citation:web:10.12]。
它和单个 Tool 的区别在于粒度:Tool 是「能执行什么动作」,Skill 是「怎么干完一整类活」——执行过程
中,Skill 可以按需编排多个 Tool 来完成一个完整流程[citation:web:10.10]。
一个 Skill 本质就是一个文件夹:
your-skill/
├── SKILL.md # 核心:元数据 + 指令
├── references/ # 可选:参考资料
├── scripts/ # 可选:可执行脚本
└── assets/ # 可选:模板、资源
SKILL.md 的 frontmatter 元数据,就是 Skill 的「身份证」:
| 字段 | 作用 | 说明 |
|------|------|------|
| name | 技能名 | 唯一标识,不能为空 |
| description | 描述 + 触发说明 | 1–1024 字符,触发全靠它 |
| allowed-tools | 允许调用的工具列表 | 如 Read, Grep, Bash |
| user-invocable | 是否允许用户手动触发 | 可选布尔值[citation:web:10.9] |
---
二、触发:三层渐进式加载(最精妙的设计)
Skill 的核心设计哲学是渐进式披露(Progressive Disclosure),借鉴 UI/UX 的信息分层策略,解决「把
一堆技能一次性塞进上下文会撑爆 token」的问题[citation:web:10.2][citation:web:10.4]:
| 层级 | 加载内容 | 加载时机 | Token 成本 |
|------|----------|----------|:---:|
| L1 目录层 | name + description | 会话启动时始终加载 | 极低 |
| L2 正文层 | SKILL.md 完整指令 | 模型判断任务相关后 | 中 |
| L3 资源层 | references / scripts | 执行中需要时才读 | 高 |
关键点:触发几乎完全依赖 description 的语义匹配。官方规范里没有独立的 trigger 字段——模型先看到
所有 Skill 的 name + description,靠判断「这个描述和当前任务相不相关」来决定要不要读正文[citation:
web:10.11][citation:web:10.12]。
这也解释了最常见的一个坑:「Skill 没触发」的根因十有八九不在指令,而在 description 写得不好。所以
description 要像广告位——简洁、把关键触发词前置、明确说清「做什么 + 什么时候该用它」[citation:web:10.12]。
两种触发方式:
隐式触发:任务与 description 语义匹配 → 模型自动加载;
显式触发:用户直接指定 Skill 名(或 user-invocable 允许手动唤起)。
---
三、调用外部工具:Skill 与 Tool / MCP 的分工
这是最容易混的一组概念,它们的边界其实很清晰[citation:web:10.6]:
| 机制 | 解决的问题 | 典型内容 |
|------|-----------|----------|
| Tool | Agent 能执行什么动作 | 单个函数/操作 |
| MCP | Agent 如何连接外部工具和数据 | GitHub、数据库、搜索 |
| Skill | Agent 怎么干完一类活(流程) | SKILL.md 指令 + 脚本 |
| AGENTS.md | 项目的交付标准/规范 | 项目约定 |
用一句话概括分工:MCP 解决「怎么调用外部工具」,Skill 解决「怎么组织这些工具把活干完」[citation:web:
10.7]。Skill 在执行中通过 allowed-tools 声明自己能调哪些工具(读文件、执行脚本、跑命令等),再由这些
工具去完成实际操作。
有些 Skill 还需要一个安全沙箱来跑脚本——比如 Anthropic 的 Skill 就依赖 Code Execution Tool 提供隔离运
行环境[citation:web:10.5]。这也就是「Skill 里能写确定性脚本」的原因:把「每次都要现想、容易出错的固定
操作」沉淀成一段可直接复用的代码,模型只在需要时读它、跑它。
---
四、为什么这套机制有效
回到设计初衷,Skill 解决的是 Agent 的几个老问题:
知识补位:模型临时缺的领域知识(特定协议、内部流程),不用每次现教,写进 Skill 按需加载;
上下文经济:渐进式披露让「目录」永远很轻,只有真正相关的技能才展开正文,避免 token 爆炸;
可复用与可版本化:技能沉淀成文件,跨会话、跨 Agent 复用,还能进 git 做版本管理;
确定性兜底:把「人肉判断容易出错」的操作固化成脚本,比让模型每次自由发挥更可靠。
---
需要的话,我可以进一步展开:怎么写出一个「能被正确触发」的 description(含正反例),或者给一个完整
SKILL.md 模板 + 目录结构照着搭一个你自己的技能。
牛牛机器人 / 牛牛算账机器人版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!