動機

Claude CodeやJunieなどのコーディングエージェントはチャットの延長として頻繁に使ってはいたものの、自律的に開発を任せることができる状態ではなかった。出荷状態のエージェントはとても僕の基準で安心して任せられる動きをするとはいえず、生成されたものをテストするとバグり散らかしているし、まとめて生成させるとレビューしようにも認知負荷が高すぎた。

とはいえ、LLMの知性は十分人間に匹敵する水準になっていると感じていたので、足りないのは与える文脈だということも分かっていた。リポジトリ単位で簡単にAGENTS.mdを書いてはいたが~/.codex/AGENTS.mdは作成しておらず、スキルもまったく整備していなかった。いろいろと作りたいアイデアも溜まっていたので、少し足を止めてエージェントの整備に時間を使うことにした。

スキル

AGENTS.mdに全ガイドを書くと巨大になりそうだが、そのためにスキルがあることを知った。スキルは短いトリガー条件だけがコンテキストに読み込まれ、マッチしたときに本文が読み込まれるAGENTS.mdの断片でしかない。これにより、AGENTS.mdを役割に分割しつつ、必要なときに自動で参照することができる。

そして、スキルの作成や保守もエージェントに任せるのがいい。内蔵の$skill-creatorが希望の振る舞いに必要な最小限の文章を生成し、それが実際にエージェントの行動を変えるのかをサブエージェントでテストしてくれる。

現在はCodexのsandboxは無効にしている。タスクを見ていると、コマンドをsandbox内で実行してファイルを読み書きできなかったり通信ができなくてエラーになり、sandbox外に昇格するコマンドを自動レビューで承認されて、やっと目的の結果が得られるという状態だった。sandboxでアクセスできない/devノードをホストの真の状態だと誤認して、タスクを中断することもある。本当に無駄なやり直しが多く、sandboxで得られる安全性より不利益のほうがはるかに大きい判断した。安全性はCodexのsandboxではなく、Codexそのものの実行環境で保証するべきだ。現在はそこまでできていないが、ひとまず日次バックアップがあるので大丈夫だろうと思っている。