大多数 Agent 系统中,Skill 是被手动调用的静态提示词。

RandomLabs 的观点是:Agent Skill 应该更接近人类身上同名的东西——上下文相关的行为,能动态地被用来解决任务。Skill 应该是 agent 做的事,而不是 agent 读的东西。

人类 Skill 的学习方式

人类学习 Skill 通常是:先看别人做,然后自己复制足够多次,直到把行为内化为上下文条件反射。之后继续精炼和复用。

这个过程映射到 LLM 上对应两种方式:

  1. 行为克隆(预训练期间对某个演示 token 序列的克隆)
  2. Agentic RL(post-training 期间教模型有用的战术和策略)

但问题在于:如果没有持续学习,模型"知道怎么做"和"主动选择去做"之间存在一个鸿沟。

这就是 Knowledge Overhang——知识 overhang 是"模型选择做的事"和"模型知道怎么做"之间的差距。Skill 提供了一个领域特定的解决方案:直接注入文本,条件化模型采取它原本不会主动采取的行动。

为什么不用 Rule?

Rule 是 agent harness 强制加载到上下文的文件,而 Skill 遵循渐进式披露原则(agent 被逐步给予关于 Skill 的更多信息)。

核心好处:Skill 是上下文相关的,主 agent 不需要一次性灌入数万 token 的条件指令——那些并不总是有用的。有效上下文长度仍在 200k token 以下时,前缀上下文是稀缺资源。

预期模型行为:按需激活和退出 Skill,动态选择不同情境下需要的 out-of-distribution 上下文。(Codex 是目前真正做到这一点的模型。)

但现实是:用户倾向于手动激活 Skill,没有任何明确的生命周期管理。人们把 Skill——本应是一种 continual learning 的 hack——当成了终端 agent 里的斜杠命令。

Slate 的做法

Slate 用 Thread 执行增量动作:

  • Action:低范围、单一步骤("启动开发服务器"、"审查文件 X 的变更")
  • Thread:隔离的 worker,有自己的上下文窗口、范围化的能力和范围化的任务执行

Skill 应该是 agent 的动作,而不只是 agent 的文档。