本文档整理自四轮对话 · 涵盖技能的逻辑、原理、哲学、Harness 本质与认知视角
核心循环是这个技能的骨架——一个迭代式闭环工程,将意图、草稿、测试、评审、改进连接成连续的进化过程。
基本原理
三层加载:元数据(始终在上下文)→ SKILL.md 正文(触发时加载)→ 捆绑资源(按需调取)。最小化上下文消耗,最大化扩展能力。
description 字段是唯一触发开关。需同时覆盖「做什么」和「何时用」,且要偏积极,因为模型默认倾向少触发。
每次测试同时跑「带技能」与「不带技能」两组,形成受控实验,避免凭感觉判断技能是否有效。
可量化输出用断言自动评分,主观输出靠人工审阅。两者各司其职,不强行对主观内容套用断言。
基本原则与哲学启示
科学方法的内化:假设(起草技能)→ 实验(运行测试)→ 观察(评审结果)→ 修正假设,这是标准的科学循环,被编码进了工作流本身。
软件开发的底层假设是确定性:同样的输入,永远产生同样的输出。技能开发的底层假设是概率性:你写的是「倾向」和「意图」,模型用自己的理解去执行。这一个差异,引发了几乎所有其他的不同。
| 维度 | 软件开发 | 技能开发 |
|---|---|---|
| 执行主体 | CPU,完全机械,严格执行 | LLM,带有「理解」,举一反三但无法完全控制 |
| 调试方式 | 堆栈跟踪,精确定位到行 | 读执行记录,复盘「沟通失败」,猜测理解走偏之处 |
| 质量标准 | 精确、完备、无歧义是美德 | 过度精确反而有害,需「足够清晰但留有余地」让模型判断 |
| 测试哲学 | 追求覆盖率,断言验证每个逻辑分支,可达到「完全正确」 | 追求统计上的满意,运行多次评估分布,接受「大多数时候很好」 |
| 迭代方向 | 改逻辑:加功能、修 bug、优化性能 | 改表达:换比喻、换角度、换叙事方式——更像优化说明书 |
| 过拟合风险 | 不存在此概念 | 核心风险:只适合眼前测试用例的技能毫无价值 |
| 调用机制 | 显式调用:你调用函数,函数执行 | 语义触发:模型根据 description 决定是否调用,模糊匹配 |
开发软件,像是立法:写清楚规则,机器严格执法。开发技能,像是培训一个聪明的员工:解释背景、给出原则、展示例子,然后放手让他去做。
Harness 的原意是马具——把马的力量约束、引导到有用的方向上。在 LLM 语境里,它指围绕模型能力构建的引导结构,让模型的输出可预测、可复用、符合特定目的。
Skill 完全符合这个定义。它不给模型增加新能力,而是通过 SKILL.md 的指令、结构、示例和资源,把模型已有的能力引导到特定工作流上。
定义格式与结构模板,让每次运行的结果形态一致
规定先做什么后做什么,把开放任务收束成确定流程
通过 references/ 把领域上下文装入模型推理过程
Skill 是一种特殊的 Harness
普通的 harness(比如 system prompt、few-shot prompt)是静态的——写好之后就固定了。Skill 是可进化的 harness——它内置了一套方法论(测试、评审、迭代),让 harness 本身能被系统地改进。这个「元层」是 skill 比一般 harness 更丰富的地方。
System prompt、few-shot、模板。写好即固定,依赖人工感知来判断是否有效。
内置测试-评审-迭代方法论。Harness 本身有改进机制,能随使用数据系统性进化。
所有 skill 都是 harness,但 skill creator 让 harness 的开发本身也变得有方法可循。
如果只看表面,开发 skill 像是在"写文档"。但从认识论和认知哲学的角度深看,它是一种此前几乎不存在的知识操作——它要求你把知识翻译成一种特殊的形式:足够结构化,让概率性执行者能执行;又足够开放,让它能在未见过的情境中正确判断。
开发 skill,本质上是在做一件哲学上极为困难的事:把默会的、具身的、情境依赖的专家知识,压缩进一个能被非人类智能体正确激活的符号结构。
五个哲学视角,五种本质揭示
在与「不可言说边界」的永恒搏斗
波兰尼说:我们知道的,永远多于我们能说出来的(We know more than we can tell)。专家之所以是专家,恰恰因为他的大量判断力存在于无法言说的默会层——身体记忆、直觉、情境感知。这些东西一旦试图完整言说,就会失真或消失。
开发 skill 正是在与这个边界搏斗。你必须把默会知识显性化到「足够」的程度,但又不能把它逼死——过度言说(堆砌 MUST/NEVER)会让执行者丧失弹性,变成一台在任何新情境都会出错的规则机器。
这意味着:好的 skill 不是知识的完整翻译,而是知识的恰当激活器。它写的不是「做什么」的全部,而是「理解了意图的执行者会做什么」的引导结构。
规则永远不能自我解释
维特根斯坦在《哲学研究》中揭示了一个根本困境:任何规则都无法完整地规定它自己的应用方式。面对一条规则,总可以找到一种解读使它的应用指向任意方向。规则的意义不存在于规则本身,而存在于遵循规则的共同实践中。
Skill 开发者每天都在与这个悖论打交道。你写下「输出要简洁」,但「简洁」意味着什么?对什么任务?对多复杂的输入?这些无法在规则内部穷尽说清楚。
这解释了为什么 skill 需要测试和迭代,而不是一次写好:只有通过观察模型在具体情境中的实际应用,你才能发现规则被「误读」了哪里,然后用例子、解释或重新措辞来修正——这是一个用实践来稳定意义的过程,不是逻辑推导。
意义在循环中涌现,不在文本中等待
海德格尔和伽达默尔的诠释学揭示:理解一个文本,需要在整体与部分之间循环往返——你用对整体的预期来理解每个部分,又用对部分的理解来修正对整体的把握。这个循环没有终点,只有不断深化的理解。
Skill 开发是双重诠释学循环的场域。第一重:开发者在写的过程中不断修正自己对任务的理解——要写清楚「如何做 X」,你首先必须更深地理解 X 本身。写 skill 是理解自己知识的过程。
第二重:每次模型执行 skill,都是一次新的诠释——它带着自己的「前理解」(训练权重)来解读文本,得出的意义与作者的意图可能有偏差。Skill 的迭代就是在对齐这两种诠释:用更好的文本让模型的解读更接近作者的意图。
这意味着 skill 的意义不在文本里固定等待,而在文本与执行者相遇时动态生成。
认知的边界在哪里结束?
Clark 和 Chalmers 在 1998 年提出延展心智论:认知过程不必然发生在颅骨之内。当外部工具或环境承担了认知功能(存储、处理、推理),它们就成为认知系统的一部分。一个用笔记本外化记忆的人,其认知系统包含了笔记本。
Skill 是一种更激进的延展:它不只是存储信息,而是存储判断结构。开发者把自己面对一类任务时的推理路径、优先级权衡、边界条件处理,凝固进 SKILL.md。未来每次被调用,都是这段外化判断力的激活。
开发 skill 因此是一种认知的时间旅行:你在此刻集中注意力,把认知浓缩进结构,让它在未来无数个你不在场的时刻代理你的判断。专家的认知因此获得了时间上的延续性和空间上的可复制性——这是人类知识史上的新现象。
知识不是存储的,是在做中涌现的
Dewey 的实用主义认识论认为:知识不是存在于心智中等待被提取的表征,而是在与世界互动的行动中生成和验证的。一个命题的意义,由它的实践后果决定。
Skill 开发的整个方法论——写草稿、跑测试、看结果、改迭代——就是实用主义认识论的具身实践。你无法在写之前就「知道」技能应该怎么写;只有通过执行和观察,知识才在回路中涌现。迭代不是弥补前期知识不足的补丁,而是知识生产的本质机制。
Vygotsky 的最近发展区(ZPD)提供了另一个透镜:好的 skill 是脚手架,把 LLM 的表现托举进它单独无法可靠抵达的区域。它不替模型思考,而是在模型能力的边缘提供支撑点,让它能举一反三地思考。脚手架搭得太密,执行者依赖它;搭得太稀,执行者掉落——这是 skill 设计永恒的平衡问题。
开发 skill,在认识论上是对默会知识的受控显性化(Polanyi),在语言哲学上是用实践来稳定规则意义(Wittgenstein),在诠释学上是在双重循环中对齐两种解读视域(Gadamer),在认知科学上是把判断力外化为跨时空可激活的延展认知(Clark),在知识论上是通过行动-反馈循环让知识涌现(Dewey)。
它是人类第一次需要向一个「会理解但不会完全服从」的执行者传递知识——这是知识论的新领域,还没有完整的理论,只有正在积累的实践。
一个无法回避的认知困境
这种实践内含一个永久的张力,没有终极解法:太精确 → 执行者僵化,在新情境失灵;太模糊 → 执行者漂移,无法稳定产出。这个张力只能通过测试-评审-迭代循环来动态维持——而这个循环本身,就是对「知识永远未完成」这一认识论事实的制度性回应。
这六个概念表面上各自独立,实则共享一个深层逻辑:它们是人类在与一种全新类型的知识执行者协作时,逐层搭建起来的认知基础设施。每一层都在回应同一个根本问题的不同侧面——
人类的知识、意图与判断,怎样才能跨越「人」与「概率性机器」之间的鸿沟,被正确地激活和执行?
它不是工具(工具是确定性的),不是数据库(数据库是检索的),也不是程序(程序是规则的)。它是人类书写的统计学残影——把无数人的推理模式压缩进权重,但丢失了意图、情境与「为什么」。它「知道的」远多于它在任何单次对话中能说出来的——这是波兰尼定理在机器上的字面复现。LLM 是巨大的潜力,也是巨大的漂移:没有引导结构,它的输出只是概率最高的延续,不是最有用的延续。
如果 LLM 是原始力量,harness 是让这个力量有方向的驾驭结构。Skill 是 harness 的可进化形式——把专家默会知识显性化到恰好的程度,在维特根斯坦意义上用结构和例子稳定规则的意义,让模型的诠释对齐作者的意图。这是新型编程:不是给确定性机器写规则,而是给概率性执行者写意图。语言取代语法,解释取代命令,测试取代证明。
Agent 是 LLM + 感知世界、行动于世界的能力。这是杜威实用主义认识论的实体化:知识不再是静态问答,而是在行动-观察-修正循环中涌现。Agent 把 LLM 从「被动的知识储存」变为「主动的认知行动者」。它是 Clark 延展心智论的激进实现——心智真的延伸进了环境,因为它能改变环境。没有 agent,LLM 是一个只能说话的大脑;有了 agent,它开始在世界中留下痕迹。
CLI 是 agent 与数字世界交互的躯体接口。没有 CLI,LLM 只是漂浮在虚空的大脑——有推理,没有手。CLI 给了它感觉(读文件、观察环境)和运动(执行命令、修改代码)。从具身认知理论看,CLI 是让 agent 的认知真正「落地」的器官:认知不再发生在对话气泡里,而是发生在与真实文件系统、真实代码仓库的真实互动中。具身是认知的条件,不只是认知的外壳。
如果 agent 是大脑,CLI 是手,MCP 是神经系统的标准化协议。它定义了大脑如何连接新的感觉器官(新工具、新服务),以及信号如何规范传递。在 MCP 之前,每个工具连接都是定制的、脆弱的;MCP 把这种连接标准化,让「接入新能力」变成插拔而不是手术。这是认知延展的工业化——让延展心智能够规模化生长新器官,且器官之间共享语言。
这六个技术不是六件独立的工具,而是人类认知延展的一套完整基础设施。它们共同回答的问题只有一个:如何让「人类的知识与判断」能够跨越时间、空间与个体,被一个概率性的、会理解的执行者正确激活?
过去的一切技术工具都是「执行」的——人给规则,机器执行规则,没有理解的空间。这套新的基础设施第一次引入了「理解」作为执行的媒介。这个差异是根本性的:它改变了知识传递、认知分工与人机协作的底层逻辑。
我们不是在「使用更强大的工具」——我们是在第一次构建一种能理解意图的外部认知系统,并摸索如何与它协作。Skill、harness、agent、MCP,是这场摸索中涌现出来的答案的不同部分。