图片

Karpathy Guidelines遇上Hook

一个Skill + 一个Hook,让AI写代码时不再“自作聪明”

❀ 你有没有遇到过这些情况?

你说“加个导出功能”,AI直接设计了导出哪些字段

你说“添加个校验函数”,AI添加了一堆你用不上的边界防御代码

你说“重构一下函数”,AI顺手把其他的函数也直接重构了

别慌,不是你一个人。

图片

2026年1月,AI大神Andrej Karpathy(OpenAI联创、Tesla前AI总监)在X上发了一条引发轰动的推文,总结了LLM编程助手的三大通病

通病

翻译成人话

典型场景

错误假设

模型面对模糊需求时,倾向于自行脑补细节并直接执行,而非先向用户确认歧义

你说"导出用户数据",AI可能自作主张地假设了导出格式、文件路径、字段选择——全都没有跟你确认

过度工程

模型有强烈的“完美主义”倾向,常为简单问题引入不必要的抽象层、设计模式或复杂架构

只要求“写一个判断字符串是否为空的工具函数”,AI却给你套上工厂模式、抽象校验器、策略枚举,还额外加了一堆你根本用不上的边界场景防御代码

附带修改

在执行特定任务时,模型喜欢“顺手”重构无关代码、调整格式或修改注释

让AI修改A函数的,它顺手把相近的B函数修改了。

别担心,这不是AI的错,是我们还没有教会它怎么“做事”。

图片

❀ Karpathy Guidelines:四条规则专治各种“不听话”

GitHub上有个开源项目叫andrej-karpathy-skills,把Karpathy的观察提炼成了一个Skill文件。整个完整的SKILL.md不到70行,核心就是四条简单规则:

原则

含义

先思考再编码

显式说出假设;有多种解释时摆出来,别默默选一个就跑

简单优先

用最少代码解决问题;200行能压到50行就重写

手术刀式改动

只动该动的;别顺手“优化”相邻代码;发现死代码只提醒、别删

目标驱动

定义成功标准并循环验证;把模糊任务变成可验证目标

这四条规则的妙处在于:它们不是禁令清单,而是行为框架

它们定义的不是“不准做什么”,而是“决策时的优先次序和工作方式”。

“Think before coding”不是“不准瞎写”,是“先对齐再执行”。 “Simplicity first”不是“不准写复杂代码”,是“默认选最简解法”。

这个项目截止目前已经冲到了185k+ Stars,是GitHub上增长最快的AI编码技能项目之一。零运行时依赖,就一个文件。

图片

以下是四条原则转义后的中文内容:

图片

1. 编码前思考

不要假设。不要隐藏困惑。呈现权衡。

在实现之前:

明确说明你的假设。如果不确定,请问。

如果存在多种解释,请呈现它们 - 不要默默选择。

如果存在更简单的方法,请说出来。在有理由时提出异议。

如果有不清楚的地方,停下来。指出令人困惑的地方。请问。

2. 简洁优先

用最少的代码解决问题。不要过度推测。

不要添加要求之外的功能。

不要为一次性代码创建抽象。

不要添加未要求的“灵活性”或“可配置性”。

不要为不可能发生的场景做错误处理。

如果你写了 200 行代码但它可以是 50 行,重写它。

问问自己:“资深工程师会觉得这过于复杂吗?”如果是,简化。

3. 精准修改

只碰必须碰的。只清理自己造成的混乱。

编辑现有代码时:

不要“改进”相邻的代码、注释或格式。

不要重构没坏的东西。

匹配现有风格,即使你更倾向于不同的写法。

如果注意到无关的死代码,提一下 - 不要删除它。

当你的改动产生孤儿代码时:

删除因你的改动而变得无用的导入/变量/函数。

不要删除预先存在的死代码,除非被要求。

检验标准:每一行修改都应该能直接追溯到用户的请求。

4. 目标驱动执行

定义成功标准。循环验证直到达成。

将指令式任务转化为可验证的目标:

“添加验证” → “为无效输入编写测试,然后让它们通过”

“修复 bug” → “编写重现 bug 的测试,然后让它通过”

“重构 X” → “确保重构前后测试都能通过”

对于多步骤任务,说明一个简短的计划:

1. [步骤] → 验证: [检查]

2. [步骤] → 验证: [检查]

3. [步骤] → 验证: [检查]

强有力的成功标准让你能够独立循环执行。弱标准(“让它工作”)需要不断澄清。

图片

❀ Hook机制:AI Agent的“自动检查站”

先来说说什么是Hook。

把AI Agent的执行流程想象成一条流水线,Hook就是在这条流水线的关键节点插入的自动检查站

用一张流程图来理解:

图片

Qoder支持四个核心Hook事件:

官方Hook使用手册

