林子豪的 PKM
← 返回 Blog

Skill 不只是能力包,也是 taste profile

读 SkillOpt 论文后的一个想法:通用任务可以训练公共 best_skill,但写作和人文类 skill 更像个人 taste profile,选 skill 本质上是在选一种审美和工作方式。

5 min read系列 · agent
aiagentskillwritingevaluation

读完 SkillOpt: Executive Strategy for Self-Evolving Agent Skills 之后,我觉得它真正提示的问题不是「prompt 也可以优化」。

这个说法太浅了。

更有意思的是:agent stack 里应该显式多出一个选择维度。

以前我们主要在选:

model × harness

比如选 GPT 还是 Claude,选 Codex、Claude Code、OpenCode,还是自己的 agent runtime。

但 SkillOpt 这篇论文把第三个维度推到了台面上:

model × harness × skill

skill 不是临时 prompt,也不只是系统提示词里多写几条规则。它可以被当成一个外部可训练状态。模型不动,harness 不动,任务数据集和 scorer 固定,然后让 optimizer model 根据 rollout 结果对 skill 做 add/delete/replace。candidate skill 只有在 validation split 上变好,才被接受。

这让 skill 从「手写经验」变成了一个可以训练、验证、导出、复用的 artifact。

通用任务里确实可能有公共 best_skill

对于一些足够通用、足够可评分的任务,我相信确实可以训练出比较通用的 best_skill

例如 DocQA、SearchQA、Spreadsheet 这类任务里,skill 学到的很多东西不是个人偏好,而是可复用的程序性纪律:

- 回答前先绑定证据位置

- 对表格题先锁定 row/header/unit/date

- 不要相信 preview,要检查原始文件

- 输出格式必须严格匹配 grader

- 失败后要改变搜索策略

- 对 spreadsheet,要写入 evaluated static values,而不是假设 Excel 会重新计算

这些规则不是很主观。它们更像「这个任务的工作规程」。如果 scorer 稳定,dataset 覆盖常见失败模式,那么训练一个公共 skill 是合理的。

这类 skill 的价值也很清楚:它把一部分经验从人脑、对话历史、零散 prompt 中提取出来,变成一个可以审计的文本 artifact。

这和 AI eval 里的思路是连在一起的。只要有稳定 task、dataset、scorer,就可以不靠感觉去比较系统有没有变好。SkillOpt 只是把被优化对象从 model weights 换成了 skill document。

但大部分真实 skill 都是 opinionated 的

问题是,不是所有 skill 都像 DocQA 这样。

很多真实场景里的 skill,本质上不是「能力提升」,而是「偏好编码」。

coding skill 已经有这个问题,只是不那么明显。因为好代码虽然有流派,但仍然有很多外部约束:测试过不过、bug 有没有、复杂度是否降低、接口是否稳定、是否符合项目惯例。

即使不同人对 abstraction、测试粒度、重构时机、解释详细程度有不同偏好,这些偏好仍然常常能被工程后果约束住。

写作和人文相关的 skill 就不一样。

这里的 taste 差异会直接变成输出差异:

- 有人喜欢清晰、克制、短句;有人喜欢铺陈、暧昧、留白。

- 有人要论证严密;有人要情绪流动。

- 有人讨厌 AI 式总结;有人需要结构化摘要。

- 有人喜欢强观点;有人喜欢多声部和不封口。

- 有人认为润色是保持原声;有人认为润色是把文本改得更锋利。

- 有人要信息密度;有人要文气和节奏。

这些不是谁对谁错。它们是不同的审美函数。

所以在写作、人文、咨询、编辑、研究品味相关的场景里,skill 很难有一个 universal best。最多只能说有某种风格下的 best:

academic humanities critique skill
中文随笔克制修辞 skill
品牌文案高转化 skill
法律备忘录冷静准确 skill
个人博客编辑 skill

这些 skill 都可能很强,但它们优化的是不同的 loss function。

用别人的 skill,是在请别人的编辑介入

这让我觉得,未来如果出现 skill marketplace,它不能只像 model leaderboard。

模型可以比谁更强。harness 可以比谁工具更完整、执行更稳、权限边界更清楚。

但 skill 不能只问「强不强」。更重要的问题是:

这个 skill 的 taste 和我的 taste 是否一致?

用别人的写作 skill,接近于请一个编辑介入自己的文本。

你首先关心的不是这个编辑有没有名气,而是:

- 他会不会把我的声音磨平?

- 他会不会过度结构化?

- 他会不会把含混的地方改成廉价的确定性?

- 他会不会删掉我想保留的节奏?

- 他会不会把我的文章改成一篇正确但无聊的文章?

如果 taste 不一致,一个 skill 可以在公共 benchmark 上更好,但在你的工作流里更差。

这也解释了为什么 vibe writing 这类场景不能完全交给外部标准。写作不只是产出文本,也是形成判断、保留个人声音、和材料发生关系的过程。skill 如果太强势,可能提升了表面质量,却偷走了作者真正想练的部分。

Skill 的元数据应该描述 taste,而不只是分数

如果 skill 是一种 artifact,那么它需要 provenance。

但对 opinionated skill 来说,provenance 不只是训练数据和 benchmark 分数,还应该包括 taste metadata:

- 它偏好的语气是什么

- 它会删掉什么

- 它会保留什么

- 它如何处理歧义

- 它是否倾向强结论

- 它是否尊重作者原声

- 它讨厌哪些俗套

- 它的失败样本是什么

- 它不适合什么文本

也就是说,skill 不是一个单纯的能力包,而是一个 taste profile。

这和 个人 AI infrastructure 的方向也有关。真正个人化的 AI 系统,不只是接入更强模型,也不是把所有资料塞进 context。它需要积累自己的偏好、边界、反例和工作习惯。

个人 validation set 可能比公共 benchmark 更重要

SkillOpt 的方法仍然有启发。

即使写作 taste 很难客观量化,也不代表无法优化。只是 dataset 和 scorer 要换一种形态。

对个人写作 skill 来说,更合理的数据不是「题目和标准答案」,而是 preference set:

- 原文

- 多个改写版本

- 我选择哪一个

- 我拒绝哪一个

- 为什么拒绝

- 哪些句子不能动

- 哪些 AI 味必须删除

- 哪些表达虽然不完美,但代表我的声音

然后 validation gate 也不一定是 EM/F1,而可能是个人 preference judge、pairwise comparison、人类 review,或者一组半确定性的风格测试。

公共 skill 可以提供底座,个人 validation set 负责本地适配。

public skill = 通用程序性纪律
personal skill = taste、边界、偏好、反例

这可能比「下载别人最强 skill」更现实。

读后感

这篇论文让我更确信:agent 的长期演化不只会发生在模型权重里,也会发生在外部文本 artifact 里。

但这些 artifact 不是同一种东西。

有些 skill 像 SOP,可以公共训练、公共评估、公共复用。

有些 skill 像编辑风格,是个人审美和工作方式的压缩。它们也可以优化,但优化目标不是「全局更好」,而是「更像我想要的样子」。

所以以后选 agent,也许不应该只问:

你用的是什么 model?
你用的是什么 harness?

还应该问:

你带的是什么 skill?
这个 skill 是谁的 taste?
它会把我带向哪里?

这才是 SkillOpt 对我最有启发的地方。它把 skill 变成了可训练对象,但也顺便暴露了一个更人文的问题:不是所有优化都在追同一个方向。