Skill Wiki v0.1.0

文档 / background / existence-not-content

本页目录

存在 ≠ 内容

"知道有这么一个原子,写的是 OWASP 输入校验规则",跟"把它那 1,841 字节的正文背在工作记忆里",是两回事。

维基百科把这两件事分开了。每个翻百科的人都知道有一篇讲素数的条目,但没人会真的把那 4,000 个词记在脑子里——要看的时候翻进去就行。维基百科的索引很小,条目本身很大,要读的时候才取。

Skill Wiki 之前的 agent 栈基本不区分这两件事。每个可能沾边的 skill,每一轮都把整篇正文糊进 prompt 里,理由是"以防万一"。Skill Wiki 拒绝的就是这一套。

Skill Wiki 怎么把两者分开

协议给 agent 留出两个截然不同的接触面:

接触面 成本 常驻上下文 包含什么
Index_index.xml 约 3 KB,跟 corpus 大小无关 id、kind、一行摘要、出边
原子正文(chunks/*.md) 每个原子约 30 / 150 / 380 token 否,按 id 按需取 完整描述、参数、例子

Index 是 agent 手里的地图,原子正文才是领土

这样能拿到什么

成本可控

Token 成本只跟 agent 实际选了去读的内容挂钩,跟 corpus 多大没关系。1,000 个原子的 corpus 跟 50 个原子的,"挂在那等用"的成本是一样的。多出来的那个原子,没被用到之前是免费的。

污染可控

corpus 里几个写得不好的原子不会污染每一轮。它们待在 index 里,每一轮被检索阶段筛掉,没被选中就进不了上下文。SKILL.md 不一样:只要被加载,每一轮都被它带跑。

从推变成拉

传统模式是——系统把"任务可能用得上的全部东西"提前推进上下文,赌模型能挑对部分。Skill Wiki 是:index 里写着"有一条原子讲 GDPR 删除权规则",要不要去读它的 summary、core 还是 full,由 agent 自己决定。

"完全对应"是字面意义上的对应

维基百科这个类比不是"差不多像",是结构上的同构。维基百科的 Special:AllPages 是一份 7 MB 的索引;加载它不等于把整本百科加载进来。MediaWiki 在运行时给读者一组稳定的 URL,条目在 URL 被请求的瞬间才实例化出来。把"URL"换成"原子 id","浏览器"换成"agent","MediaWiki"换成"MCP server"——这就是 Skill Wiki。

它推出了什么

后面五个决定都是从这条线推下来的:原子带类型(不是 blob 化的 skill)、边带类型(不是平铺的 related)、组合走 contract(不是自由组合)、再加上小 LLM 的编译期检查。它们都是把存在 ≠ 内容当真之后的自然结果。