---
title: "追わない技術 第4回：サブエージェントを使わない技術"
author: garplab
publisher: TypingTube
license: CC BY 4.0
license_url: https://creativecommons.org/licenses/by/4.0/
license_scope: 「CC BY 4.0」の印から始まる節（仕組み・検証手順・コード）。印の無い本文は著作権を留保
canonical: https://typing-tube.net/articles/owanai-04-no-subagent
series: "追わない技術"
language: ja
---


今回は、**本体で終わる仕事を、別の作業者に任せる**話です。ここでいう作業者とは、いまの会話とは別に立ち上がって、指示された範囲だけをやって報告を返してくる相手のことです。前回は、同じ課題を高い側と安い側の両方へ渡して、落ちた差だけを仕組みにしました。⚠️ **あれは「誰にやらせるか」の話**で、今回は**「自分でやるか、渡すか」**の話になります。

⭐ 私はこの機能をよく使っています。**手元の記録では、342 体に仕事を渡していました。** ⚠️⚠️ だから今回は「使うな」ではありません。**渡した 342 体ぶんの記録を数え直したら、渡してよかった仕事と、渡さないほうが安かった仕事の線がはっきり出た** —— その線の話です。

まず一つ思い出してみてください。あなたが最後に仕事を任せたとき、**任せた相手は、あなたがそれまでに読んだものを持っていましたか。** ⚠️ 持っていないなら、その前提は**もう一度どこかから読み直されています。** 誰が払っているのか、という話です。

## 342 体に渡して、1 体あたり本体 16 手ぶんを払っていました

記録の側から数えました。⚠️ **新しく実験は回していません** —— 過去のセッション 46 本と、そこから起動された 342 体の記録が、そのまま残っていたからです。

⭐ 数え方の単位を先に決めます。ここで数えるのは **「新しく読み込ませた量」だけ**です。同じ文脈を続けて渡すとき、その大部分は**前に渡したものの使い回し**になります。使い回せた部分まで足すと、同じ文章を何十回も数えることになって桁が変わるので、**足すのは「今回はじめて読み込ませた量」だけ**にしました。

| | 新しく読み込ませた量（中央値） |
|---|---|
| 本体の 1 手 | **1,593** |
| 渡した 1 体の 1 手目 | **6,340**（本体の 4.0 倍） |
| 渡した 1 体ぶんの合計 | **25,390**（本体 **16 手ぶん**） |

⚠️⚠️ **1 体渡すと、本体で 16 手進むのと同じだけ、新しく読み込ませることになります。** ⭐ そして渡した 1 体は、中央値で **8 往復**して帰ってきました。⚠️ **8 往復ぶんの仕事に、16 手ぶんの値段が付いている**わけです。

⭐⭐ 往復の数をそろえて比べると、比はもっと素直に出ます。

| | 1 往復あたり、新しく読み込ませた量 |
|---|---|
| 本体 | **1,593** |
| 渡した 1 体 | **3,083** |

⭐ **1.9 倍です。** ⚠️ 同じ回数だけ道具を叩いて、同じだけ考えたとしても、**渡すと約 2 倍**になります。

## 差が出ている場所は、1 か所しかありません

なぜ 2 倍になるのか。⭐ **理由は 1 つだけです。渡した相手は、本体がそれまでに積み上げたものを持っていません。**

同じ記録から、**「使い回せた量」**のほうを出すと、そこが直接見えます。

| | 1 手で使い回せた量（中央値） |
|---|---|
| 本体 | **267,532** |
| 渡した 1 体の 1 手目 | **21,849** |

⚠️⚠️ **12 分の 1 です。** 本体は 1 手ごとに 26 万トークンぶんを使い回しながら進んでいて、**新しく読ませているのは 1,593 だけ**でした。割合にすると **99.1%** が使い回しです。⭐ 渡した側も、往復を重ねれば自分の文脈が積み上がるので **95.3%** まで上がります。⚠️ **ただし 1 手目だけは、積み上がるものがありません。**

⭐⭐ ここが「お得」と「速い」の両方を説明します。**別々の仕組みではなく、同じ 1 つです。**

