混沌を飼い慣らすための覚書
――AIエージェントを Proactive Tech Lead に育てる試み
IDEの中にAIが住み着くようになってから、コーディングの手触りは静かに変わり始めた。
我々はもう、すべてのコードを自分の指で書いているわけではない。
代わりに指示を出し、方向を与え、判断を委ねる。
仕事は「書く」ことから、「指揮する」ことへと少しずつスライドしている。
Google Antigravity と Gemini による Agentic Coding は、強力だ。
だが強力であるがゆえに、制御を失うと厄介なことになる。
放っておけば、彼らは善意のまま main ブランチを書き換える。
長い文脈の途中で、初期の設計思想はいつの間にか忘れ去られる。
それはまるで、記憶力はいいが性格に一貫性のない優秀なインターンのようだ。
では、どうすればいいのか。
もちろん、人格を持つわけではないであろう。
だが、振る舞いを設計することはできる。
単なる「道具」ではなく、
文脈を理解し、自律的にプロジェクトをメンテナンスする
信頼できる Tech Lead として振る舞ってもらうことはできないのか。
その問いから、この設定は始まった。
外部脳という発想
私が辿り着いた暫定的な答えは、意外なほど地味なものだった。
プロンプトを工夫するのではない。
モデルに期待するのでもない。
ルールと手順を、コードとして外部に置く。
リポジトリのルートに .agent ディレクトリを置き、
そこにエージェントの行動原理をすべて集約する。
- 行動規範は
rules.md - 手順書は
workflows/ - 記憶は Markdown ファイル群として
プロジェクト固有のコードとは切り離し、
.gitignore や submodule、シンボリックリンクで運用する。
これは、エージェントのための外部脳だ。
人格と記憶を、リポジトリの外に持たせる試みである。
制御の要諦は三つだけだった
試行錯誤の末、残った本質は驚くほどシンプルだった。
- 安全装置
- 記憶の強制
- 記憶の断捨離
それだけでいい。
1. 安全装置としての Meta-Protocols
自律的に動く存在には、思考より優先される絶対的な制約が必要だ。
私はそれを「メタプロトコル」と呼んでいる。
Pre-Flight Check
コミット権限を持つエージェントにとって、
ブランチの誤操作は致命傷になり得る。
そこで rules.md の最上位に、こう書いた。
- 作業前に必ず
git branch --show-current -
mainであれば即座に停止
拍子抜けするほど単純だが、効果は劇的だった。
それ以来、この手の事故は一度も起きていない。
安全とは、往々にして退屈なものだ。
Documentation Hygiene
もう一つの原則は、こう定義した。
コードを変えたなら、ドキュメントも変えろ。
finalize_task ワークフローでは、
ARCHITECTURE.md や CHANGELOG.md の更新を必須にした。
人間は忙しいと、こうした作業を後回しにする。
エージェントは違う。
書いてあることを、そのまま守る。
2. 記憶を忘れさせないための Workflows
どれほどコンテキストウィンドウが広がっても、
記憶は時間とともに薄まる。
だから私は、「思い出させる」ことを自動化した。
Context Loading (start_task)
タスク開始時、エージェントは必ず次を読む。
-
LESSONS.md—— 過去の失敗 -
ARCHITECTURE.md—— 現在の設計 -
DECISIONS.md—— 重要な意思決定(ADR)
「昔そう決めた理由」を、毎回思い出させる。
それだけで判断のブレは大きく減る。
Self-Correction (finalize_task)
コミット直前、git diff --cached を実行する。
そして、自分の変更を自分で読む。
デバッグコードは残っていないか。
壊していないか。
一呼吸置くことで、質は驚くほど上がる。
3. 記憶の断捨離 (Context Optimization)
もう一つ、運用していく中で気づいたことがある。
どれだけ良い記憶も、溜め込みすぎればノイズになるということだ。
コンテキストウィンドウは有限であり、なにより我々の認知負荷には限界がある。
だから「捨てる」仕組みも必要になる。
-
Archive: 古くなった変更履歴 (
CHANGELOG.md) は、定期的にArchives/ディレクトリへと退避させる。 - Condense: 肥大化したドキュメントは、要約して本質だけを残す。
エージェント自身に、部屋の掃除をさせるようなものだ。
常にワークスペースを整理整頓し、新鮮な空気を入れる。
そうすることで、彼らの思考は鋭さを保ち続ける。
現在地
この .agent 構成を導入してから、
Gemini は単なるコード生成機ではなくなった。
設計を気にし、履歴を尊重し、
ときにはこちらの意図を問い返してくる。
完璧な Tech Lead ではない。
だが、少なくとも信頼できる同僚にはなりつつある。
もちろん、これは正解ではない。
ただの実験だ。
AIの能力が進化すれば、
こんな仕組みは不要になるかもしれない。
あるいは、もっと精巧なオーケストレーションが必要になるかもしれない。
我々はまだ、この新しい知性との距離感を探っている。
混沌は消えない。
だが、飼い慣らすことはできる。
今のところ、私はそう信じている。