Total TypeScript 和 AI Hero 的作者 Matt Pocock 分享了一个他觉得特别值的小操作:让 Agent 写一个 pre-commit hook,任何代码文件超过 5000 token 就拦下来,不让你提交。
这个 hook 的设计挺细的。
第一点,它只检查你准备提交的文件,不会扫整个项目。然后第二点,lockfile 和自动生成的代码直接跳过,因为这些本来就不是 agent 写的。第三点,报错的时候不光说“文件太大”,还会告诉你具体怎么把它拆开。
评论区有人说,在 AGENTS.md 里写一条“每个文件不超过 500 行”就够了。Matt 回了一句:确定性的规则就应该用确定性的方式来执行。说白了,光在提示词里写规则,agent 有时候根本不当回事,你得用 hook 这种硬卡的机制把它管住。
有人可能会想:现在反正都是 AI 写代码,文件大一点能有什么问题?
问题出在上下文窗口。agent 能看到的内容是有限的,一个文件塞了几千行,它再回来改的时候只能读到一部分。看不到全貌,漏改、重复改就全来了。我自己就碰到过,有一次某个模型一口气写了将近一万行代码,后来想修 bug,根本修不动,改一个地方冒出两个新问题,越改越乱,最后只能推倒重来。
所以小文件是跟 Agent 协作的底线。Matt 说这是他对代码库做过的最划算的投入,我感觉说的很有道理。
科技先锋官 How I AI
