AIコーディングエージェントに「今はファイルを触るな」と教える — Statewrightのステートマシン式ガードレール
Claude Codeに「このバグを直して」と頼んだら、関係ないファイルまで書き換えていた。Cursorに機能追加を依頼したら、既存のテストが全部壊れていた。
AIコーディングエージェントの問題は、性能不足ではなく、やりすぎることだ。
計画中にいきなりファイルを編集する。テスト前にコードを書き換える。デバッグのつもりで本番設定をいじる。人間なら「今はその段階じゃない」と判断できることを、エージェントは最短経路で突っ走る。
Statewrightは、この問題をステートマシンで解決する。
フェーズごとに「使える道具」を制限する
考え方は単純だ。ソフトウェア開発には段階がある——計画、実装、テスト、レビュー。各段階で使えるツールを明示的に制限すれば、エージェントの暴走を防げる。
具体的にはこうだ。計画フェーズではファイル読み取りと検索だけを許可し、編集ツールはブロックする。実装フェーズに移ったら編集を解禁するが、テスト実行は許可しない。テストフェーズではテストコマンドのみ。レビューフェーズでは再び読み取り専用に戻る。
これをステートマシン(状態遷移図)として定義し、MCP(Model Context Protocol)サーバー経由でエージェントに接続する。Claude Code、Codex、Cursor、opencode——MCP対応のエージェントならどれでも使える。
重要なのは、この仕組みにLLMが一切関与しない点だ。Rustで書かれた決定論的なエンジンが、現在のフェーズに基づいてツール呼び出しを許可または拒否する。「AIにAIの監視をさせる」のではなく、コードで制約をかける。
SWE-benchで2/10から10/10へ
数字で語ると分かりやすい。
Statewrightの開発者Ben Cochran(元NVIDIA/AMD)が公開した実験結果によると、SWE-benchの5タスクサブセットで、ガードレールなしの場合に2/10だったスコアが、Statewright適用後は10/10に改善した。使用したのは13.8GBと19.9GBのローカルモデルで、大型のクラウドモデルではない。
この結果が示しているのは、「モデルの性能を上げる」のではなく「モデルの行動を制約する」ことで、品質が上がる場合があるということだ。これは直感に反するが、人間の開発チームでも同じことが起きる。ジュニアエンジニアに「コードレビュー前にmainにマージするな」と伝えるだけで、品質が上がるのと同じ理屈だ。
動かし方
セットアップは2通りある。
マネージドクラウド版(statewright.ai)を使えば、ブラウザ上のビジュアルエディタでワークフローを定義し、MCP gateway経由でエージェントに接続できる。ワークフローの保存と実行履歴はクラウドで管理される。
ローカルで完結させたい場合は、Docker ComposeでPocketBase、MCPゲートウェイ、ワークフローエディタを立ち上げる。エンジン本体(crates/engineとcrates/agent)はApache 2.0ライセンスで、ランタイム依存もない。
Claude Codeの場合、.claude/settings.jsonにMCPサーバーとしてStatewrightを登録するだけで導入できる。筆者が見た限り、セットアップは5分もかからない。
限界を正直に言えば
Hacker Newsで120以上のupvoteを集めたStatewrightだが、過信は禁物だ。
まず、ステートマシンの定義自体は人間が設計する必要がある。「計画→実装→テスト→レビュー」の流れが適切かどうか、各フェーズでどのツールを許可すべきかは、プロジェクトごとに異なる。テンプレートは用意されているが、複雑なワークフローでは試行錯誤が要る。
次に、SWE-benchでの改善結果は小規模な実験に基づいている。5タスクのサブセットと、大規模な実プロジェクトでは状況が違う可能性がある。
そして、Claude CodeやCursorの側も独自のガードレール機能を強化し続けている。Claude Codeのauto modeにはすでにツール許可の分類機能がある。プラットフォーム側の機能が充実すれば、外部ガードレールの必要性が薄れるかもしれない。
それでも、「ツール制限をステートマシンで宣言的に定義できる」というアプローチは、プラットフォームに依存しない汎用性がある。Claude CodeからCursorに乗り換えても、同じワークフロー定義を使い回せる点は、プラットフォーム内蔵のガードレールにはない強みだ。
関連記事
Perplexityが「セキュリティスキャナー」を出した理由 — Bumblebeeが照らす開発環境の死角
PerplexityがOSS公開した開発環境スキャナー「Bumblebee」を解説。MCP設定、npm/PyPIのlockfile、VS Code拡張を読み取り専用でスキャンし、サプライチェーン攻撃を検出する。
OpenCode vs Claude Code 2026年版 — 16万スターOSSと最強CLIエージェント、どちらを選ぶべきか
OpenCodeとClaude Codeを5つの軸で徹底比較。料金・モデル対応力・コード品質・開発体験・拡張性の違いから、ターミナルAIコーディングツールの最適な選び方を解説する。
MCPサーバーおすすめ10選 2026年版 — 17,000本から「最初に入れる3本」を選んだ理由
MCPサーバーのおすすめ10選を目的別に比較。Claude Code・Cursor両対応、17,000本超から最初に入れるべき3本と使い分けを解説。