```mermaid
flowchart TD
  A["本体が積み上げた前提"] --> B["本体で続ける<br/>⭐ 前提はもう乗っている<br/>足すのは差分だけ"]
  A -.->|"引き継がれない"| C["渡した 1 体<br/>⚠️ 前提を集め直す<br/>1 手目に 4 倍"]
  B --> D["1 往復 1,593"]
  C --> E["1 往復 3,083"]
```

## 「前提の再利用がまったくない」は、言い過ぎでした

⚠️⚠️ ここは、私が数える前に立てていた説明が**外れた**ところなので、そのまま書きます。

私は「渡した相手は新しい会話だから、**前の使い回しは一切効かない**」と思っていました。⭐ それが正しいなら、**1 手目の使い回し量はゼロ**になるはずです。

    渡した 1 体の 1 手目が、使い回しゼロだったもの: 342 体中 74 体（22%）

⚠️ **8 割近くは、ゼロではありませんでした。** ⭐ 割ってみると理由が出ます。**まとめて複数を起動したとき、最初に動き出した 1 体と、そのあとに続いた体で違いました。**

| | 1 手目に使い回せた量（中央値） | 使い回しゼロだった割合 |
|---|---|---|
| **1 体だけ出したとき**（90 体） | 16,421 | 29% |
| まとめて出して、**最初に動いた 1 体**（74 体） | **3,183** | **50%** |
| その**あとに続いた体**（178 体） | **24,542** | **6%** |

⚠️ 真ん中の **74 体**は、上の「使い回しゼロが 342 体中 74 体」とは**別物**です（⭐ 数が揃ったのは偶然で、内訳は 26 + 37 + 11 = 74）。⚠️ 真ん中と下で **8 倍**の差です。⭐ **順番は「発注した順」ではなく「実際に動き出した順」で採ります** —— まとめて出した相手には発注の順序がないので、記録のファイル名順で並べると**この差は消えます**（24,538 と 24,540 になります）。

⭐⭐⭐ **作業者どうしは「頭」を共有しています。** どの作業者にも同じ説明書きが最初に渡るので、**あとに続いた体は、最初の 1 体が読み込ませたその部分に乗れます。** ⚠️ だから正確な言い方はこうなります ——

> ⭐⭐ **渡すことで捨てているのは「本体がそれまでに積み上げた文脈」であって、共通の頭ではありません。**

⚠️ この訂正は、値段の向きを変えません（**1 手目に 4 倍払う**のは変わっていません）。⭐ ただし **あとに続いた体が安くなる**ので、**この続きは次回の並列の話に効きます。**

## 速さのほうも、同じ理由で遅くなっていました

⭐ 時間も同じ記録から出ます。

| | 秒（中央値） |
|---|---|
| 本体の 1 手（道具の結果が返ってから、次に喋り出すまで） | **6.7** |
| 渡した 1 体が、最初に喋り出すまで | **11.4** |
| 渡した 1 体が、**終わるまで** | **109.6** |

⚠️ **最初の一言までで 1.7 倍、終わるまでで 16 倍**です。⭐ 16 倍という数は、値段のほうで出た「16 手ぶん」と別々に出てきた数ですが、**同じことを別の単位で見ているだけ**です。読み込ませる量が増えれば、それを読む時間も増えます。

⚠️⚠️ ここで 1 つ、**測り間違いを 1 度やっています**。最初、私は「終わり」を**本体の側に結果が返ってきた時刻**で採りました。すると「**返るまで 1.6 秒**」という数が出ました。⭐ **最初の一言（3.6 秒）より短い**のです（⚠️ この 3.6 秒は**そのとき最初に出た数**で、上の表の 11.4 秒は採り直した後です）。⚠️ **背景で走らせた作業者は、発注した直後に「受け付けました」だけを返します。** それを終わりと数えていました。⭐ **終わりは、渡した側の最後の発言で採り直しています。**

## 逆向きの条件：本体に積まれないこと自体が、得になります

⚠️ ここまでは「渡すと高い」の側だけです。⭐⭐ **同じ記録から、逆向きの条件も出ます。**

| | 中央値 |
|---|---|
| 渡した 1 体が、そのあいだに扱った総量 | **288,318** |
| その結果として、**本体に足された量** | **3,244** |

