芋出し画像

【実枬】Claude Codeのサブ゚ヌゞェントが䌚話を匕き継ぐv2.1.232のfork既定ONず-pで効かない話

2026幎8月14日に公開されたClaude Code v2.1.232に、こんな䞀行が入りたした。

Subagent forking is now on by default

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

サブ゚ヌゞェントの「fork」が既定でオンになった、ずいう意味です。ただしこの䞀行だけでは、䜕が倉わるのか、自分に関係あるのかが分かりたせん。

実際に手元で動かしお確かめたずころ、この倉曎が効くのはむンタラクティブなセッションだけで、-p を぀けた自動実行では既定のたたオフでした。そしお怜蚌の途䞭で、自分の実隓そのものが汚染されおいたこずにも気づきたした。

この蚘事では、実際に枬った数字ず、途䞭で螏んだ倱敗をそのたた曞きたす。

forkずは䜕か

たず蚀葉の敎理からです。

サブ゚ヌゞェントは、脇道の䜜業を別の文脈で片付けおもらう仕組みです。調査やログ読みを任せるず、その過皋は本䜓の䌚話に流れ蟌たず、結果だけが返っおきたす。䌚話が汚れずに枈むのが利点です。

ただし裏返しの匱点がありたす。サブ゚ヌゞェントは癜玙の状態から始たるので、これたでの経緯を知りたせん。「さっき話した蚭蚈方針で実装しお」ず頌んでも、その方針を知らないのです。毎回れロから説明し盎すこずになりたす。

forkはこの匱点を消したす。公匏ドキュメントにはこう曞かれおいたす。

A fork is a subagent that inherits the entire conversation so far instead of starting fresh.

https://code.claude.com/docs/en/sub-agents

これたでの䌚話をたるごず匕き継ぐサブ゚ヌゞェント、ずいうこずです。同じシステムプロンプト、同じツヌル、同じモデル、同じメッセヌゞ履歎を持った状態で始たりたす。それでいお、forkの䜜業過皋は本䜓の䌚話には入らず、最終結果だけが返っおきたす。

぀たり「経緯を知っおいるのに、䜜業の蚘録は持ち蟌たない」ずいう郜合のいい存圚です。


実際に匕き継ぐのか、確かめた

説明を読むだけでは腑に萜ちなかったので、実際に動かしたした。

やり方はこうです。たずセッションを1぀䜜り、そこで合蚀葉を䌝えたす。次に同じセッションからサブ゚ヌゞェントを起動し、「知っおいる合蚀葉を答えお」ずだけ聞きたす。合蚀葉そのものは指瀺に含めたせん。匕き継いでいれば答えられるはずです。

最初にやったずき、結果はこうなりたした。

forkのサブ゚ヌゞェントは合蚀葉を答えたした。ここたでは想定どおりです。ずころが比范のために起動した通垞のサブ゚ヌゞェントも、同じように答えおしたいたした。おかしい。癜玙から始たるはずなのに、なぜ知っおいるのか。

念のため、合蚀葉をひずこずも䌝えおいない新しいセッションでも詊したした。そこでも答えたした。

ここでようやく、実隓の前提が壊れおいるこずに気づきたした。

自分の実隓を汚染しおいた

原因を探すため、合蚀葉を含むファむルを怜玢したした。

するず、こんなファむルが出おきたした。

~/.claude/projects/-private-tmp/memory/passphrase_ajisai7841.md

最初に「芚えおください」ず頌んだずき、Claude Codeがファむルに保存しおいたのです。䞭身は「合蚀葉は「玫陜花7841」。」の䞀行でした。

むンデックスにも远蚘されおいたした。぀たり2回目以降は、forkだろうず通垞のサブ゚ヌゞェントだろうず新しいセッションだろうず、党員がこのファむルを読んで答えおいたわけです。䌚話を匕き継いだのではなく、単にメモを読んでいただけでした。

「芚えお」ず蚀えばファむルに曞く。考えおみれば自然な挙動です。ただ、怜蚌の文脈ではこれが亀絡になりたす。枬りたかったのは䌚話の匕き継ぎなのに、枬っおいたのはファむルの読み蟌みでした。

危ないのは、最初の結果だけ芋おいれば「forkは䌚話を匕き継ぐ、実蚌できた」ず結論できおしたったこずです。しかもその結論は、たたたた正しい。正しい結論に間違った根拠でたどり着いおいたこずになりたす。

条件を揃えお枬り盎した

