現在は2026年2月9日、午後です。
前回お話しした通り、CZONはリンクチェック機能を実装しましたが、その過程でいくつかの小さな出来事がありました。 最初は、リンク切れのチェックと、プロジェクト範囲外へのリンクを許可しないチェックのみを実装しました。いくつかのリンク切れを検出することに成功し、そのエラー情報をOpenCode + MiniMax M2.1に渡して修正させました。
典型的なケースは次の通りです:.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自体が相対パスを十分に理解していません。これは、AIの思考プロセスの中で、いくつかのスクリプトを実行して実験することで相対パスの概念を把握しようとしているのを見て気づきました。(ちなみに、私も多くの
../..の後の結果を直感的に理解できないことがよくあります)
解決策は次の通りです:
AIにリンク修正の候補リストを提供し、それを問題のファイルを基準とした相対パスの形式で与える必要があります。そうすれば、AIはプロジェクト全体をスキャンする必要も、自分で相対パスを理解する必要もなくなります。
npx czon@latest check
リンクチェック機能はCZON 0.9.1バージョンですでに利用可能であり、MiniMax M2.1が500個のリンクエラーを修正することに成功しました。効率はまずまずです。
この出来事を通じて、コンパイルチェックとAIによる修正は相互に補完し合う必要があり、コンパイルチェックはAIにとって使いやすいものでなければならないと気づきました。しかし、AIにとって使いやすくするためには、AIの限界がどこにあるのかを知り、それに適したチェック出力フォーマットを設計する必要があります。