https://help.aliyun.com/zh/lingma/qoder-cn/user-guide/hooks?spm=a2c4g.11186623.help-menu-2804669.d_1_4_6.6b8b7a1cH6OzCd&scm=20140722.H_3032541._.OR_help-T_cn~zh-V_1

事件

触发时机

可阻断

典型用途

UserPromptSubmit

用户提交Prompt后

✅ 是

自动追加规范、内容审查

PreToolUse

工具调用前

✅ 是

拦截危险操作、路径校验

PostToolUse

工具调用后

❌ 否

自动Lint、日志审计

Stop

Agent完成响应

❌ 否

通知、清理

Hook的核心价值是:把团队工程规范、安全策略、自动校验,从“靠人提醒”变成“自动执行”

而且有一个特别重要的特点:

Hook执行的脚本本身不进入LLM上下文,完全不消耗token。只有脚本内容若涉及相关prompt修改,才会消耗token

这意味着你可以无限叠加Hook规则,而不用担心token成本。

❀ 为什么Karpathy Guidelines最适合插入UserPromptSubmit?

这是今天的重点。

我们知道UserPromptSubmit是在用户提交Prompt后、AI开始思考前触发的。而且它是可阻断的——意味着它可以修改Prompt内容。

这恰恰是Karpathy Guidelines最完美的插入点。原因有

原因一:“先思考再编码”需要在最早阶段生效

Karpathy的第一条规则就是“Think Before Coding”。如果在AI已经开始写代码后才注入这条规则,就像考试开始后才告诉学生“先审题再答题”——已经晚了

在UserPromptSubmit阶段注入,等于在AI动手之前就把“思考框架”塞进了它的脑子里。

原因二:行为规范属于“指令层”而非“知识层”

Karpathy Guidelines不是“知识”,是“行为约束”。它不教AI怎么写代码,而是告诉AI怎么思考

这类规则最适合的位置就是Prompt最前端——在AI的“第一印象”里就建立起行为边界。

原因三:Skill内容精简,Token开销可控

Karpathy Guidelines的Skill内容本身非常精简,核心内容只有50多行文本,不会造成过多的Token开销。这意味着它可以无感嵌入到每次对话的Prompt中,不会显著挤占上下文窗口的有限空间。

相比之下,许多类似的“编码规范”动辄数百行,每次注入都会大幅消耗上下文预算。而Karpathy Guidelines用最少的文本传递了最核心的行为约束,性价比极高。

❀ Prompt增强后的效果:从“随缘”到“可控”

以下场景都是在没有调用任何skill的情况下的提问

场景一:新增个菜单,实现个列表

当你说“帮我新增个菜单,做个列表”时,未增强的AI往往会“自主选择”——直接判断列表应该有哪些字段,接口的定义

图片

增强后的AI会先停下来问你进行问题澄清:“API接口路径是什么字段配置应该是怎样的?”确认需求后,列举一个简短的计划,然后开始实现

图片

场景二:方法重构

当你说“把这个方法进行重构”时,未增强的AI修复方法后,就直接告诉你改了什么,不会去验证

图片

增强后的AI优化后会自己去进行兼容性验证

图片

说白了,增强前后的差别就是:AI从“埋头就干”变成了“先想清楚再动手”。

这就像给每一次AI对话自动加了一个“工程师思维的前置过程”

❀ 怎么用?三步配置

图片

配置起来其实很简单:

第一步:获取Karpathy Guidelines Skill内容

https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills/blob/main/README.zh.md

第二步:创建Hook脚本

本地Qoder CN用户级目录新建一个hooks目录创建一个增强脚本,脚本内容自动对Prompt追加Karpathy的四条规则。以下脚本内容仅做参考示意:

inject-coding-standards.ps

(powershell脚本,暂时只支持windows,macos暂未适配)

https://gitcode.com/lxx-manager/resource/blob/main/common/inject-coding-standards.zip

将脚本下载后放置到路径A(自定义的项目或本地固定目录)

第三步:配置settings.json

本地Qoder CN用户级目录下,编辑settings.json文件,如不存在则新建settings.json文件,

图片

打开并添加UserPromptSubmit Hook配置配置刚刚存放的脚本位置路径A,将脚本与Hook事件绑定。配置文件仅做参考示意:

图片

配置完成后,每次你在Qoder中输入需求,Hook都会自动在Prompt前面注入Karpathy的行为规范。

你只需要正常对话使用,AI就会自动“变得更有边界感”。

❀ 写在最后

Karpathy Guidelines + Hook的组合,本质上是把“人的工程经验”变成了“AI的自动行为准则”

不需要每次手动提醒,不需要手动调用skill

一个不到60行的Skill文件,一个几十行的Hook脚本,就能让你的AI编码助手从“野生”变成“驯化”。

这就是Hook机制的魅力——它不是让AI更聪明,而是让AI更可控。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