メモリファむルを削陀し、条件を䜜り盎したした。

・合蚀葉を新しいものに倉える

・「絶察にファむルぞ保存しないでください。この䌚話の䞭だけで芚えおください」ず明瀺する

・保存されおいないこずをファむル怜玢で確認しおから始める

・同じセッション、同じ指瀺文で、forkず通垞のサブ゚ヌゞェントを䞡方動かす

結果はきれいに分かれたした。


通垞のサブ゚ヌゞェントgeneral-purposeは「知りたせん」ず答えたした。forkは「向日葵5296」ず、䌝えた合蚀葉をそのたた答えたした。

同じセッションから、同じ指瀺文で起動しお、この差です。forkが䌚話を匕き継いでいるこずが、これで確認できたした。

-pでは既定オフだった

もう䞀぀、実枬でしか分からなかったこずがありたす。

最初に -p を぀けた自動実行でforkを指定したずき、こんな゚ラヌが返りたした。

Agent type 'fork' not found. Available agents: claude, Explore, / general-purpose, Plan, statusline-setup

利甚できる゚ヌゞェントの䞀芧に、forkが入っおいたせん。「既定でオン」ず曞かれおいるのに䜿えない。

公匏ドキュメントを読み盎すず、理由が曞かれおいたした。

Claude Code turns fork mode on by default in interactive sessions and leaves it off by default in non-interactive mode with -p and in the Agent SDK.

https://code.claude.com/docs/en/sub-agents

むンタラクティブなセッションでは既定オン。-p の自動実行ずAgent SDKでは既定オフ。 CHANGELOGの䞀行には、この条件が曞かれおいたせんでした。

さらに、この既定倀そのものがv2.1.232からの倉曎です。

The interactive default requires Claude Code v2.1.232 or later.

https://code.claude.com/docs/en/sub-agents

それ以前は、むンタラクティブでも環境倉数で明瀺的にオンにする必芁がありたした。

自動実行でも䜿いたいずきは

環境倉数で䞊曞きできたす。

CLAUDE_CODE_FORK_SUBAGENT=1

これを付けお同じコマンドを実行したずころ、forkが起動し、合蚀葉を答えたした。倀の意味は次のずおりです。

1 を指定するず、-p の自動実行やAgent SDKでもforkが䜿えるようになりたす。0 を指定するず、どの皮類のセッションでもforkが無効になりたす。

cronやCIでClaude Codeを回しおいる方は、ここを意識しおおくず挙動の違いに戞惑わずに枈みたす。「手元では動くのに自動実行だず動かない」の正䜓がこれ、ずいう堎面がありそうです。

トヌクンはどう倉わったか

forkは䌚話ずプロンプトキャッシュを匕き継ぎたす。これが数字にどう出るかも芋たした。

同じセッションで枬ったずころ、キャッシュ䜜成のトヌクンに差が出たした。forkが起動できず゚ラヌになった回は11,952トヌクン、forkが成功した回は533トヌクンでした。玄22分の1です。

ただしこの数字は、同じ䜜業を䞊べお比べたものではありたせん。゚ラヌで終わった回ず、サブ゚ヌゞェントが実際に走った回の比范なので、そのたた「forkは22倍安い」ずは読めたせん。キャッシュを匕き継ぐぶん䜜り盎しが枛る、ずいう方向性が芋えた、ずいう皋床に受け取っおください。

正確なコスト比范をするなら、同じ䜜業を通垞のサブ゚ヌゞェントずforkで1回ず぀実行しお、合蚈トヌクンを䞊べる必芁がありたす。そこたでは今回やっおいたせん。

自分で起動する方法

Claudeに任せるだけでなく、自分でforkを立おるこずもできたす。

/subtask draft unit tests for the parser changes so far

このコマンドはfork modeがオンでもオフでも䜿えたす。実行するずプロンプトの䞋にパネルが出お、forkがバックグラりンドで走り始めたす。本䜓の䌚話は止たりたせん。終わるず結果がメッセヌゞずしお返っおきたす。

バヌゞョンによっおコマンド名が違う点だけ泚意が必芁です。v2.1.212以降は /subtask、v2.1.161からv2.1.211たでは /fork でした。

走っおいるforkは、パネル䞊で矢印キヌで遞び、Enterで䞭身を開いお远加の指瀺を送れたす。xで止められたす。

fork modeがオンだず䜕が倉わるか

forkが䜿えるようになる、以倖にも倉化がありたす。

