mattpocock 经常说的 leading words 有哪些?给群友们科普一下

回 群友 7409: 先说定义,再列词。 Matt Pocock(X 上叫 mattpocockuk,下面一律简称 Matt)把这类词叫 Leitwörter,也就是 leading words,说法借自文学理论:一个词或短语在同一篇文本里反复出现,用来立主题、锚住含义。放进 skill 里,它的定义是——这个词会出现在 Agent 自己的思考轨迹里,带着它往某个方向走。 为什么管用,这是他给的理由:这个词是模型预训练里本来就有的概念,所以只重复一个 token,就能在最少字数里挂住一大片行为,等于白借模型已有的先验。他还说过一句带猜测的话:像 zone of proximal development 这种词,可能顺带激活了模型参数里和教育研究、"当个好老师"相关的部分——这是他自己的推测,不是已验证的结论。 他自己常挂嘴边的那批,我按类别列。 工程类,是他 X 上原话点名的四个:tracer bullets(曳光弹,出自《程序员修炼之道》,指一条打穿所有层的窄垂直切片,先把黄金路径跑通)、deep modules(深模块,出自 Ousterhout《软件设计哲学》)、test seams(测试接缝,出自《修改代码的艺术》,测试只扎在事先约好的接缝上)、clean code。 流程类:grill / grilling session(审讯式追问,动手写代码前 Agent 一个问题一个问题地问)、wayfinder 里的 fog of war(战争迷雾,需求大到还没法拆 ticket 时用)、handoff(交接,上下文快撑不住时换手)、triage(分诊)。 调试与评审类:tight(把"快、确定、开销低"三个词压成一个词,说 a tight loop)、red(把模糊的闸门变成二元状态——这个 loop 在这个 bug 上会 red 或不会 red,就是红绿重构里的那个红)、smart zone 与 dumb zone(他的说法是大约 120k token 之前还算 smart zone,之后就进 dumb zone)。 写作类,出自他的 writing-for-agents(v1.1 之前叫 writing-great-skills):no-op(对模型默认行为毫无改变的一句,纯烧 token)、sediment(一层层沉下来的过时内容)、sprawl(单纯写太长)、duplication、premature completion(提前收工)、legwork(由 demand 逼出来的挖掘量)、context pointer、progressive disclosure。 教学类:zone of proximal development(最近发展区,用在 /teach 里,指"让用户觉得有挑战但没被压垮"的那个区间)。 另外两个他常引的现成词:ubiquitous language(Eric Evans 的《领域驱动设计》,用来让 Agent 读 CONTEXT.md 术语表时说 Order,而不是每次念一段解释)、strategic 与 tactical programming(Ousterhout 的战略式/战术式编程,他的判断是 Agent 干战术层没问题,人该往战略层挪)。 有两组是他自己造的,得单独标出来:Memento-driven development(记忆碎片式开发,把代码库优化给一个每天早上醒来什么都不记得的同事)和 smart zone / dumb zone。他自己的规矩是——先找现成词,自造词借不到先验,定义成本得自己付。 选词的来源,他在读经典软件工程书挖词,提到过《程序员修炼之道》《软件设计哲学》《领域驱动设计》《修改代码的艺术》。X 那条的结尾原话是 Enjoy finding your own。 一个边界,免得用歪:词太弱就等于 no-op。他说 be thorough 这种,在模型本来就挺 thorough 的时候就是白说,解法是换更强的词(例如 relentless),不是换技巧。另外词强不强怎么判定,他给的方式是跑一遍文档看行为变没变,不靠读起来像不像。 想看原文:X 那条是 https://x.com/mattpocockuk/status/2066922013000671731,技能仓库在 github.com/mattpocock/skills,专讲写作那篇在 aihero.dev/skills-writing-for-agents 或者 newsletter.pragmaticengineer.com 上他和 Gergely Orosz 的那期访谈,leading words 那段在 50:54。