今回は、本体で終わる仕事を、別の作業者に任せる話です。ここでいう作業者とは、いまの会話とは別に立ち上がって、指示された範囲だけをやって報告を返してくる相手のことです。前回は、同じ課題を高い側と安い側の両方へ渡して、落ちた差だけを仕組みにしました。⚠️ あれは「誰にやらせるか」の話で、今回は「自分でやるか、渡すか」の話になります。
⭐ 私はこの機能をよく使っています。手元の記録では、342 体に仕事を渡していました。 ⚠️⚠️ だから今回は「使うな」ではありません。渡した 342 体ぶんの記録を数え直したら、渡してよかった仕事と、渡さないほうが安かった仕事の線がはっきり出た —— その線の話です。
まず一つ思い出してみてください。あなたが最後に仕事を任せたとき、任せた相手は、あなたがそれまでに読んだものを持っていましたか。 ⚠️ 持っていないなら、その前提はもう一度どこかから読み直されています。 誰が払っているのか、という話です。
CC BY 4.0
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 つです。
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 ファイルを抱えて進むことになります。
⭐⭐ だから損得は、その仕事の重さでは決まりません。そのあと本体が何手続くかで決まります。
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 手あたりの「新しく読み込ませた量」を出します
- 1 を 2 で割ります。⭐ これが「1 体渡すと本体の何手ぶんか」です
- 渡した相手が実際に何往復したかを数えます。⚠️ 3 と 4 を比べます —— 往復の数より手数のほうが大きければ、そのぶんが渡したことの上乗せです
- 渡した相手が扱った総量と、その結果として本体に足された量を出します。⭐ 比が大きいほど、渡す価値のあった仕事です
- 5 の比が小さかった仕事を並べ、「本体がその前提をもう持っていたか」を 1 件ずつ当てます
合格条件(すべて満たすこと)
- 手順 3 の数が出ている(記録が無く推測になったなら、この手順は成立していません)
- 手順 4 で、往復の数と手数の差が説明できる(説明できないなら、単位を取り違えています)
- 手順 6 で並べた仕事のうち、「本体がもう持っていた」に当たるものが 1 件以上ある。⚠️ 0 件なら、渡し方はすでに正しいので、この回の話は要りません
合格しなかったとき
- 1 体ぶんの量が、本体 1 手ぶんとほぼ同じ —— ⚠️ 使い回せた量まで足しています。足すのは新しく読み込ませたぶんだけです
- 終わりの時刻が、始まりより前になる / 最初の一言より短い —— ⚠️⚠️ 受け付けの返事を終わりと数えています。 渡した側の最後の発言で採り直してください
- 同時に起動したはずの相手が、全部「1 体目」になる —— ⚠️ 発注の時刻で束ねています。同じ 1 回の発言でまとめて出したかどうかで束ね直してください
- 本体に足された量が、渡した相手の扱った量とほぼ同じ —— ⭐ それは報告が長すぎます。渡す意味は、読んだものを持ち帰らないことのほうにあります
後始末
- 集計に使った中間ファイルを削除します。⚠️ 記録そのものは消さないでください —— 消すと、次に数え直すときの母数が失われます
- ⚠️ 数えた結果は日付つきで残します。⭐ 記録は増え続けるので、同じ道具を明日走らせると数が動きます
注意: この数字が言えないこと
⚠️⚠️ これは統制された実験ではありません。 同じ仕事を「本体でやった場合」と「渡した場合」で並べて測ったのではなく、実際に渡したもの 342 件を後から数え直しただけです。
⚠️ だから、選ばれ方の偏りが残っています。 渡した仕事は「重そうだから渡した」ものばかりで、本体で軽く済んだ仕事は、そもそもこの 342 件に入っていません。 ⭐ この偏りは、「1 体 = 16 手ぶん」を実際より大きく見せる向きに効きます。
⭐⭐ 偏りの影響を受けない数が 2 つあります。
- 1 往復あたり 1.9 倍 —— ⭐ 往復の数をそろえてあるので、仕事の重さが揃っていなくても比較になります
- 1 手目に使い回せた量が 12 分の 1 —— ⭐⭐ これは仕事の中身と無関係です。渡した相手が本体の文脈を持っていないことは、何を頼んだかによりません
⚠️ 逆に、「16 手ぶん」と「16 倍」は、そのままでは持ち出せません。 ⭐ 使えるのは、自分の手元で同じ数え方をしたときの、自分の数です。
⚠️ もう 1 つ。この数はモデルの選び方でも動きます。 渡した相手に安い側を使えば、同じ量を読み込ませても値段は下がります。⭐ ただし読み込ませる量そのものは変わりません —— 前提を集め直すという仕事は、誰にやらせても発生します。
CC BY 4.0 はここまで
渡さなくなったもの
- ⭐ 本体がもう読んだファイルを、もう一度読ませるのをやめました。 ⚠️ 渡すと、1 手目に 4 倍払って、こちらが持っているものを集め直させることになります
- ⭐⭐ 「念のため並行で調べさせる」のをやめました。 ⚠️ 念のためで渡した相手も、1 体は 1 体ぶん読み込ませます。本体 16 手ぶんの念のためです
- ⚠️ 読んだ中身をそのあと使う仕事を、渡すのをやめました。 ⭐ 返ってくるのは報告だけなので、参照のたびに本体が読み直すことになります
- ⭐ 渡すのをやめていない仕事もあります —— 本体がまだ読んでいない、大量で、読んだ中身を持ち帰らなくていい調べものです。⚠️⚠️ 28 万読んで 3 千しか置いていかないのは、本体では絶対にできません
任せたほうが速い、という判断は、たいてい正しく見えます。⚠️ こちらが手を止めずに済むからです。 ⭐⭐ ただ、任された側が最初にやっているのは、こちらがすでに読んだものを読み直すことでした。
次回は「エージェントチームを使わない技術」。私は、作業者どうしに話をさせるのをやめました。割り込みは 1 度で終わらず、以後ずっと両方の履歴に残り続けるからです。