Skip to content

原文(日本語に翻訳)

エージェントチームで完了したチームメイトタスクがセッション状態からガベージコレクションされないメモリリークを修正しました。

原文(英語)

Fixed memory leak in agent teams where completed teammate tasks were never garbage collected from session state

概要

複数のエージェントが協力して作業する「エージェントチーム」機能において、完了したタスクのデータがメモリから解放されない問題が修正されました。長時間・多数のタスクをこなすエージェントチームセッションでは、この問題によりメモリ使用量が際限なく増加し続けていました。この修正により、長時間のマルチエージェントセッションがより安定して動作します。

基本的な使い方

この修正は自動的に適用されます。エージェントチームを使用する際に特別な設定は不要です。

bash
# エージェントチームを使用するセッション例
claude

# チームエージェントを呼び出し(タスクが完了後、メモリが解放される)
> @agent1 タスクAを実行して
> @agent2 タスクBを実行して
> @agent3 タスクCを実行して

# 長時間セッションでも安定して動作

実践例

ユースケース1: 大規模コードレビューセッション

複数のエージェントが分担してコードレビューを行う場合。

yaml
# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: "コードレビューを実行するエージェント"
model: claude-opus-4-6
---

指定されたファイルのコードレビューを実施し、問題点を報告してください。
bash
claude

# 複数のファイルを並行してレビュー
> @code-reviewer src/auth.ts をレビューして
> @code-reviewer src/payment.ts をレビューして
> @code-reviewer src/api.ts をレビューして

# 各タスクが完了するとメモリが解放される(修正後)
# → 100個のファイルをレビューしても安定動作

ユースケース2: 継続的なデータ処理エージェントチーム

大量のデータを分割処理するエージェントチームを長時間実行する場合。

yaml
# .claude/agents/data-processor.md
---
name: data-processor
description: "データバッチを処理するエージェント"
model: claude-sonnet-4-6
background: true
---

指定されたデータバッチを処理し、結果をレポートしてください。
bash
# 大量バッチ処理(各バッチ完了後にメモリ解放)
for i in {1..100}; do
  claude -p "@data-processor バッチ$i を処理して"
done

ユースケース3: マルチエージェント並行作業

複数のエージェントが同時に異なるタスクを実行する場合。

bash
claude

# 複数タスクを同時進行
> @agent-analyzer 現在のコードベースを分析して
> @agent-tester テストスイートを実行して
> @agent-documenter APIドキュメントを更新して

# v2.1.50以降: 各タスクが完了するとメモリが適切に解放される
# 以前: 完了したタスクのデータがメモリに蓄積し続けていた

注意点

  • この修正はエージェントチーム(複数エージェントが協力するセッション)に関係します。単一エージェントのセッションには別の修正が適用されています。
  • メモリ使用量の改善効果は、実行したタスク数と各タスクのデータ量に比例します。
  • 長時間の並行エージェントセッションほど、この修正の恩恵を受けます。
  • ガベージコレクションはタスクが完了した後、次の処理のタイミングで行われます。即座ではない場合があります。

関連情報