
当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更可控。
觉得有用就点个赞吧,也欢迎在评论区讨论,技能免费分享,关注公众号,发送“skill”一键获取常用skill哦!!
关注我,持续分享提升开发效率的实战技巧和AI工具。
夜雨聆风