コンテキストエンジニアリング: 有限のアテンションを効くところに使う
このコースはコンテキストエンジニアリング――エージェントのループが回るたびに、モデルにどのトークンを見せるかを決める技術――を扱います。コース7 で、ループが回るたびに履歴が増えること、そしてモデルのアテンション予算が有限であることはすでに学びました。このコースはそこに正面から取り組みます。システムプロンプトはどの「高度」で書くべきか、ツールと実例はコンテキストに数えられるのか、どの情報を先読みし、どの情報をエージェント自身に取りに行かせるか、長いタスクで履歴をどう圧縮しノートをどう取るか、なぜサブエージェントがコンテキスト管理の技法なのか――そして最後には、コース7 で作ったハーネスにコンテキスト管理のレイヤーをハンズオンで配線します。このシリーズの最初の 7 つのコースを終えた読者向けです。プロンプトの書き方の技術(このシリーズのコース3)は再度扱いません。セッションをまたぐファイルの永続化と状態の復旧(コース5 のテーマ。このコースは「この 1 つの長いタスクの中で、各ターンはモデルに何を渡すべきか」に絞ります)もカバーしません。マルチエージェントコラボレーションのパターン(コース6。サブエージェントはここではコンテキストの観点からのみ登場します)も再度扱わず、RAG やベクトルデータベースの構築もカバーしません。
コース構成
- プロンプトエンジニアリングからコンテキストエンジニアリングへ
- コンテキストの解剖: システムプロンプト、ツール、そして例
- ジャストインタイム取得: エージェント自身にコンテキストを取りに行かせる
- コンパクションとノート: 長時間タスクのコンテキスト管理
- サブエージェントとコンテキスト分離
- 実践: ハーネスにコンテキスト管理を組み込む
学習目標
このコースを終えると、次のことができるようになります:
- コンテキストエンジニアリングとプロンプトエンジニアリングの関係を説明し、アテンション予算とコンテキストロットを使って、コンテキストが限界効用の逓減する有限リソースである理由を説明する
- システムプロンプトの「高度」を判断し――一方の極には壊れやすいハードコードされたロジック、他方の極にはシグナルのない曖昧な指示があります――行動を導けるだけ具体的でありながら強いヒューリスティックを残す位置に書き直す
- タスクごとに先読みとジャストインタイム取得の境界を引き、軽量な識別子(ファイルパス、クエリ、リンク)を使ってエージェントがオンデマンドで段階的にコンテキストを発見できるようにする
- 長いタスクのためのコンパクション戦略を設計する: 何が残らなければならないか(決定事項、未解決の問題、重要な実装の詳細)と何を捨てられるか(冗長なツール出力)を判断し、構造化されたノートで重要な状態をコンテキストウィンドウの外に置く
- サブエージェントをコンテキストの経済性の言葉で説明する: きれいなウィンドウ、返ってくるのは千数百トークンほどに圧縮された要約だけ、そしてそれが数倍のトークンを払う価値があるのはどんなときか
- stop_reason 駆動のハーネスループに、トークン使用量のトラッキング、閾値で起動するコンパクション、NOTES.md という構造化されたノートを取り付け、1 つのウィンドウには収まらないタスクを完了まで走らせる
前提知識
- このシリーズの最初の 7 つのコースを終えている、または同等の知識がある
stop_reason駆動のエージェントループを手書きでき、messages履歴が毎ターン増えること、tool_resultブロックがまとめて返ることを理解している(コース7)- コンテキストウィンドウが有限のリソースであり、会話履歴は増え続けるだけであることを知っている(コース5)
- サブエージェントが独立したコンテキストから始まり、結論だけを返すことを知っている(コース6)
- 基本的な JavaScript / Node.js のコードを読み書きできる(最後のレッスンでは一緒に書き進めます)
想定学習時間
約 3〜4 時間(各レッスンのハンズオン演習を含む)。