Claude Cowork を社内AXに使っている私の実践ログです。社内固有名・個人名は伏せています。
「とりあえずサブエージェントに投げる」を3週間続けて、月次のコスト通知を見た瞬間、椅子から転げ落ちそうになった。前月比2.4倍。
正直しんどい。
私はそこから本気でサブエージェントの運用を見直して、結局「使う日」と「使わない日」を切り分けるシンプルな4基準に落ち着いた。これがその記録です。
何が問題だったのか
最初は単純に喜んでいた。Claude Code でサブエージェント(Task tool)を呼ぶと、自分の文脈を汚さずに別の作業を並走できる。リサーチ、コード探索、PRレビュー、何でも投げた。
ただ、慣れてくると見えてきたのが3つの落とし穴。
- トークン消費の二重計上 ── 親の文脈には「結果」だけが返ってくるので軽そうに見えるが、子は子で独立した文脈を持っていて、長い指示を渡すと指示文ごと毎回課金される。
- 同じ作業を3回やる現象 ── 「同じ調べ物を別エージェントに3回頼んだ」あるある。子は親の記憶を持っていない、当たり前なんだけど、これ毎回やられると地味に効く。
- 判断の丸投げ問題 ── 「リサーチして結論を出して」と投げると、子が勝手に方針を決めて帰ってくる。これが一番怖い。
うん、便利だからこそハマる。
私の判断:サブエージェントは「並列」と「孤立」のためだけに使う
結論から言うと、私は サブエージェントを「並列性」か「孤立性」のどちらかを取りに行く時だけ 使うことにした。それ以外は、面倒でも親の文脈で直接読み書きしたほうが安いし、判断のブレも少ない。
賛否あると思う。「いやそれ手作業の重さに戻ってない?」と言われたこともある。でも私はこっちのほうが結果としてアウトプットが速い、と感じている。
いや、というか正確には「速く出せた回数」が増えた、が近い。
4つの分岐基準(コピペで使えるチェックリスト)
ノートに貼ってある、本物のチェックリストをそのまま置きます。
[サブエージェントを呼ぶ前のチェックリスト]
( ) 1. 並列にやりたい作業が他に2つ以上ある?
→ No なら親で直接やる
( ) 2. 触るファイルが10個超え、または長い検索ログが返る?
→ No なら親で直接やる(短いログは親に置いた方が後で参照できる)
( ) 3. 子に渡す「最終判断の許可」を明示している?
→ 例: 「決めずに3案返してこい」「結論は私が出す」
( ) 4. 同じ調べ物を直近1時間で別エージェントに頼んでいない?
→ Yes なら結果ファイルを使い回す
4つ全部に「Yes/許可済み」が付かないなら、親でやる。これだけ。
ちなみにこの4番、私は outputs/_agent_cache/ という雑なフォルダを作って、子が返してきたレポートを日付名で全部置いてある。次に同じ問いが出たら、まずここを grep する。これ、地味に効く。
ハマったところ
私が3ヶ月で踏んだ地雷を、対処込みで残しておきます。
1. 「リサーチして結論まで出して」と投げた → 子が勝手にアーキを決めて帰ってきた
最初こうしようとして失敗した。子は良かれと思って結論を出すんだけど、こちらの暗黙の制約(既存スタックとの互換性とか)を知らないので、的外れな結論が3割混じる。
対処: 指示文に「結論は出さない、選択肢をN個・各trade-offつきで返せ」を明文化。
2. 子に「親が今やってる作業」を伝え忘れて、全く独立した解を返された
これは設計が悪い、私が悪い。
対処: 子へのプロンプトの冒頭に必ず「親はこの瞬間 X をやっている。ゴールは Y。あなたは Z を任されている」を書く。テンプレ化した。
3. 同じ依頼を別エージェントに3連投したら、3回別の答えが返ってきた
当たり前なんだけど、初回は「ばらつき」として面白く眺めていた。コスト見て笑えなくなった。
対処: 上の4番のキャッシュ運用。雑でもいい、ファイルに残す。
4. 子のレポートが2000行返ってきて、親に貼った瞬間に文脈が溢れた
これが意外な伏兵。
対処: 子に「最終出力は400字以内のサマリ + 詳細はファイルに書け」を必ず指定。ファイルパスだけ親に渡してもらう。
5. 「並列に3つ走らせよう」とやったら、3つとも同じ場所を編集して衝突した
これが一番痛かった。並列性を取りに行ったつもりが、ファイルロック相当の管理が無くて荒れた。やってよかった——とは正直言えない週でした。
対処: 並列で走らせる子には、最初に「触っていいパスのホワイトリスト」を必ず渡す。重なりそうな日は1本に直列化。
じゃあ「親で直接やる」って具体的に何
ここは聞かれる。私の中では3つだけ。
- Grep / Glob で自分でファイル特定 → Read で読む
- 軽い検索なら親の文脈に結果を置いて、そのまま判断に使う
- 「結論を出すための材料集め」は子に投げず、自分でやる(判断の根が親に残る)
結局、子に出していいのは「材料集めの広さ」や「長時間のコード走査」みたいな、捨ててもいい中間生成物を返してもらう仕事だけ、というのが私の現状の解釈です。
観点として:課題設計の話に少しだけ寄り道
私が日中見ている N限(新卒の実務試験型インターン)でも、似た議論がある。学生に「90分の課題で結論まで出してください」と渡すと、暗黙の制約を読み違えて的外れな解が混じる。対して「3案 + trade-off」と最初から書くと、評価する側もされる側も話が早い。
サブエージェントの設計と、人間の課題設計、構造が驚くほど近い。最近そう思っています。
まとめ
- サブエージェントは便利だが、何も考えずに使うとトークンが2-3倍になる(これ実体験)
- 私は「並列」か「孤立」のどちらかを取りに行く時だけ使うことにした
- 4基準のチェックリストで毎回判定、4つ揃わないなら親で直接やる
- 子に渡すプロンプトには必ず「親の状況」「許可されている判断の範囲」「出力形式」を書く
- 同じ調べ物の結果は雑でもいいからファイルに残す、これだけで再呼び出しが激減する
みなさんはサブエージェント、どう運用していますか? 「うちはこの基準で分けてる」「いやそもそも親一本でやってる」など、コメントで教えてください。「全部子に投げる派」の運用も気になっています。
Claude Cowork を社内AXの相棒として毎日使っているエンジニアの実践ログです。
私が日中見ている事業は「N限(Ngen)インターン」── 新卒の実務試験型(ワークサンプル型)インターンを企業に提供しています。AI時代の新卒採用に関心がある方は、下記からどうぞ。
- サービス概要(企業向け): https://ngen-intern.jp/company
- 使い方ガイド: https://ngen-intern.jp/company/guide
- お問い合わせ: https://ngen-intern.jp/contact
シリーズ: Claude Cowork で社内AXを回す