AIエージェントにツールを多く渡すほど良いパフォーマンスを発揮するはず——そう思いますよね。でも現実はその逆でした。フェーズごとに使えるツールを物理的に制限したら、13Bの小さいモデルが大型モデルを上回ったんです。

30秒まとめ
エージェント失敗の原因 フェーズ(State)定義 ツールアクセスを物理制限 小型モデルで大型モデル性能 コスト最大80%削減

エージェントはなぜ失敗し続けるのか

コーディングエージェントを使ったことがある方なら分かると思います。うまくいく時は本当に素晴らしいんですが、一度ずれると完全に엉뚱な方向に行ってしまうんですよね。これは単にモデルが賢くないから起こる問題なんでしょうか?

AI研究者のChip Huyenがこの問題を数学的に分析しています。 エージェントが各ステップで95%の精度を維持したとしても、10ステップ積み重なると全体の成功率は60%に落ち、100ステップでは0.6%まで急落します。ステップが増えるほどエラーが指数的に蓄積される構造なんです。

Anthropicもこの問題を直接認めています。「エージェントの自律的な性質は、コストの増加とエラーの蓄積リスクをもたらす」と。 多くのソリューションはこう対応します——より大きなモデルを使え、コンテキストウィンドウを拡張しろ。Statewrightはその真逆を行きます。問題空間を小さくする。

核心となるアイデアはシンプルです。エージェントが現在どのフェーズ(State)にいるかに応じて、アクセスできるツールを物理的に制限するんです。計画フェーズでは読み取り専用ツールのみ、実装フェーズでは編集ツール、テストフェーズではbashコマンドのみ。プロンプトで「このツールだけ使って」とお願いするのではなく、プロトコルレベルで物理的にブロックするんです。

核心コンセプト:「エージェントは提案、状態は法律だ」

Statewright創設者Ben Cochranの言葉です。モデルが状態ルールを無視して不正なツールを使おうとすると、プロンプトで止めるのではなく、プロトコル自体が拒否します。勧告ではなく構造的な強制です。

何がどれだけ変わるのか

似たようなツールはすでにありますよね——LangGraph、XState、Claude Code。何が違うのか見てみましょう。

既存フレームワークStatewright
ツールアクセス制御プロンプトベース(勧告)ステートマシン(物理強制)
ルール違反時モデルが無視可能プロトコルレベルでブロック
モデルルーティング手動設定フェーズ別自動ルーティング
入力トークン効率全ツールリストを露出現在フェーズのツールのみ
コスト削減可能性マルチフェーズで最大80%

LangGraphはエージェントをグラフノードとして接続し、専門的な役割を担わせる方式です。 専門化がパフォーマンスを向上させるという哲学は似ていますが、LangGraphはプロンプトで誘導するだけで物理的にはブロックしません。Claude Codeと比較するともっと興味深くて——Claude Codeは作業開始時に35,000トークン以上のコンテキストから始まります。Statewrightは現在の状態で必要なツールだけを露出するので、入力トークンが大幅に削減され、キャッシュ効率も向上します。

そして最も反直感的な結果がこれです。13Bパラメータ以上のモデルなら、自由に動かす大型モデルよりStatewrightで制約された小さいモデルが一貫して良い結果を出しました。Qwen-coder、GPT-OSS、Gemma4はもちろん、Haiku、Sonnet、Opusまで複数のモデルファミリーで同じパターンが確認されたとのことです。

すぐ始められるガイド

  1. インストール——MCPでエディタに接続
    Claude Code、Codex、Oh-My-CodexなどのMCP対応エディタでStatewrightプラグインをインストールします。コアエンジンとエージェントクレートはApache 2.0なので無料で使えます。
  2. ワークフローの状態を定義
    YAMLまたはJSONで状態(state)と遷移(transition)条件を定義します。「planning → implementation → testing」のようなフェーズを明示し、各フェーズのガード条件を設定します。
  3. ツールアクセス権限を割り当て
    各状態で許可するツールを指定します。planningはファイル読み取りのみ、implementationは編集ツールまで、testingはbash実行のみ。この制約はプロトコルレベルで強制されます。
  4. フェーズ別モデルルーティングの設定(任意)
    コストを削減したい場合、計画フェーズはHaiku、実装はSonnet、レビューはOpusに自動ルーティングするよう設定します。マルチフェーズワークフローで最大80%のコスト削減が可能です。
  5. 実行と監査ログの確認
    Statewrightはすべての状態遷移とツールアクセス試行をログに残します。どのフェーズでどの試行がブロックされたか完全に追跡可能なため、SOC 2などの監査要件にも対応できます。
~80%
マルチフェーズワークフローでのコスト削減(フェーズ別モデルルーティング時)
13B+
このパラメータ以上で大型モデル比の一貫した性能改善を確認
Apache 2.0
コアエンジン+エージェントクレートのライセンス(完全オープンソース)

さらに深く学びたい方へ

Show HN: Statewright Discussion 創設者Ben CochranとのQ&A。ライセンス方針、技術設計の意図、LangGraph・XStateとの違いを直接確認できます。 news.ycombinator.com

Building Effective Agents — Anthropic エージェント信頼性問題の構造的原因とAnthropicが推奨する設計原則。なぜシンプルさが複雑なエージェントより先なのかを解説しています。 anthropic.com

LangGraph: Multi-Agent Workflows グラフベースのマルチエージェントオーケストレーションの代表的なフレームワーク。Statewrightとのアプローチの違いを比較するのに最適です。 langchain.com

Agents — Chip Huyen AIエージェントの信頼性問題を数学的に分析した記事。「95%精度→100ステップで0.6%成功率」の計算はここから来ています。 huyenchip.com

XState Documentation UI開発向けステートマシンの参考資料。Statewrightがエージェント向けツールアクセス制御としてこれをどう特化させたかを理解するのに役立ちます。 xstate.js.org