第15章 スケールの物語 — 暴走・コスト・コンテキスト限界と、実在エージェントの工夫(読み物)
📖 この章のゴール:あなたが作った小さなCLIエージェントが、Claude Code のような「本物」と地続きだと知る。規模が上がると現れる設計問題——暴走・コスト・コンテキスト限界・権限——と、実在のエージェントがそれにどう答えているかを、物語として体に入れる。
あなたのエージェントと、Claude Code は地続き
おつかれさまでした。あなたの手元には、ターミナルで動く、自分専用の小さなエージェントがあります。「このファイル直して」と頼めば、自分でファイルを読み、書き換え、コマンドを走らせ、危ない操作の前には「実行していい?」と聞いてくる。立派なものです。
ここで、ちょっと立ち止まって考えてみてください。あなたが毎日さわっている Claude Code と、いま作ったこのエージェント——この二つは、根っこのところでまったく同じです。
どちらも、電話の向こうの天才シェフ(LLM)に相談しながら、厨房の見習い(あなたのプログラム)が実際に手を動かす。能力は道具とループでできていて、考える→道具を使う→結果を見て、また考える、をぐるぐる回している。Claude Code が特別な魔法でできているわけではありません。あなたが第4章で書いた、あの for ループと同じ骨組みの上に立っています。
姉妹編のChatGPTクローンでは、最終章で「使う人が1万人に増えたら何が起きるか」を物語りました。Twitterクローンでは「フォロワー1億人問題」を語りました。小さなうちは見えなかった壁が、規模が大きくなった瞬間に立ちはだかる——という話です。
エージェントにも、よく似た壁があります。ただ、形が少しちがいます。おしゃべりAIの壁が「考えてもらう量」だったのに対し、手を動かすエージェントの壁は「自分で動き続けること」そのものから生まれます。考えるだけでなく、何度もループして、道具を使い、履歴をふくらませていく——その一歩一歩が、規模が上がると牙をむくのです。
おもしろいのは、この壁が、本物の Claude Code を作っている世界一のエンジニアたちが向き合っているものと、同じ問いだということ。規模はちがっても、悩みは地続きなのです。この章では、その壁を物語として見ていきましょう。
暴走とコスト — 止まらないループは、お金を燃やす
最初の壁は、第4章であなたが最初に出会ったもの——ループの暴走です。
思い出してください。エージェントループには、for (let step = 0; step < 10; step++) という上限を付けました。なぜ上限が要るのか。それは、AIが「もう終わり」と言わないかぎり、ループはいつまでも回り続けるからです。
たとえ話をしましょう。掃除を頼んだお手伝いさんが、部屋がきれいになったのに気づかず、同じ床を何度も何度も拭き続けている——そんな姿を想像してください。本人はまじめに働いているつもりです。でも、終わりどきが分からない。エージェントも同じで、道具を使った結果を見て「次はこうしよう」と考え続けるうちに、堂々めぐりに陥ることがあります。ファイルを読んでは書き、書いてはまた読み、ぐるぐる。
一人で試しているうちは、これは「あれ、止まらないな」で済みます。でも、ここにお金がからむと話が変わります。
ここで、エージェントならではのこわさが出てきます。LLMは、自分では何も覚えていません(ステートレス=毎回まっさら)。だからループのたびに、あなたのプログラムは「これまでのやりとりぜんぶ」——最初の指示も、読んだファイルの中身も、道具の結果も——を丸ごと渡し直しています。会話が続いて見えるのは、毎回まるごと再送しているからでした。
つまり、ループが1周まわるたびに、それまでの履歴が入力トークン(文章を細かく刻んだ“かけら”。料金とサイズの単位)として、もう一度課金されます。10周まわれば、最初の指示は10回ぶん数えられる。20周なら20回ぶん。ループが長引くほど、同じ前置きを何度も何度も買い直しているようなものなのです。
蛇口からポタッと落ちる1滴は、見えないくらいの量です。けれど、止まらないループが何十周も回り、それが何人ものユーザーで同時に起きれば——その水は、あっという間にお風呂をあふれさせる洪水になります。「賢い1回の返事」のコストは小さくても、「止まらない作業」のコストは、青天井に膨らんでいくのです。
だから、あなたが何気なく書いたループ上限は、ただの暴走防止ではありませんでした。それはコストの蛇口を締める栓でもあったのです。そして本物のエージェントも、同じ守りを持っています。Claude Code にも「ここまで来たら一度止まって人間に確かめる」という区切りがあり、使いすぎを防ぐために予算や上限の考え方が組み込まれています。第14章で見たコスト管理の話は、規模が上がると、こうして主役の座にせり出してくるのです。
コンテキスト戦争 — 履歴がふくらみすぎる
二つめの壁は、いちばんエージェントらしい悩みです。それは「視野(コンテキスト)が、どんどんふくらんでいく」という問題です。
コンテキストとは、作業中にAIが一度に見ている情報のこと——これまでのやりとり、読んだファイルの中身、道具の結果、ぜんぶです。第14章で、これがエージェントの「視野」だと学びました。視野が広いほど、AIは状況をよく分かった、賢い判断ができます。
でも、エージェントは作業をすればするほど、この視野に情報を積み増していきます。大きなファイルを読めば、その中身が丸ごと履歴に入る。コマンドを走らせれば、その長い出力も入る。ループを重ねるほど、かばんはパンパンにふくれていきます。
ここに、二重のジレンマがあります。一つは前の節で見たコスト——視野が広いほど毎回の再送が高くつく。もう一つは、もっと根本的な壁です。LLMが一度に見られる量には、上限があるのです。
たとえ話をしましょう。机の上に資料を広げて仕事をするとき、机の広さには限りがあります。新しい資料を次々に積み上げていくと、やがて机からあふれて、古い資料が下に埋もれたり、床に落ちたりする。エージェントの視野も同じで、際限なくふくらませることはできません。モデルが一度に読める量(数十万〜100万トークン規模)を超えると、もう入りきらないのです。
長い作業をするエージェントは、必ずこの壁にぶつかります。では、本物はどう乗り越えているのでしょう。答えは、第14章であなたが学んだ二つの道具——その延長線上にあります。
ひとつめは、自動の要約(コンパクション)です。机があふれそうになったら、古い資料を「これは要するにこういう話だった」と一枚のメモに圧縮して、場所を空ける。Claude Code は、会話が長くなって視野がいっぱいに近づくと、それまでのやりとりを自動でぎゅっと要約して、続きを進められるようにします。あなたが第14章で「古い会話をAI自身に短くまとめさせる」と作ったあの仕組みが、実在のエージェントでは「会話を自動で畳む機能」として動いているのです。
ふたつめは、もっと大胆な作戦——サブエージェントです。これは、重い調べものを、別の小さなエージェントに丸ごと任せてしまうやり方です。
たとえ話で言えば、こうです。あなたが料理長で、いま大事な一皿を仕上げているとします。そこへ「倉庫の奥にある特定の食材を、棚を全部ひっくり返してでも探してきて」という、時間のかかる雑用が割り込んできた。これを自分でやったら、料理の段取り(あなたの視野)が、倉庫を探し回った記憶でぐちゃぐちゃになってしまいます。
そこで、見習いを一人呼んで「これを探してきて。見つかったら、場所だけ教えて」と頼む。見習いは倉庫であれこれ苦労しますが、あなたのところに戻ってくるときには、その苦労話は持ち込まず、「3番の棚にありました」という結果だけを報告します。あなたの机(視野)は、散らからずに済む。
これがサブエージェントの正体です。重い調査やファイル探索を別のエージェントに投げ、自分はその結論だけを受け取る。探索の途中で読んだ何十ものファイルの中身は、サブエージェント側の視野で消費され、親のほうには返ってきません。こうして、本体の視野をきれいに保ったまま、大きな仕事をこなせるのです。Claude Code が裏側で別のエージェントに調べものを任せているのは、まさにこの「視野を散らかさない」ための工夫です。
要約で畳み、サブエージェントで切り離す。どちらも、「全部を一度に抱えない」という同じ思想から来ています。覚えさせすぎず、忘れさせすぎず、この綱引きの綱をちょうどいいところで握ること——それが、長く働くエージェントを作る人の腕前です。
権限と信頼 — どこまで自動でやらせるか
三つめの壁は、規模が上がるほど核心になっていくもの——信頼です。
第8章と第9章で、あなたは「許可」「人間の確認(human-in-the-loop)」「最小権限」「サンドボックス」を作りました。危ない操作の前に「実行していい?」と聞き、作業フォルダの外には出さず、取り消せるようにしておく。あのとき、それは「念のための安全策」に見えたかもしれません。
でも、エージェントをたくさん・長く・本気で使うようになると、これがいちばん難しい設計判断になります。問いはこうです——どこまで人間に確認させ、どこから自動で進ませるか。
考えてみてください。すべての操作で「これやっていい?」と聞かれたら、エージェントはちっとも自動化になりません。一歩ごとに人間が見張っているなら、自分でやったほうが速い。かといって、何も聞かずに全部自動でやらせたら——AIが暴走したり、悪い入力にだまされたり(間接プロンプトインジェクション。道具の結果に紛れこんだ「命令のような文章」を、AIがうっかり実行してしまう手口)した瞬間に、取り返しのつかないことが起きます。
この「便利さ」と「安全」の綱引きに、唯一の正解はありません。これは、サービスの性格と、任せる相手への信頼度によって決まる、設計の判断です。
たとえ話をしましょう。新しく雇った人に、いきなり金庫の鍵と会社の印鑑を渡す人はいません。最初は、簡単で取り返しのつく仕事から任せ、様子を見ながら、少しずつ任せる範囲を広げていきます。エージェントへの権限も、まったく同じ。信頼は、一足飛びには渡さない。
本物のエージェントは、この綱引きに、あなたが作った部品の延長で答えています。
- 許可の確認——危ない操作の前に止まって人間にうかがう。Claude Code が
rmのようなコマンドの前に確認を出すのは、あなたのaskPermissionと同じ思想です。 - サンドボックス——動ける範囲を、あらかじめ囲っておく。外には出られないように作っておけば、暴走しても被害がその中に収まります。
CLAUDE.md(システムプロンプト)——「このプロジェクトではこう振る舞え」という性格と規範を、最初に渡しておく。第10章で作ったあのしつけが、本物では「ルールを書いておくファイル」として働いています。- 監査ログ——誰が・いつ・何をしたかを記録に残す。あとから「何が起きたか」をたどれるようにしておく。規模が上がるほど、この「あとで確かめられる」ことが効いてきます。
権限の設計は、鍵をかけて終わりではありません。「どこまで自動でやらせ、どこで人間が握るか」を決め続ける、終わりのないつきあいなのです。
“速く”より“正しく” — 取り返しのつく設計
最後に、すべての土台にある考え方を、ひとつ。
エージェントは「手」を持っています。おしゃべりAIなら、まちがった返事をしても、読み手が「ちがうな」と思って終わりです。でもエージェントは、まちがったままファイルを書き換え、コマンドを走らせてしまう。手を持つということは、まちがいが現実に作用するということです。
だから、エージェントを作る人がいちばん大事にするのは、「速く動くこと」ではありません。「まちがえても、取り返しがつくこと」です。
たとえ話をしましょう。腕のいい料理人は、味見をせずに鍋いっぱいの料理を客に出したりしません。途中で味を見て、おかしければ直す。とんかつを揚げる前に、いきなり百枚揚げたりもしません。一枚試して、油の温度を確かめてから、本番に入ります。
エージェントの設計も同じです。あなたはすでに、その「取り返しのつく設計」の部品を持っています。
- テスト——書き換えたあと、テストを走らせて「壊れていないか」を確かめる。まちがいを、現実に作用する前につかまえる。
- レビュー——AIが作った変更を、人間の目で読んでから確定する。第12章で学んだ「AIに書かせて、自分の目で読む」あの態度です。
- git で戻せる——もし変なことになっても、
gitでひとつ前に巻き戻せる。取り消せるという安心が、思いきって任せることを可能にします。
「速く」は、あとからいくらでも追える。でも「正しく・戻せる」を最初に土台に置かなければ、規模が上がったとき、一回のまちがいですべてを失います。急がば回れ——手を持つAIにこそ、この古いことわざが効くのです。
この物語の学び
ここまでの話から、エージェントを作る人として覚えておくと一生役立つことが、にじみ出ています。
-
規模が変わると、設計が変わる。 一人で試しているうちは気にしなくていい暴走もコストもコンテキスト限界も、たくさん・長く使った瞬間に主役になります。それは失敗ではなく、エージェントが本気の仕事を任されるようになった証です。
-
早すぎる最適化を、あわてない。 一人で試している段階で、自動コンパクションやサブエージェントを最初から全部作りこむ必要はありません。まず、第4章の素直なループを動かす。壁は、規模が来てから、来たぶんだけ向き合えばいい。最初に複雑なしくみを作りこむと、コードが難しくなり、バグが増え、肝心の「いま動かしたいこと」が遅れます。
-
人間の確認をどこに置くかが、いちばんの設計判断。 どこまで自動でやらせ、どこで人間が握るか——便利さと安全の綱引きに、唯一の正解はありません。これはコードの問題ではなく、信頼の設計です。エージェント開発でいちばん頭を使うのは、たぶんここです。
-
あなたの小さなエージェントも、Claude Code と地続き。 暴走・コスト・コンテキスト・権限——本物のエージェントが向き合う問いは、形こそ大きくても、あなたが学んだものと同じです。自動コンパクションは第14章の要約、サブエージェントはコンテキストを散らかさない工夫、サンドボックスは第9章、
CLAUDE.mdは第10章。本物の工夫は、あなたが作った部品のまっすぐな延長線上にあります。
ことばメモ
- スケール:使う回数・量・時間が、何倍にも大きくなること。大きくなると、小さいうちは見えなかった壁(暴走・コスト・視野の限界)が現れる。
- コンパクション(自動圧縮・要約):会話の履歴がふくらみすぎないように、古いやりとりを短い要約に畳んで、視野の場所を空けること。Claude Code は視野がいっぱいに近づくと自動で行う。第14章の「要約」の実在版。
- サブエージェント:重い調べものやファイル探索を、別の小さなエージェントに丸ごと任せ、結果だけを受け取るやり方。途中で読んだ大量の情報を本体の視野に持ち込まないので、視野を散らからせずに大きな仕事ができる。
- 監査ログ:誰が・いつ・何をしたかを記録に残しておくこと。あとから「何が起きたか」をたどれるようにする備え。規模が上がるほど効いてくる。
- 取り返しのつく設計:まちがえても元に戻せるように作っておくこと。テスト・レビュー・git での巻き戻しがその柱。手を持つエージェントでは、速さより先に置くべき土台。
🚀 「それっぽく動く」の、その先へ — 自分で改良する(🔧)
ここまでで、あなたのエージェントは Claude Code “っぽく” 動くようになりました。でも、はじめに正直に書いたとおり——本物のように安定して・賢く動かすのは、ここからが本番です。精度や安定性は、ここから自分で上げていきます。やり切った今のあなたなら、もう自分で深掘りできます。次の沼(いい意味で)を置いておきます。
- 🧠 コンテキストエンジニアリング(context engineering):頭脳に 何を・どれだけ・どんな順で 渡すか、の設計。エージェントの賢さは、じつは「渡す情報の作り方」でほとんど決まります。第14章の続きとして、いちばん効くテーマ。
- 🔧 道具(tools)の作り込み:道具の説明文の書き方ひとつで、使われ方も精度も変わります。粒度・引数・エラーメッセージ・安全な境界を磨く(付録C・付録E が出発点)。
- 🔍 本物の Claude Code のしくみを観察する:サブエージェント、自動コンパクト、計画の立て方、権限モデル……実際の挙動をよく見て「なぜそうしているか」を考え、自分のエージェントに真似て取り込む。
- 📚 Anthropic の公式ドキュメントを読む:tool use・ストリーミング・プロンプトキャッシュ・エージェント設計などの一次情報にあたる(この教材自体、Anthropic の公式資料を土台に書いています)。一次情報を読めるようになると、伸びが変わります。
やり方は、この教材でずっとやってきたとおり。手元の Claude Code に「ここをこう良くしたい」と相談し、書かせて、自分の目で読んで、試す。 この「作っては試す」をぐるぐる回すことが、エージェントを“自分のもの”にする一番の近道です。完璧でなくていい。少しずつ賢くしていきましょう。
おわりに(ここから先へ)
ここまで読んでくれて、ありがとう。そして——この教材を最後までやり切ってくれて、おめでとうございます。
ふり返ってみましょう。あなたが歩いてきた道のりは、こうでした。
LLMと往復する → 道具(tools)を渡す → ループにする → ファイルを読む・書く・コマンドを走らせる → 「実行していい?」で守る → サンドボックスと最小権限 → システムプロンプトで性格を決める → スキルで段取りを型にする → 複数ステップの計画と、失敗からのやり直し → 考える様子を見せる → 長い作業の記憶 → そして今日、スケールの物語。
AIエージェントの骨組みを、ぐるりと一周したのです。あなたはもう、Claude Code を開いて「自分でファイルを読んでいるな」「ここで確認を挟んだな」「視野を圧縮したな」と、一つひとつの動きを自分の言葉で説明できるはずです。これは、本物のエージェントを作っている人たちと、同じ問いを通った証拠です。
では、次の一歩は何でしょう。それは——自分のエージェントに、もう一つ道具を足してみることです。
天気を調べる道具でも、メモを検索する道具でも、好きなサービスを呼ぶ道具でもいい。第3章で学んだ「道具メニューの書き方」と、第8章で学んだ「危ない操作には確認を挟む」を組み合わせれば、あなたのエージェントはどこまでも育ちます。そして、道具を後から差し込めるようにする共通プラグ——付録GのMCP——を覗いてみれば、世の中の道具を自分のエージェントにつなぐ世界が広がっています。
手が止まったら、付録A〜Gを頼ってください。APIキーの取り方、別のLLMへの乗り換え、ツール定義の書き方、用語辞典、安全チェックリスト、コスト管理、MCP——つまずきやすいところに、それぞれ手すりを用意してあります。そして困ったら、この教材でずっとやってきたように、AIに頼んで、書かせて、自分の目で読む。「ここが危ない、ここが安全」と判断できる目は、もうあなたにあります。
あなたの小さなエージェントは、もう Claude Code と地続きの場所に立っています。あとは、そこから歩き出すだけです。よいエージェント開発の旅を。いってらっしゃい。