Skill 能给 Agent 增加新能力——这话没错,但解释的是现象,不是原理。
站在LLM 底层交互协议的角度,整个过程会清晰很多。
如果你用过 Cursor、Claude Code、OpenHands 或各种 Agent Framework,一定接触过Skill。
继续深入时,常见困惑是:
- Skill 是不是 OpenAI API 的一部分?
- Skill 如何传给 LLM?
- Tool Definition 和 MCP Tool 有什么区别?
- Reference、Examples 什么时候加载?
- 为什么几十 KB 的 Skill,不会全部塞进 Prompt?
下面按协议视角,把这些问题拆开。
一、OpenAI Chat Completion 根本没有 Skill
无论 Cursor 还是 Claude Code,最终调用模型,本质都是一次 Chat Completion:
| POST /v1/chat/completions { “model”:“gpt-4.1”, “messages”:[ {“role”:“system”,“content”:“You are …”}, {“role”:“user”,“content”:“Fix my Python project”} ], “tools”:[…] } |
协议里只有messages、tools、tool_choice、response_format等字段。
没有 Skill,也没有 mcp / reference / examples。
这些概念都属于应用层,不是模型协议的一部分。
LLM 根本不知道什么叫 Skill。
Skill 一定在发请求前,就被宿主程序(Cursor、Claude Code 等)处理掉了:
二、一个 Skill 到底包含什么?
典型目录大致是:
| python_skill/ skill.md reference/ examples/ |
skill.md里常有描述、工具依赖和大量 Prompt,例如 Always use pytest、Prefer pathlib、Never use unittest,以及具体 Workflow。
拆开来看,Skill 实际包含四种完全不同的信息:
三、Instruction:直接注入 System Prompt
Instruction 最直观。例如:
| Always use pytest. Prefer pathlib. Never use unittest. |
宿主会把它拼到原有 System Prompt 后面:
| You are Cursor AI. ==================== Python Skill Always use pytest. Prefer pathlib. Never use unittest. |
最终发出去的就是role=system的 content。
Instruction 本质就是 System Prompt 的一部分。
没有特殊协议,只是宿主自动完成了 Prompt 拼接。
四、Tools:Skill 不携带 Tool,只声明依赖
很多人看到:
| tools: - shell - read - grep |
会以为 Skill 里「包含了」Tool。其实不是。
这里写的是:如果加载这个 Skill,请把这些 Tool 注册给模型。
真正的 Tool Definition 由宿主生成,模型只能看到名字、描述和参数 Schema,并不知道 Shell 怎么执行、文件怎么读——那些都发生在宿主内部。
Skill 不包含 Tool,它只是引用了 Tool。
五、Tool Definition 和 MCP Tool 有什么区别?
答案很简单:协议层没有任何区别。
对 LLM 来说,它不知道哪个 Tool 来自 Cursor,哪个来自 MCP。眼里只有 Name、Description、Parameter Schema。
唯一不同:普通 Tool 的 Definition 来自宿主本身,MCP Tool 来自远程 MCP Server。除此之外没有区别。
六、Tool Call 真正发生在哪里?
模型决定调用时,会返回类似:
| { “tool_calls”:[ { “name”:“shell”, “arguments”:{“command”:“pytest”} } ] } |
接下来已经不属于 LLM:宿主执行 Shell、收集 stdout,再以role=tool把结果发回模型。
这就是标准的 Function Calling Loop:
Skill 不参与执行,它只影响模型什么时候调用 Tool。
七、Reference 为什么不会全部放进 Prompt?
很多 Skill 带着几十 KB 文档。若全部塞进 Prompt,Context Window 很快被撑满。
因此大多数 Framework 只保留说明,Reference 留在宿主;需要时再读取、截取相关章节,追加到 messages。
Reference 更像按需加载的上下文(Lazy Loaded Context),而不是固定 Prompt。
很多 Framework 本质上是在做一层轻量级 RAG。
八、Examples 又是怎么工作的?
Examples 和 Reference 类似:不会把所有示例都发给模型,否则 Token 成本过高。
更常见的是先建索引,再按用户问题检索 Top-K,作为动态 Few-shot 注入:
Examples 本质就是动态 Few-shot。
它不是写死的 Prompt,而是随查询变化的 Example Retriever。
九、从协议角度重新理解整个 Skill
把前面串起来:一个 Skill 最终会被编译成四种不同的协议元素。
Skill 并不是新协议,更像一种高层能力描述语言(Capability Description)。
Agent Framework 根据 Skill 自动完成 Prompt 拼接、Tool 注册、Reference / Example 检索,最后统一转换成 Function Calling 协议能理解的标准格式。
写在最后
很多人第一次接触 Agent,总觉得 Skills、MCP、Tools、Prompt 是四套不同系统。
从底层协议看,它们最终都收敛到同一种交互方式:
- Prompt →
messages - Tool →
tools - 调用 →
tool_calls - 返回 →
role=tool - Reference / Examples → 需要时追加到
messages
真正理解这一层之后,再看 Cursor、Claude Code、OpenHands、LangGraph、Eino,会发现差异往往不在模型,而在如何把高层能力(Skills)编译成底层 LLM 能理解的协议元素。
这也是为什么我越来越倾向于把 Skill 看作一种Agent Compiler:它不是模型的新能力,也不是 OpenAI 协议的新字段,而是连接开发者能力描述与底层 LLM 协议之间的一层编译系统。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~