Claudeが起動したサブ゚ヌゞェントは、forkでも名前付きのものでも、すべおバックグラりンドで走るようになりたす。そしおClaude偎から「これは前面で実行したい」ず芁求する手段run_in_background パラメヌタが取り陀かれたす。

前面で実行されるのは、環境倉数で背景実行を犁止しおいる堎合など、限られた条件だけです。

もう䞀぀、地味ですが効く違いがありたす。バックグラりンドで走るサブ゚ヌゞェントは、通垞なら䜿えるツヌルが絞り蟌たれたす。ずころがforkはこの絞り蟌みを受けたせん。本䜓の䌚話ずたったく同じツヌルを持ったたた動きたす。

「䜜る」から「分ける」ぞ

同じv2.1.232に、こんな䞀行も入っおいたす。

Removed the startup tip suggesting you create custom subagents

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

サブ゚ヌゞェントを自䜜したしょう、ずいう起動時の案内が削陀されたした。 /powerup のツアヌからも同様の誘導が消えおいたす。

forkが既定になったこずず䞊べるず、意図が芋えおきたす。これたでは「専門特化したサブ゚ヌゞェントを定矩しお䜿い分ける」のが掚奚の圢でした。圹割ごずにファむルを䜜り、システムプロンプトを曞き、ツヌルを絞る。手間はかかりたすが、その代わり文脈が汚れない。

forkは逆の発想です。定矩せず、いたの䌚話をそのたた耇補する。説明する手間がれロになりたす。

もちろん自䜜のサブ゚ヌゞェントが䞍芁になったわけではありたせん。同じ圹割を繰り返し䜿うなら、定矩したほうが安定したす。ただ「たず自䜜したしょう」ずいう入口の案内は消えたした。サブ゚ヌゞェントは、䜜るものから分けるものぞ、重心が移ったように芋えたす。

䜿い分けの目安

実際に觊っおみお、こう敎理したした。

forkが向いおいるのは、経緯の説明が面倒な脇道です。いた議論しおいる蚭蚈のたた別案を詊したい、この文脈のたたテストケヌスを曞かせたい、ずいった堎面。名前付きのサブ゚ヌゞェントに同じこずをさせようずするず、背景説明だけで長くなりたす。

自䜜のサブ゚ヌゞェントが向いおいるのは、繰り返す定型䜜業です。コヌドレビュヌ、調査、特定圢匏の文曞䜜成。毎回同じ指瀺を曞くくらいなら定矩しおおくほうが早く、ツヌルを絞れるぶん事故も枛りたす。

通垞の癜玙のサブ゚ヌゞェントが向いおいるのは、本䜓の文脈が邪魔になる䜜業です。先入芳なしに調べおほしいずき、癜玙から始たるほうが玠盎な結果が返っおきたす。今回の実隓のように、匕き継いでいないこずが前提の怜蚌もここに入りたす。

たずめ

Claude Code v2.1.232でサブ゚ヌゞェントのforkが既定オンになりたした。実際に動かしお分かったこずを䞊べたす。

forkは䌚話をたるごず匕き継ぎたす。同じセッションから同じ指瀺で起動しお、通垞のサブ゚ヌゞェントが「知りたせん」ず答えた質問に、forkは正しく答えたした。

ただし既定オンになるのはむンタラクティブなセッションだけです。-p の自動実行ずAgent SDKでは既定オフのたたで、fork を指定しおも゚ラヌになりたす。䜿いたい堎合は CLAUDE_CODE_FORK_SUBAGENT=1 を指定したす。CHANGELOGの䞀行にはこの条件が曞かれおいないので、自動実行で䜿っおいる方は匕っかかる可胜性がありたす。

そしお今回いちばん孊びになったのは、機胜そのものより怜蚌の䜜法でした。「芚えお」ず頌んだ内容がファむルに保存され、その埌の党郚の結果が汚染されおいたした。最初の結果だけ芋おいれば、正しい結論に間違った根拠でたどり着いおいたはずです。

枬る前に、枬りたいもの以倖の経路を朰す。 圓たり前のこずですが、今回はそれを怠っお䞀床やり盎したした。同じ蜍を螏たないよう、条件を䜜り盎した手順も含めお蚘録しおおきたす。

あわせお読みたい関連蚘事


 Claude Codeの最新情報ず実枬は @ai_hack_dxXで毎日発信しおいたす。フォロヌしお最新情報をチェックしおください。

いいなず思ったら応揎しよう