技能地狱:AI Agent 工程的新困局

本期播客来自知名 AI 播客《AI Engineer》,主讲人 Matt Pocock 是广受欢迎的工程技能集 Matt Pocock Skills 的作者,长期深耕 AI Agent 技能构建实践。他指出,当前 AI 工程领域正陷入一种新型困境——技能地狱:开发者手头拥有大量可下载、可贡献、可自建的技能模块,却无法清晰分辨好技能与坏技能的边界;组织层面也缺乏系统方法,难以将业务流程转化为 agent 可执行的技能。这种混乱导致人们盲目堆砌技能,试图“一次性试遍所有方案”,结果往往既无法落地,也得不到技能承诺的效果。

我们好像特别擅长给自己找各种地狱……而我们现在又有了一个新版本的地狱,叫技能地狱。

再来一个技能就行了,兄弟。这好像就是我们现在的状态。

走出技能地狱的三重框架

Matt 提出,要系统性解决技能地狱问题,关键在于建立一套可复用的技能评估与构建框架。他为此设计了一套技能检查清单,从三个核心维度展开:

  1. 触发(Triggering):决定技能是用户调用还是模型调用。用户调用技能(如 disable model invocation: true)将描述仅暴露给操作者,agent 无法自动感知,从而降低 agent 的上下文负载与 token 消耗;而模型调用技能虽更灵活,却会持续占用 agent 上下文,增加不可预测性——模型可能因各种原因拒绝调用本应匹配的技能。

  2. 结构(Structure):每个技能应由两个核心单元构成——步骤(Steps) 与参考(References)。步骤定义操作流程,参考提供辅助信息。为保持技能轻量,Matt 强调:主 skill.md 文件必须尽可能小。实用技巧是将分支专用参考资料移出主文件,通过上下文指针(如 <<./templates/prd-template.md>>)引用外部文件,既压缩 token 成本,又提升可维护性。

  3. 引导(Guidance):这是本期最核心的洞见——善用引导词(Guiding Phrases)。这类词将复杂意图压缩为短语(如“垂直切片”),在技能文本中反复出现,促使 agent 在推理链中主动复现该概念,从而重塑行为模式。例如,用“垂直切片”替代“不要分层写代码”,能更高效引导 agent 采用迭代式开发策略。

我会给你一个技能检查清单……确保它做到了它该做的事儿,以及改进它的方法,写出好技能的方法。

这个技巧有一个很酷的地方,你能知道它有没有生效……你就能在推理轨迹里看到它说:好,我们要把它做成一个薄的垂直切片。

实践建议:从可操作的检查清单开始

Matt 特别强调,该框架并非理论模型,而是可直接落地的工程实践工具。他已将整套检查清单编码为一个新技能 Writing Great Skills,并开源于其技能仓库。听众可立即下载使用,用于审视现有技能或构建新技能。

他提醒:技能设计本质是权衡艺术——模型调用技能降低用户认知负担,却牺牲可控性;用户调用技能提升确定性,但要求操作者具备更强理解力。因此,没有绝对最优解,只有场景适配。关键在于:明确你的优先级(是减少 agent token 消耗,还是降低用户操作门槛?),再据此选择触发方式、组织结构与引导策略。

最终目标是:让技能本身成为 agent 的“可读、可审、可调、可复用”组件,而非黑箱拼图。

引导词与基础工作量的优化

在实践中,我已持续使用一组精炼的小短语来引导 AI Agent 按预期方式行动。关键在于:持续在技能中强制使用这些引导词,并在 Agent 的推理轨迹中观察其采纳程度。当 Agent 未按预期执行时,通常意味着引导词不够一致或力度不足,此时应尝试更精准的词组组合——因为自然语言(尤其是英语)本质上是一个高度可调用的宽泛 API,存在大量可选引导策略。有趣的是,Agent 本身也擅长反向生成有效引导词,可作为你的灵感来源。

另一个常见瓶颈是 Agent 在关键步骤上的基础工作量不足。例如在“计划模式”中,标准流程应为“先问澄清性问题 → 再生成计划”,但现实中 Agent 往往草草提问后便急于推进到计划阶段,导致后续计划质量低下。我的解决方案是:将计划流程拆解为两个独立技能——“Grill with Dogs”(专注澄清性问题)和“RPRD”(专注计划生成),并让 Agent 仅在当前步骤可见。这种“隐藏未来目标”的策略,能显著提升当前步骤的专注度与基础工作深度。

“通过隐藏未来的目标、隐藏未来的步骤,来增加当前步骤的基础工作量。”

“这不是总需要把技能拆成单个步骤,但在那些你特别想要额外多做一轮基础工作的场景里,没有比这更好的技巧了。”

技能剪枝:识别并清除失败模式

剪枝是系统性清理技能文件的过程,核心目标是剔除无效操作与冗余沉积。所谓无效操作,指那些看似有指导意义、实则对 Agent 行为无实质影响的内容。例如一段要求“写详细提交信息”的说明——若删除后 Agent 仍会自动生成高质量提交信息,那这段文字就是冗余的。删除测试是检验内容必要性的黄金标准:删掉某段后观察 Agent 行为是否变化。

技能膨胀的常见诱因还包括重复内容与跨文档覆盖。应坚持“单一事实来源”原则:如 PRD 模板或测试接缝定义,只在一处维护,避免多处复制导致版本漂移。而冗余沉积则多源于协作时的“只增不删”文化——共享文档中常混入大量无关或过时材料。应对方法是先重构结构:将内容按分支归类,无关内容移出主文件,过时内容直接删除。

“很多人问我怎么把技能文件做得这么精简,其实就是用这些方法做删除测试,把内容压缩成引导词,确保里面没有无关的东西,也没有冗余沉积。”

完整框架与实践路径

整套技能优化框架可归纳为四步:触发检查 → 结构梳理 → 引导强化 → 剪枝清理。触发阶段需确认技能激活时机合理,并避免过度施加上下文或认知负载;结构上应明确分支逻辑,确保仅局部相关的材料不污染主技能文件;引导环节需将文本压缩为可复用 token,并通过推理轨迹反馈持续调优;最后通过剪枝清除冗余与无效内容。

实践建议是直接从《Writing Great Skills》技能入手——它已集成上述全部方法论,可在 My Pocket Skills 平台下载。用它来迭代你自己的技能,甚至评估社区技能的健康度。作者后续计划推出 AI 编码速成课程,系统讲解工程化 AI 开发方法。这套框架不仅能帮你逃离技能地狱,更是在复杂系统中建立可控性的关键一步。

“希望我今天分享的这些能帮你逃离技能地狱,或者至少试着走上那条艰难的出坑之路。”