この論文は、Claude Code を公開されている TypeScript のソースコード(v2.1.88 から抽出された約 1,884 ファイル、51 万 2 千行)から分析し、本番運用のコーディングエージェントは、繰り返し現れる一連の設計上の問いに対する 1 つの答えの集合として理解するのが最もよいと論じる。その問いとは、推論をハーネスに対してどこに置くか、実行エンジンはいくつ必要か、デフォルトでどのような安全性の姿勢をとるか、何が制約となる資源か、拡張の仕組みをどう分割するか、作業をどう委譲するか、セッションをどう永続化するか、である。著者らは、Anthropic が公開している資料から読み取った 5 つの人間の価値 — 人間の意思決定権限、安全性・セキュリティ・プライバシー、信頼できる実行、能力の増幅、文脈への適応性 — を特定することでこれらの答えの動機を説明し、それらを 13 の設計原則を経て具体的なファイルや関数にまでたどっている。

著者らが描くアーキテクチャは、大きな決定論的ハーネスの内側にある小さな推論コアである。単一の queryLoop() 非同期ジェネレーターがすべてのサーフェス(対話型 CLI、ヘッドレス CLI、SDK、IDE)を担い、モデルが外界とやり取りする唯一のインターフェースは、ハーネスが実行前に検証する構造化されたツール利用プロトコルである。そのため、推論と強制は別々のコードパスに置かれている。このループの周囲に、実装の大部分を占めるサブシステムが配置されている。7 つのパーミッションモードと任意の ML 分類器を備えた 拒否優先のパーミッション評価 のシステム、5 層の コンパクション パイプライン、コンテキストコストの順に並ぶ 4 つの拡張メカニズム(MCP サーバー、プラグイン、スキル、フック)、要約のみを返すサブエージェントへの委譲、そして主に追記専用の JSONL によるセッショントランスクリプトである。

続いて論文は、Claude Code を 2 つの独立したオープンソースシステムである OpenClaw および Hermes Agent と 6 つの次元で対比し、同じ設計上の問いは安定している一方で、その答えはデプロイの文脈によって変わると論じる。最後に 6 つの未解決の方向性と、著者らが繰り返し提起する懸念で締めくくられる。すなわち、このアーキテクチャは開発者が短期的にできることを増幅するが、人間の長期的な理解、コードベースの一貫性、あるいは開発者の育成パイプラインを明示的に支える仕組みはほとんど提供していない、という懸念である。

