ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

andrej-karpathy-skills 深度拆解:4 条行为准则如何纠正 LLM 编码习惯

andrej-karpathy-skills 深度拆解:4 条行为准则如何纠正 LLM 编码习惯 andrej-karpathy-skills 深度拆解4 条行为准则如何纠正 LLM 编码习惯【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skillsandrej-karpathy-skills 把 Andrej Karpathy 对 LLM 编码陷阱的观察压缩成一个包含 4 条行为准则的 CLAUDE.md 文件——编码前思考、简单优先、手术式修改、目标驱动执行对准过度复杂化、隐藏假设、无关重构三大毛病。给 LLM 写规则为什么比继续训练它更划算先讲一个你可能也经历过的现场。你让 AI 修一个空指针异常十分钟后打开 diff异常确实没了但整个 Service 层的方法签名变了文件里的引号被统一成双引号每个方法还都被加上了类型标注。这就是 LLM 编码最典型的行为它会顺着自己的假设一路跑下去还好心地越界。AI 专家 Andrej Karpathy 说过模型不会管理自己的困惑不寻求澄清不暴露不一致该反驳时也不反驳。修模型行为的常规路线是加数据、继续训练。这条路贵、慢而且只对特定模型版本生效。andrej-karpathy-skills 换了个思路把规则直接写进上下文。一份 Markdown 文件装下 4 条准则加载即生效随时可撤还能跟着代码一起进 git 做评审。和别的 prompt 手法比一下堆砌 system prompt 是临时的few-shot 例子只服务特定任务只有 CLAUDE.md 配置既持久又通用。它本质做三件事——减少模型要自己拍板的决策、让行为可预测、把看起来对变成可验证的条目。工程里的 YAGNI、KISS 这些常识都能装进这一个文件。 4 条准则的机制拆解它们锁成一条链打开 CLAUDE.md乍看是四条并列戒律其实藏着一条链先问清楚再决定怎么写再限定改动范围最后定义什么叫做完。1 给 2 供信息2 给 3 划边界4 决定前三者能否自我验证。准则一先开口再动手机制一句话不让假设自由生长。模型遇到模糊需求时默认动作是挑一个解释跑下去这条准则逼它在实现前把假设摆上台面有多种解释时全部列出遇到不懂就停下提问。EXAMPLES.md 里有个导出用户数据的例子。没准则时模型会默默导出全部用户、全部字段、JSON 格式、存到当前目录。有准则后它先问的是一批问题全量还是筛选哪些字段文件还是接口数据量多大区别在于前者替用户做了决策后者只是减少了决策空间。准则二能用 50 行解决就别写 200这条开出的禁令清单很具体没人要的功能不写、一次性代码不做抽象、没人要的灵活性不加、不可能出现的场景不做异常处理。写了 200 行而 50 行能搞定就重写。EXAMPLES.md 里有个折扣计算案例同一需求两种形态没有准则文件有准则文件抽象基类 策略模式 dataclass 配置约 40 行调用要配 30 行一个函数amount * percent / 100调完就走前者不算错设计模式都用得对。问题出在时机复杂度在没被需要时就被引进来代码更难懂、更容易藏 bug、更难测试。所以准则给模型配了一个能随时自检的问题一个高级工程师会说这过度复杂吗会就简化。准则三每行改动都要能追溯到请求这条专治顺手重构判据锋利每一行改动必须能直接追溯到用户的请求。EXAMPLES.md 里给上传函数加日志的例子很有代表性。模型实际交付引号从单引号改双引号、补类型标注、加 docstring、重排空白、改写布尔返回逻辑。用户要的只是三行日志。准则把行为劈成两半动过的代码要匹配现有风格哪怕你个人不认同看到无关死代码提一句但别删——决定权留给人。只有你自己改动制造出的孤儿导入和变量才需要清理。准则四不说去做说做到什么程度算完Karpathy 的原话LLM 特别擅长朝着具体目标循环——别告诉它做什么给它成功标准。修复认证系统是没有方向的指令。这条准则把它翻译成可验证目标先写一个能复现问题的测试再让它通过最后确认老测试套件全绿。多步任务要求列出计划每步配一个验证动作。强的成功标准让模型能独立循环让它能用这种弱标准会让每一步都变成一轮澄清提问。效果对比怎么判断准则在起作用别凭感觉。项目文档列了四个可观察信号观察点没有准则文件有准则文件diff 范围混着无关格式化、改名、优化只有被请求的改动澄清提问的时机错误发生之后实现开始之前代码初稿常因过度复杂被重写第一版就是对的复杂度PR 形态夹带顺手重构最小、可评审这里有个代价要说清楚模型学会先提问后和人的往返轮次会变多。这不是失灵是把试错从 diff 环节挪回了需求环节。 适用边界什么时候用什么时候别用文档自己承认这些准则偏向谨慎而非速度。不是每个任务都要全套严谨。适合用的需要深入理解的非平凡任务、修改现有代码库、要求精确控制输出的场合、需要统一标准的团队。该跳过的修个拼写错误、明显的一行改动。对这种任务让模型先列假设纯属白拖慢速度。还有两个容易踩的坑准则间优先级冲突。比如简单优先和用户隐性的顺手加点灵活性打架时准则给的是默认值只实现被请求的部分其余礼貌顶回去。你不同意可以覆盖——准则是默认姿态不是法律。与项目规范的冲突。这份准则明确设计为与项目特定指令合并使用。如果只丢文件不合并通用层可能和项目自己的约定打架。把它追加到现有 CLAUDE.md 里项目级规则写在后面冲突时以项目层为准。接入成本两条路都接近于零集成方式只有两种都是文件级的。方式一Claude Code 插件全项目生效。在 Claude Code 里跑两条命令/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skillskarpathy-skills方式二CLAUDE.md 文件按项目配置。这个项目本体就是一个文件从仓库取 CLAUDE.md 即可新项目直接放根目录老项目追加进现有 CLAUDE.md留出和自己指令合并的空间。插件装的其实是 skills/karpathy-guidelines/SKILL.md 这同一份准则同一套规则也能配成 Cursor 项目规则见 CURSOR.md。成本就是一份文件和两分钟阅读。这个项目的价值不在于让模型变聪明而在于让模型的行为可预期、可审查。下次打开 diff 时问自己一个问题每一行改动我都能追溯到我的请求吗如果不能这份文件值得放进你的项目。【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表