最先端AIを技術の中身まで読み解く「AIウォッチ」の深掘り記事です。題材は cleverhoods 氏の "Instruction systems capability ladder" という枠組み。一次情報(元記事)を当たって書いています。
CLAUDE.md(や AGENTS.md)に「テストを書いてからコミットして」と書いたのに、長いタスクの途中でしれっと無視された──そんな経験、ありませんか。短いタスクだと従うのに、込み入ってくると従わない。気まぐれに見えるこの挙動には、実はちゃんとした理由があります。
cleverhoods 氏が出した "Instruction systems capability ladder" という枠組みが、それを一本の物差しで説明してくれる。指示システム(=エージェントの harness)を L0 から L7 までの8段階に並べたものです。これが分かると、「うちの CLAUDE.md、なんでたまに効かないんだろう」という曖昧な悩みが、「今うちは L5 にいて、効かないのは当たり前。L6 に上がれば直る」という具体的な設計判断に変わります。
なお先に断っておくと、L0–L7 は公式規格ではなく この著者が提唱する一つのモデルです。ただ、後で見るように「なぜ効く/効かない」の説明力がとても高い。順番に見ていきます。
まず:エージェントの上限は、もうモデルの外側にある
ここ1年で何度も言われるようになった話から始めます。同じモデルでも、Claude Code や Codex の中で動かすと、ただのチャット画面より明らかに賢く振る舞う。 なぜか。
答えは「モデルの賢さ」ではなく、モデルを取り囲む外骨格= harness にあります。Sebastian Raschka は "Components of a Coding Agent" で、コーディングエージェントの強さの正体はツール使用・コンテキスト管理・記憶・権限・実行フィードバック・長時間セッションの継続性を引き受ける**足場(harness)**であって、単体の next-token 生成ではない、と整理しています。harness を「ちゃんと走る(実行)/走り続ける(状態)/安定して走る(ガバナンス)」の三層で捉える見方もありますが、言葉は違えど指しているものは同じです。
つまり競争の重心は 「どのモデルを選ぶか」から「どんな harness を組むか」へ移った。L0–L7 は、その harness を「どこまで作り込んだか」で測る目盛りなんです。
指示が効くかどうかは「どのチャンネルを通るか」で決まる
ここがこの枠組みの一番おいしいところ。著者は、指示が伝わる経路を3つのチャンネルに分けます。
- ソフトチャンネル(soft channel):ルールがモデルのコンテキストウィンドウの中で注意を奪い合う。負荷が上がると薄まる(decay under load)。だから確率的にしか効かない。
- ハードチャンネル(hard channel):強制機構がコンテキストの外側で確定的に動く。長いタスクでも薄まらない。
- セルフライティング・チャンネル(self-writing channel):エージェントが自分で指示を書く。ユーザーの合図ではなく、タスク完了を引き金にする。
CLAUDE.md のルールが「効いたり効かなかったり」するのは、それがソフトチャンネルに乗っているからです。注意の奪い合いに参加している以上、長文脈・高負荷では負ける。気まぐれなのではなく、仕組み上そうなる。
L0–L7:harness 能力のラダー
3つのチャンネルを8段階に割り当てたのが、このラダーです。
| 級 | 名前 | ざっくり中身 | チャンネル |
|---|---|---|---|
| L0 | System | モデル+ベンダー注入の既定のみ | ソフト |
| L1 | Primer | 単一のルート指示ファイル(入口が1つ) | ソフト |
| L2 | Composite | user 設定と project 設定を分割 | ソフト |
| L3 | Scoped | パスに紐づき条件付きで発火するルール | ソフト |
| L4 | Delegated | スキル=エージェントが必要時に呼ぶ手順 | ソフト |
| L5 | Abstracted | 隔離された文脈を持つサブエージェント | ソフト |
| L6 | Governed | コンテキスト外の hook / gate / deny で強制 | ハード |
| L7 | Adaptive | タスク完了後にエージェントが指示を自作 | 自己記述 |
多くのチームは L1〜L5 のどこかにいます。CLAUDE.md を整え、ルールをパスで分け、スキルを切り出し、サブエージェントに投げる──全部「良いこと」だけれど、L0〜L5 はすべて同じ物理法則の上で動いている。著者の言い方だと "run on the same physics"。つまりどこまで磨いても、最後はコンテキスト内の注意の奪い合いで、確率的に失敗しうる。
2つの壁こそが、この枠組みの本質
ラダーには、ただの一段ではない2つの断層があります。
第1の壁:L5 → L6(確率 → 確定)
最初の断層はソフトチャンネルとハードチャンネルの境。著者の例がそのまま効きます。CLAUDE.md に書いたテストのルールは「従う時もある。従わない時もある(sometimes it follows, sometimes it doesn't)」。一方、テストが落ちたら git push を止める PreToolUse フックは、モデルが何を考えていようと関係なく実行される。長いタスクで薄まることもない。
ここが、私が以前書いた ClickHouse の運用記とまっすぐ繋がります。あの記事の核心は「速くて自動の"判定の壁"が、嘘をつくエージェントを信頼できるものに変える」でした。その「壁」こそ、この枠組みでいう L6=ハードチャンネルそのものなんですね。お願い(ソフト)ではなく、強制(ハード)。確率を確定に変える、最初で最大の一段です。
関連:AIは平気でウソをつく。なのにClickHouseは百万行のC++を回す ── L6 の「壁」が現場で何を変えたか、1年の運用記から。
第2の壁:L6 → L7(読む → 書く)
次の断層は**「人が書いた指示を読む」と「エージェントが指示を書く」の境**。
紛らわしいのが、いわゆる「メモリ機能」(ここでは L6.5 と呼ばれる)です。ユーザーが「これ覚えといて」と明示的に保存する。便利だけど、書いたのは人間で、読み出し時はまたソフトチャンネルに戻る。本当の L7 は、エージェント自身が「これは保存に値する軌跡だ」と、促されずに気づいて書くところまで行きます。
L7 はどんな姿か──Hermes Agent
著者が「今出版物で見られる最も明確な L7」として挙げるのが Hermes Agent です。Hermes は、次の4条件でスキル抽出を起動する、と記事は説明します。
- ツール呼び出し5回以上の成功タスク
- エラーからの復帰
- ユーザーによる訂正
- 新しいワークフローの発見
ポイントは、このうち3つは「保存すべき瞬間が起きたことを、エージェントしか知らない」という点。人間は気づけない。だからエージェント自身が書くしかない。
そして抽出された SKILL.md は、YAML フロントマター+「When to Use / Procedure / Pitfalls / Verification」という決まった型に落ちる。ここで一番好きな一言が出てきます。
Schema is the cheap version of supervision.
(スキーマは、監督の安上がりな代替物だ)
自由記述のメモは「エージェントの書く規律が緩むのと同じ速度で劣化する」。でも型を強制すれば、書く時点で規律が効く。構造そのものが、人間の監視の代わりに品質を担保する。──これ、L6 の「フックが確率を確定に変える」話の、セルフライティング版なんですよね。型=強制です。
個人的な見方
この枠組みの強みは、自分の harness を診断できることだと思います。読み終えたら一度やってみてください。
- ルールを
CLAUDE.mdに書いてるだけ → だいたい L1〜L2 - パスで出し分け、スキルも切ってる → L3〜L4
- サブエージェントに投げてる → L5
- ……でも、フックで強制している箇所はありますか? なければ、どれだけ磨いても天井は L5。「効いたり効かなかったり」は直りません。
そして大事なのは、全部を L7 まで上げる必要はないこと。L0〜L5 で十分な指示も山ほどある。問題は、確実に効いてほしい制約を、ソフトチャンネルに置きっぱなしにしていないか。「テストが通らなきゃ push させない」「本番ディレクトリは触らせない」──この手の"絶対に外れてほしくない"ものだけ、L6 のハードチャンネルに引き上げる。それが一番費用対効果の高い一手です。
ひとつ割り引くべき点も書いておきます。L0–L7 は著者一人の提唱モデルで、業界標準ではありません。レベルの線引き(特に L4 スキルと L5 サブエージェントの境)は道具立てによって曖昧になるし、L6.5 のような中間も現実には混ざります。それでも、「なぜ同じ指示が効いたり効かなかったりするのか」をこれほど一刀両断に説明する物差しを、私は他に知りません。
競争の重心がモデルから harness に移った、という話は何度も聞きます。でもその harness を「どのチャンネルに、どの制約を乗せるか」という解像度で語れる人は、まだ多くない。あなたの CLAUDE.md が今 L いくつかを言えるようになるだけで、次に作り込むべき場所が一段はっきりするはずです。
参考
一次情報を優先して列挙します。
関連(harness とは何か、の補助線として):
- Components of a Coding Agent — Sebastian Raschka
- AIは平気でウソをつく。なのにClickHouseは百万行のC++を回す(AIウォッチ) ── L6「判定の壁」の現場版
この記事は「AIウォッチ」にも掲載しています。最先端AIを技術の中身まで読み解いています。