用 pre-commit hook 限制文件不超过 5000 token,防止 Agent 改不动大文件
Matt Pocock 提了个实用招:让 Agent 自己写个 git hook,文件超 5000 token 就不让提交,报错还教你怎么拆,代码库干净多了。
Matt Pocock 分享了一个提示词写法:让 Agent 生成一个 pre-commit hook,文件超过 5000 token(按字节除以 4 估算)就拦截提交。该 hook 只检查 staged 文件,跳过 lockfile 和代码生成产物。报错信息里附带如何拆分文件的具体指引。作者认为光写在 Agents.md 里不够,要变成不依赖 AI 自觉的硬性约束,因为大文件会超出 Agent 的上下文窗口,导致漏改和重复改。
Matt 的这个观点我很赞同,我之前也有类似的规则,但是他是让 Agent 写了一个 pre-commit hook,任何文件超过 5000 token就拦下提交,只检查 staged 的文件,跳过 lockfile 和代码生成产物这类不是 agent 写的东西,报错信息里还要写清楚怎么把文件拆开。 它不仅仅写在 Agents .md 里面,而是也要写到不需要 AI 的硬性要求中,因为有时候 agent 是不会自觉的。 有很多朋友也许在说:现在都没人看代码了写大文件有什么问题吗?我自己实践过: agent 特别容易把文件写得又大又杂,上下文窗口是有限的,一个文件塞太多,后面再改它时 agent 只能看到一部分 漏改 重复改就都来了。 我遥想之前有当年,某模型直接写了一个小一万行的代码,发现后来他根本就改不好了,各种 bug 和乱改。所以小文件绝对是必要的。 Matt Pocock @mattpocockuk Prompt of the day: Create a pre-commit hook that prevents files over 5,000 tokens. Tokens = bytes/4. Run only on staged files. Ignore files which are not authored by agents, like lockfiles or codegen. Provide explicit instructions on how to split files in the error message. The simplest investment I ever made in my codebase. So good. 🔗 View Quoted Tweet 💬 0 🔄 0 ❤️ 3 👀 562 📊 1 ⚡
- IT之家03:30原文