agent-context-isolation について
agent-context-isolationは、サブエージェントの出力がメインの会話コンテキストを圧迫しないようにするClaude向けスキルです。バックグラウンドタスクとファイル連携を使い、出力全体の取得ではなくテストで作業を確認します。
主な機能
- 01バックグラウンドエージェントとファイル連携
- 02指定ファイルへの結果保存
- 03TaskOutput全体の取得を回避
- 04リマインダーとファイルによる進捗確認
- 05テストの直接実行による検証
活用シーン
- 01メインコンテキストを圧迫せずに調査エージェントを実行
- 02ファイルを介した多段階エージェント処理
- 03出力全体を読み込まずにタスク完了を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill agent-context-isolationインストール後、Claude Code で/agent-context-isolationを入力して読み込まれたか確認します。
詳細
エージェントのコンテキスト分離
エージェントの出力がメインのコンテキストウィンドウに混入するのを防ぎます。
ルール
1. バックグラウンドエージェントをファイルベースの連携で使用する
# RIGHT - background agent writes to file, main reads file
Task(subagent_type="...", run_in_background=true, prompt="... Output to: /path/to/file.md")
# WRONG - foreground agent dumps full transcript into main context
Task(subagent_type="...", run_in_background=false)
run_in_background=true を指定したバックグラウンドエージェントは、コンテキストを分離します。結果は .claude/cache/agents/<agent-type>/ 内のファイルに書き込ませます。
2. 結果の取得に TaskOutput を使用しない
# WRONG - dumps entire transcript (70k+ tokens) into context
TaskOutput(task_id="<id>")
TaskOutput(task_id="<id>", block=true)
# RIGHT - check expected output files
Bash("ls -la .claude/cache/agents/<agent-type>/")
Bash("bun test") # verify with tests
TaskOutput はエージェントのトランスクリプト全体を返します。必ずファイルベースの連携を使用してください。
3. システムリマインダーでエージェントの進捗を監視する
# System reminders come automatically:
# "Agent a42a16e progress: 6 new tools used, 88914 new tokens"
# To detect completion:
# - Watch for progress reminders to stop arriving
# - Poll for expected output files: find .claude/cache/agents -name "*.md" -mmin -5
# - Check task output file size growth: wc -c /tmp/claude/.../tasks/<id>.output
エージェントが停止していることを検出する方法:
- 進捗リマインダーが届かなくなる
- タスクの出力ファイルのサイズが増えなくなる
- しばらく待っても、想定される出力ファイルが作成されない
4. 出力ではなくテストで検証する
エージェントの作業後:
- テストスイートを直接実行します:
bun test - 成功数と失敗数を報告します
- テストが失敗した場合にのみ、失敗の原因を調査します
5. ファイルベースのエージェントパイプラインパターン
Research agent → .claude/cache/agents/oracle/output.md
↓
Plan agent → .claude/cache/agents/plan-agent/output.md (reads research)
↓
Validate agent → .claude/cache/agents/validate-agent/output.md (reads plan)
↓
Implement agent → src/module.ts (reads validated plan)
各エージェントは TaskOutput ではなく、前のエージェントのファイル出力を読み取ります。
これが重要な理由
エージェントのコンテキスト分離により、メインの会話で使えるコンテキストの予算を維持できます。TaskOutput 経由でエージェントの出力を読み取るとコンテキストがあふれ、次の問題が発生します:
- 会話の途中でコンテキストが圧縮される
- ユーザーの元のリクエストに関するコンテキストが失われる
- 説明を繰り返す必要が生じる
出典
- TaskOutput によって 70k+ トークンがメインコンテキストにあふれたセッション
- セッション 2026-01-01:SDK Phase 3 で、バックグラウンドエージェントとファイルベースの連携を正常に使用
コメント
Markdown 対応