现在是 2026 年 2 月 9 日,下午。
正如我之前说的,CZON 实现了链接检查功能,但是中间有一些小插曲。 一开始我只实现了死链接检查,和不允许超出项目范围的链接的检查。成功检测出了一些死链接,然后我把这些错误信息丢给 OpenCode + MiniMax M2.1 去修复。
比较典型的 case 是:在 .czon/AIGC/SUMMARY/summary-popular.md 里面,引用了 ../LOGS/25.md,实际上这是一个 AI 幻觉,这个链接并不存在。
真实的文件在 LOGS/25.md,使用相对路径引用应该是: ../../../LOGS/25.md。
结果,MiniMax M2.1 修复的很蠢,一开始它扫描了整个项目,发现 .czon/src/zh-Hans/LOGS/25.md 存在,然后就把引用改成了 ../src/zh-Hans/LOGS/25.md。
这是将链接改到了编译输出目录下,显然是不对的。
于是,我新增了链接检查的规则,要求不允许引用 .czon/src 下的文件。
结果,AI 开始去搜索 .czon/dist 下的文件,这更是输出后的输出了 (HTML 静态资源文件)。经过我打断之后,AI 显然疯了,它开始创建符号链接,甚至将我的原始文件到处复制,以求通过链接检查。但实际上环境已经越来越糟,新的文件创建了更多的链接错误。我只好全部打断,恢复整个环境。对不起,AI,我不该骂你是傻逼,我也只是一时生气。
好吧,真正的问题在于,
- AI Agent 不会默认扫描整个项目的文件,这个可以归结于 OpenCode 的设计场景,往往需要处理一个非常大的项目,不可能默认扫描所有文件。
- AI 本身对于 相对路径 的理解是不足的。这一点我在它的 Thinking 链路中看到,它在尝试运行一些脚本,通过实验,来掌握相对路径的概念。(顺便一提,我也总是不能直觉性地理解很多个
../..之后的结果)
解决方案是:
我需要给它一个修复链接的候选方案列表,并且以基于问题文件的相对路径形式给出,这样 AI 就不需要扫描整个项目了,也不需要自己理解相对路径了。
npx czon@latest check
链接检查这个功能已经在 CZON 0.9.1 版本中可用了,并且成功令 MiniMax M2.1 修复了 500 个链接错误,效率还可以。
这件事情让我意识到,编译检查和 AI 修复是需要相辅相成的,编译检查需要对 AI 友好。但是对 AI 友好的前提就是,需要知道 AI 的局限性在哪里,然后设计出适合它的检查输出格式。