0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.263〜v2.1.265|サブエージェントと teammate で prompt cache が外れていた|毎日Changelog解説

0
Posted at

Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。

v2.1.265 で、resume したサブエージェントと agent teams の teammate で prompt cache が外れていたバグが直りました。後続ターンで prefix が変わっていたので、ターンを重ねるほど、本来キャッシュで済む入力を通常単価で処理していました。v2.1.263 の changelog は「Bug fixes and reliability improvements」の 1 行のみで、個別の変更はすべて v2.1.265 の分。

  1. サブエージェントと teammate の prompt cache - resume 後や 2 ターン目以降に prefix が変わり、API がキャッシュを再利用できなくなっていた (v2.1.265)
  2. --plugin-dir に親フォルダを渡せる - manifest を持つ子フォルダを全部読み込み、実行中の追加・削除も拾う (v2.1.265)
  3. -p と Agent SDK で cd が持続 - ユーザーメッセージのたびに作業ディレクトリが起動時の場所へ戻っていた (v2.1.265)
  4. MCP の http 設定が旧 SSE サーバーに繋がる - HTTP+SSE しか話さないサーバーへ SSE でフォールバックするようになった (v2.1.265)

サブエージェントと teammate で prompt cache が外れていた

prompt cache は prefix の完全一致で効きます。 入力は tools、system prompt、messages の順に並び、先頭から一致した部分だけを API がキャッシュから読む。1 バイトでも変わると、そこから後ろは全部通常単価に戻ります。API 課金の場合、cache read は通常入力より最大 90% 安いので、外れた分はその差額がそのまま請求に乗る。

Fixed resuming a foreground-spawned subagent changing its tool list and system prompt prefix, which broke prompt-cache reuse for that agent

Fixed agent teammates and resumed subagents moving SubagentStart hook context and preloaded skills out of the prompt prefix on later turns, which broke prompt-cache reuse

前者は resume したサブエージェントの話。foreground で起動した subagent を後から resume すると、ツール一覧と system prompt の先頭が起動時と別物になっていた。ツール一覧は入力の先頭に並ぶので、resume 直後のリクエストは先頭から全部キャッシュ外れになります。

後者は agent teams の teammate と、resume した subagent の両方に当たります。SubagentStart hook が渡した context と preload した skill は、1 ターン目には prefix の中にある。それが 2 ターン目以降で prefix の外へ動いていたので、その位置から後ろが毎ターン読み直しになっていた。

v2.1.265 の changelog が名指ししているのは subagent と teammate で、メインセッションの prefix には触れていません。

--plugin-dir に親フォルダを渡すと子フォルダ単位で読み込む

claude --plugin-dir ./plugins
plugins/
├── formatter/   # manifest あり: 読み込む
├── reviewer/    # manifest あり: 読み込む
└── drafts/      # manifest なし: 無視

v2.1.265 から、--plugin-dir に渡した先が単体のプラグインでなくても動きます。子フォルダのうち manifest を持つものを Claude Code がそれぞれプラグインとして読み込み、起動中に子フォルダを足したり消したりしても拾う。

バックスラッシュを含むプラグインのパスが、macOS と Linux で symlink の封じ込めチェックをすり抜けていました (v2.1.265 で修正)。名前が .. で始まるディレクトリを「プラグインルートの外」と誤判定して拒否する問題も同じ版で消えています。symlink ループなどで OS が検査できないコンポーネントフォルダは、黙って飛ばす代わりに /plugin にエラーコード付きで出る。

-p と Agent SDK の cd が次のターンまで残る

-p に stream-json で入力を流すセッション、Agent SDK、cloud セッションでは、ユーザーメッセージが届くたびに shell の作業ディレクトリが起動時の場所へ戻っていました。v2.1.265 からは、前のターンで cd した先を Claude Code がそのまま次のターンに引き継ぐ。

同じ非対話まわりで、--bg のセッションを idle タイムアウト直前に届いたメッセージの処理中に Claude Code が retire してしまう問題も直っています。

表で拾う残りの変更

対象 v2.1.265 での変更
MCP の http サーバー 旧 HTTP+SSE しか話さないサーバーに SSE でフォールバック接続。今まで一度も繋がらなかった
リモート MCP の OAuth 実際にサインインするまで OAuth クライアントを登録しない
ディスクに保存するツール結果 上限 1 GB。打ち切った場合は会話内のプレビューにその旨が出る
2 キーのショートカット 2 キー目の待ち時間が 1 秒から 3 秒に。tmux 内で黙って消えていたのが、タイムアウト時は通知を出す
--worktree の起動 大規模リポジトリで checkout を並列化 (git 2.32 以上)
/model opusplan[1m] 「Model not found」で弾かれていたのを修正
Windows の AppContainer / 制限トークン sandbox Read・Write・Edit が全ファイルを拒否していたのを修正
VS Code 拡張 非アクティブなセッションを自動アーカイブ。設定「Archive inactive sessions」、既定 14 日

Claude Desktop と Cowork が Claude apps gateway 経由で送るテレメトリに user.emailuser.groups が加わり、ターミナルセッションと同じ項目になりました (v2.1.265)。managed settings に forceLoginGatewayUrl があるマシンは起動時点からゲートウェイセッションになり、Claude Code は残っていた claude.ai のログインや API キーを使いません。

今回の 2 版を通して

v2.1.263 の changelog は定型 1 行で、v2.1.265 は 50 項目のうち 31 項目が Fixed です。新機能の追加は --plugin-dir のフォルダ対応、ツール結果の 1 GB 上限、VS Code 拡張の自動アーカイブ、テレメトリ項目の追加で、修正は resume・非対話セッション・プラグインのパス判定に寄っている。prompt cache の修正が効くのは、agent teams の teammate と resume した subagent を使う構成です。

前回: Claude Code v2.1.260〜v2.1.261|1 版で撤回された Read() deny の Bash 適用|毎日Changelog解説

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?