コンテンツにスキップ

コンテキストエンジニアリング 学習ノート — write / select / compress / isolate

開始日: 2026-06-11 動機: agent-design で harness(モデルの外側のループ・ツール・基準・権限)を学んでいるが、その中核である「有限なコンテキストに何を載せるか」を体系的に学んだことがない。Claude Code を毎日使いながら /compact・memory・サブエージェントの原理を説明できない状態を脱し、自分のエージェント(ai-engineering-digest、research-orchestrator)のコンテキスト設計を意図的に行えるようになる 参考: agent-design/STUDY_NOTES.md(harness の構成要素)、rag/STUDY_NOTES.md(select の発展形 = 検索)、software-design/24(共有メモリ + TODO)、~/.claude の memory/MEMORY.md 運用 写経教材: lectures/context_basics/ — STEP 1〜4 に対応する 6 例(履歴増殖の実測 / トリミング / 要約圧縮 / スクラッチパッド / ツール結果剪定 / 長期メモリ)

学習ロードマップ

  • [ ] STEP 0: 概念整理 — Anthropic「Effective context engineering for AI agents」と LangChain ブログの 4 戦略(write / select / compress / isolate)を読み、「プロンプトエンジニアリング(1 回の指示の書き方)」と「コンテキストエンジニアリング(ターンを跨ぐ情報の流れの設計)」の違いを自分の言葉で「メモ」節に書く。context rot(長コンテキストで中間の情報が効かなくなる現象)も用語として押さえる
  • [ ] STEP 1: 増殖の実測ex01)— stateless な Chat API で履歴が線形に育つことを usage.prompt_tokens で実測する。「コスト・レイテンシ・context rot の 3 つが同時に悪化する」ことを数字で言えるようにする
  • [ ] STEP 2: compress を2方式で比較ex02/ex03)— トリミング(何を失うか制御不能)と要約圧縮(要約プロンプトで残すものを指示)を同じ会話で比較。Claude Code の /compact が「何を必ず残すか」をどう指示しているか想像し、自分の compaction プロンプトを 1 つ書く
  • [ ] STEP 3: write と selectex04/ex05)— スクラッチパッド(履歴ではなく状態を運ぶ)とツール結果の剪定(抽出 + ファイル参照で offload)を写経。「エージェントのコンテキストで一番太るのはツール結果」を体感し、ai-engineering-digest のパイプラインで生 HTML をどう扱っているか点検する
  • [ ] STEP 4: 長期メモリex06)— 事実を embedding 付きで永続化し、新セッションで関連分だけ想起する最小実装。自分の ~/.claude の memory 運用(1 ファイル 1 事実 + MEMORY.md インデックス)がなぜその形なのかを、保存粒度と select の観点で説明できるようにする
  • [ ] STEP 5: isolate(コンテキスト分離) — サブエージェントは「並列化」ではなく第一義には「コンテキスト分離」であることを、lectures/claude_agent_sdk/ ex06(サブエージェント)と lectures/multi_agent/(Supervisor)を見比べて整理する。親に返るのは最終メッセージだけ=中間のツール結果が親のコンテキストを汚さない、を確認
  • [ ] STEP 6: 自プロジェクト適用 — ai-engineering-digest の Phase 1〜3 を「コンテキストに何が載っているか」の観点で監査する。記事全文をどこまで運んでいるか、harness.yaml(基準)はどの位置に注入されるべきか、を図にして v0.6 の設計に反映する

メモ

(学習を進めながら追記する)


作成: 2026-06-11 / 最終更新: 2026-06-11