⭐⭐⭐ **89 分の 1 です。** 渡した相手は 28 万トークンぶんを読んで、本体には 3 千ぶんしか置いていきません。

⚠️⚠️ **ここが決定的なところ**です。**本体で同じ読み取りをやると、読んだものは本体に積まれます。** そして本体の文脈は、**そのあとの全部の手で使い回されます** —— 使い回しは安いですが、ゼロではありません。⭐ **本体で 30 ファイル読むと、そのセッションが終わるまで、毎手その 30 ファイルを抱えて進むことになります。**

⭐⭐ だから損得は、**その仕事の重さでは決まりません。そのあと本体が何手続くかで決まります。**

```mermaid
flowchart TD
  A{"その前提を<br/>本体はもう持っているか"} -- "持っている" --> B["⚠️ 渡さない<br/>渡すと 1 手目に 4 倍払って<br/>同じものを集め直す"]
  A -- "持っていない" --> C{"読んだものを<br/>そのあとも使うか"}
  C -- "使う" --> D["⚠️ 本体で読む<br/>渡すと報告しか残らない"]
  C -- "使わない" --> E["⭐ 渡す<br/>28 万読んで 3 千しか置いていかない"]
```

## 原理：持っているものは渡さない、持っていないものだけ渡す

⭐⭐ ここまでの数字を 1 つにまとめます。

> ⭐⭐⭐ **本体がすでに持っている前提で足りる仕事は、渡さない。本体が持っていないものを集める仕事だけ、渡す。**

⚠️⚠️ **これは「使うな」という話ではありません。使う場所が決まっている、という話です。** ⭐ 実際、私はこの機能を捨てていません。**捨てたのは「本体で 8 手で終わる調べものを、念のため渡す」ほうだけ**です。

⭐ 判断の線は、上の表 2 つから引けます。

- **本体がもう読んでいるものを、もう一度読ませる仕事** —— ⚠️ 渡すと、1 手目に 4 倍払って、本体が持っているものを集め直させることになります
- **本体がまだ読んでいない、大量の読み取り** —— ⭐ 渡すと、28 万ぶんを読んで報告 3 千ぶんだけが返ります。**本体は太りません**
- **読んだ中身を、そのあと本体が何度も参照する仕事** —— ⚠️⚠️ **渡してはいけません。** 報告しか返らないので、**参照するたびに本体が読み直す**ことになります

## 検証手順: 渡す前に、本体がその前提を持っているかを数える

**前提**

- 作業者を起動できる環境があり、**その記録（読み込ませた量・使い回した量・時刻）が残っていること**。⚠️⚠️ 残っていないなら、この手順は使えません。**推測では符号が変わります**（私は 1 度、終わりの時刻を取り違えて、速さの向きを逆に出しました）
- ⚠️ 数えるのは **「新しく読み込ませた量」**だけ。使い回せた量を足すと、同じ文脈を何度も数えて桁が変わります
- ⚠️ 1 回の記録では決まりません。**同じ種類の仕事を、複数回ぶん**まとめて見ます

**所要時間**: 30 分（記録が手元にある場合。記録を残す設定から始めるなら、まず 1 日ぶん貯めるところから）

**手順**

1. 直近の記録から、**渡した相手 1 体ぶんの「新しく読み込ませた量」の合計**を出します
2. 同じ記録から、**本体の 1 手あたりの「新しく読み込ませた量」**を出します
3. 1 を 2 で割ります。⭐ これが「**1 体渡すと本体の何手ぶんか**」です
4. 渡した相手が実際に**何往復したか**を数えます。⚠️ **3 と 4 を比べます** —— 往復の数より手数のほうが大きければ、そのぶんが渡したことの上乗せです
5. **渡した相手が扱った総量**と、**その結果として本体に足された量**を出します。⭐ 比が大きいほど、渡す価値のあった仕事です
6. 5 の比が小さかった仕事を並べ、**「本体がその前提をもう持っていたか」**を 1 件ずつ当てます

**合格条件**（すべて満たすこと）