要点

  • 著者らは、エンジニアリングの大半が存在する場所をモデルではなくハーネスとして扱う。コードベースのうち AI の意思決定ロジックは約 1.6% で、残りの 98.4% は運用インフラであるというコミュニティの推定を紹介し、このアーキテクチャは意思決定の足場ではなく決定論的なインフラに投資していると読み解いている。
  • サーフェスにかかわらず単一の queryLoop() 関数が実行され、変わるのはレンダリングとユーザー対話の層だけである。著者らはこれを、モードごとに別のエンジンを使うシステムと対比している。
  • デフォルトの安全性の姿勢は、人間へのエスカレーションを伴う拒否優先である。deny ルールは ask ルールに優先し、ask ルールは allow ルールに優先する。allow ルールのほうがより具体的な場合でも deny ルールが勝ち、認識されないアクションは黙って許可されるのではなくエスカレーションされる。
  • 7 つのパーミッションモード(plan、default、acceptEdits、auto、dontAsk、bypassPermissions、およびサブエージェントのエスカレーション用の内部専用 bubble モード)が特定されており、著者らはこれを段階的な自律性のスペクトルと呼んでいる。
  • 7 つの独立した安全層が列挙されており、そのいずれもがリクエストをブロックできる。ツールの事前フィルタリング、拒否優先のルール評価、パーミッションモードによる制約、auto モードの分類器、シェルのサンドボックス化、再開時にセッションのパーミッションを復元しないこと、フックによる介入である。
  • コンテキストウィンドウが制約となる資源として特定されており、毎回のモデル呼び出しの前に順に実行される 5 つの整形処理 — 予算の削減、snip、microcompact、コンテキストの折りたたみ、auto-compact — によって管理される。それぞれは、より安価な戦略では不十分と判明したときにのみ段階的に適用される。
  • 4 つの拡張メカニズムは、それぞれが独自に提供するものとコンテキスト上のコストによって区別される。フックはデフォルトでコンテキストを消費せず、スキルは低コスト(説明文のみ)、プラグインは中程度、MCP サーバーは高コスト(ツールスキーマ)である。論文は 27 のフックイベントを数えており、そのうち 5 つがパーミッションのフローに直接関与する。
  • サブエージェントは隔離されたコンテキストウィンドウで、独立に組み立てられたツールセットを用いて動作し、親には要約テキストのみを返す。各サブエージェントの会話は別個のサイドチェーントランスクリプトに書き込まれるため、親のセッションファイルを膨らませない。
  • セッショントランスクリプトは主に追記専用の JSONL であり、再開やフォークでは意図的にセッション単位のパーミッションを復元しない。著者らはこれを、セッションを隔離された信頼ドメインとして扱い、変化した文脈に古い信頼を持ち込まないためにユーザーの手間を受け入れるものと読み解いている。
  • OpenClaw および Hermes Agent との比較は、3 つのシステムが信頼境界を異なる場所に置いていることを論じるために用いられている。Claude Code はモデルと実行環境の間、OpenClaw はゲートウェイの境界、Hermes はその両者の間に置き、アクションごとの承認を多数のサーフェスに表示する。
  • 著者らは、3 つのシステムは競合するのではなく組み合わさると指摘する。OpenClaw は Agent Client Protocol を通じて Claude Code を外部のコーディングハーネスとしてホストでき、Hermes はそのホスト/ゲストの分割の両側に位置する。
  • 論文は、多層防御は各層が完全には満たしていない独立性の前提に依存していると論じ、50 を超えるサブコマンドを含むコマンドは、サブコマンドごとの解析が UI のフリーズを引き起こしたために単一の汎用的な承認プロンプトにフォールバックするというセキュリティ研究を引用している。

補足

著者らは自らの主張を 3 段階の証拠の水準で評価している。製品ドキュメントによるもの(Anthropic の公式ドキュメント)、コードで検証されたもの(抽出された TypeScript の具体的なファイルと関数。著者らはこれを最も強い水準と呼ぶ)、そして再構成によるもの(コミュニティの分析、構造的な比較、またはコードのパターンからの推論で、留保付きで述べられる)である。著者らはこれによって生じる限界についても明確にしている。分析は単一の静的なスナップショットを反映したものであり、そのフィーチャーフラグはビルド時の変動を生む。また、ソースコードからは設計意図や、本番でどのフラグが有効になっているか、実行時にどれほど広く使われているかは確認できない。

論文の最も鋭い観察のいくつかは、コードよりも人間の側に関するものである。ユーザーがパーミッションプロンプトの約 93% を承認しているという Anthropic の知見を、対話的な確認は唯一の安全メカニズムとしては行動面で信頼できないことの証拠として紹介しており(承認疲れ(Approval Fatigue) を参照)、自動承認率がセッション数 50 未満の約 20% から、750 セッションまでに 40% 超へと上昇することを示す縦断データも示している。長期的な能力について、著者らは外部の知見を集めている — 開発者は速くなったと感じていたにもかかわらず AI ツールによって作業が遅くなったというランダム化試験、Cursor の導入後にコードの複雑さが増したと報告する因果分析、LLM 利用者の神経的な結合が弱まったと報告する EEG 研究 — が、これらの証拠は問いを提起する動機となるものであって、Claude Code のアーキテクチャを特に対象としたものではないと慎重に述べている。