- 手順 3 の数が**出ている**（記録が無く推測になったなら、この手順は成立していません）
- 手順 4 で、**往復の数と手数の差が説明できる**（説明できないなら、単位を取り違えています）
- 手順 6 で並べた仕事のうち、**「本体がもう持っていた」に当たるものが 1 件以上ある**。⚠️ 0 件なら、渡し方はすでに正しいので、この回の話は要りません

**合格しなかったとき**

- **1 体ぶんの量が、本体 1 手ぶんとほぼ同じ** —— ⚠️ 使い回せた量まで足しています。**足すのは新しく読み込ませたぶんだけ**です
- **終わりの時刻が、始まりより前になる / 最初の一言より短い** —— ⚠️⚠️ **受け付けの返事を終わりと数えています。** 渡した側の最後の発言で採り直してください
- **同時に起動したはずの相手が、全部「1 体目」になる** —— ⚠️ 発注の時刻で束ねています。**同じ 1 回の発言でまとめて出したかどうか**で束ね直してください
- **本体に足された量が、渡した相手の扱った量とほぼ同じ** —— ⭐ それは報告が長すぎます。**渡す意味は、読んだものを持ち帰らないこと**のほうにあります

**後始末**

- 集計に使った中間ファイルを削除します。⚠️ **記録そのものは消さないでください** —— 消すと、次に数え直すときの母数が失われます
- ⚠️ 数えた結果は**日付つきで残します**。⭐ 記録は増え続けるので、**同じ道具を明日走らせると数が動きます**

## 注意: この数字が言えないこと

⚠️⚠️ **これは統制された実験ではありません。** 同じ仕事を「本体でやった場合」と「渡した場合」で並べて測ったのではなく、**実際に渡したもの 342 件を後から数え直しただけ**です。

⚠️ だから、**選ばれ方の偏りが残っています。** 渡した仕事は「重そうだから渡した」ものばかりで、**本体で軽く済んだ仕事は、そもそもこの 342 件に入っていません。** ⭐ この偏りは、**「1 体 = 16 手ぶん」を実際より大きく見せる向き**に効きます。

⭐⭐ **偏りの影響を受けない数が 2 つあります。**

1. **1 往復あたり 1.9 倍** —— ⭐ 往復の数をそろえてあるので、仕事の重さが揃っていなくても比較になります
2. **1 手目に使い回せた量が 12 分の 1** —— ⭐⭐ **これは仕事の中身と無関係**です。渡した相手が本体の文脈を持っていないことは、何を頼んだかによりません

⚠️ 逆に、**「16 手ぶん」と「16 倍」は、そのままでは持ち出せません。** ⭐ 使えるのは、**自分の手元で同じ数え方をしたときの、自分の数**です。

⚠️ もう 1 つ。**この数はモデルの選び方でも動きます。** 渡した相手に安い側を使えば、同じ量を読み込ませても値段は下がります。⭐ ただし**読み込ませる量そのものは変わりません** —— **前提を集め直すという仕事は、誰にやらせても発生します。**

## 渡さなくなったもの

- ⭐ **本体がもう読んだファイルを、もう一度読ませるのをやめました。** ⚠️ 渡すと、1 手目に 4 倍払って、こちらが持っているものを集め直させることになります
- ⭐⭐ **「念のため並行で調べさせる」のをやめました。** ⚠️ 念のためで渡した相手も、1 体は 1 体ぶん読み込ませます。**本体 16 手ぶんの念のため**です
- ⚠️ **読んだ中身をそのあと使う仕事を、渡すのをやめました。** ⭐ 返ってくるのは報告だけなので、**参照のたびに本体が読み直す**ことになります
- ⭐ **渡すのをやめていない仕事もあります** —— **本体がまだ読んでいない、大量で、読んだ中身を持ち帰らなくていい調べもの**です。⚠️⚠️ **28 万読んで 3 千しか置いていかないのは、本体では絶対にできません**

任せたほうが速い、という判断は、たいてい正しく見えます。⚠️ **こちらが手を止めずに済むからです。** ⭐⭐ **ただ、任された側が最初にやっているのは、こちらがすでに読んだものを読み直すことでした。**

---

次回は「エージェントチームを使わない技術」。**私は、作業者どうしに話をさせるのをやめました。**割り込みは 1 度で終わらず、以後ずっと両方の履歴に残り続けるからです。
