Skip to content

Commit 58daf2f

Browse files
authored
Create effective-context-engineering-by-anthoropic.md
1 parent f7e9115 commit 58daf2f

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
---
2+
title: Anthropicの効率的なコンテキストエンジニアリングのガイドのメモ
3+
tag: other
4+
pubDate: 2025/10/01
5+
---
6+
7+
[Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)を読んだ上での雑記。
8+
9+
(Written with GPT5)
10+
11+
## テーマと前提
12+
13+
* テーマは「コンテキストという有限資源をどう設計し、最小トークンで望む挙動を引き出すか」
14+
* コンテキストはLLMの推論時に渡す全トークン集合で、システム指示や履歴、外部データ、ツール結果を含む
15+
* ポイントは「最小の高シグナルトークン(high-signal tokens)」を選び続ける反復的なキュレーション
16+
* 期待する挙動の実現確率を最大化するうえで、情報価値が高いトークン群
17+
* 背景となる観察
18+
19+
* トークンが増えるほど参照精度が徐々に落ちる現象があり、注意予算(Attension Budget)は有限
20+
* 長い文脈では関連性の低下や混乱が生じやすく、意図的な取捨選択が必須
21+
22+
## コンテキスト設計とプロンプト設計の違い
23+
24+
* プロンプト設計
25+
26+
* 指示文の書き方や並べ方に焦点
27+
* 主にシステムプロンプトの改善で振る舞いを微調整
28+
* コンテキスト設計
29+
30+
* モデルに渡す情報集合の最適化に焦点
31+
* 対象要素
32+
33+
* システムプロンプトの構成と高度
34+
* ツールとその入出力の設計
35+
* Few-shotの選定
36+
* メッセージ履歴と外部データの扱い
37+
* ねらい
38+
39+
* 各ターンで「何を入れ、何を省くか」を決める反復プロセスを確立
40+
41+
## 効くシステムプロンプトの「高度」
42+
43+
* よくある両極端
44+
45+
* if-else的に細かい規則を詰め込み壊れやすくなる
46+
* ふわっとした一般論だけで具体的な手がかりがない
47+
* 推奨スタンス
48+
49+
* 具体性と柔軟性のバランスを取り、必要十分な情報だけを明確に入れる
50+
* セクション分割や軽量マークアップで役割をはっきりさせる
51+
52+
* 背景情報
53+
* 指示
54+
* ツールの使い分け指針
55+
* 期待する出力説明
56+
* 運用の勘所
57+
58+
* まず最小構成で高性能モデルを試し、失敗モード(failure modes)を見て段階的に指示や例を追加する
59+
60+
## ツール設計と返却の最適化
61+
62+
* ツールは情報空間へのインターフェース
63+
64+
* 役割が重複しない自明な線引きを行い、どの場面でどれを使うかを曖昧にしない
65+
* 入力パラメータは誤読しにくく、モデルの得意さに沿う記述にする
66+
* 返却データの方針
67+
68+
* トークン効率を最優先し、本文ではなく要約や識別子を中心に返す
69+
* エージェントの行動を効率化する形を心がける
70+
* 失敗パターン
71+
72+
* 機能を盛り込みすぎたツール群で選択の分岐が増え、判断ミスや冗長探索を招く
73+
74+
## Few-shotと例示の扱い
75+
76+
* 方針
77+
78+
* 増やすより選ぶ、境界を含む多様な正準例を少数精鋭で用意
79+
* 規則を事細かに列挙するより、望ましい出力の具体的サンプルで学習させる
80+
* 期待する効果
81+
82+
* 余計な規則の羅列を避けつつ、モデルに強いヒューリスティクスを与える
83+
84+
## ランタイムの文脈取得とエージェント探索
85+
86+
* 事前取得中心からのシフト
87+
88+
* 多くのアプリは埋め込み検索などの事前取得を使うが、エージェント化が進むほどJIT取得の重要性が増す
89+
* JIT取得の考え方
90+
91+
* ファイルパスや保存済みクエリ、URLなどの軽量参照を保持し、必要時にツールで本文を取りに行く
92+
* 大量データはBashのheadやtailのような原始操作で断片的に観察し、全体を一気に読み込まない
93+
* メタデータの活用
94+
95+
* パスやフォルダ階層、命名、タイムスタンプが強いシグナルになる
96+
97+
* `tests`以下のファイルは意図や役割が明確に推測できる
98+
* サイズや更新時刻で優先度やコストを見積もれる
99+
* プログレッシブな開示
100+
101+
* 探索で得た気づきを次の一手に反映し、必要最小限だけ作業メモリに残す
102+
* 追加の情報は外部ノートへ書き出し、後で必要な分だけ戻す
103+
* ハイブリッド戦略
104+
105+
* 一部の基盤情報は先置きしつつ、詳細はJITで段階的に取得
106+
* 自律度の最適点はタスク依存で決まり、用途によって先読みと探索の配分を変える
107+
108+
## 長時間タスクに効く3つのテクニック
109+
110+
* コンパクション
111+
112+
* コンテキスト上限が近づいたら履歴を高忠実に要約し、新しいウィンドウをその要約から再開
113+
* 残すべきは設計判断や未解決事項などの本質情報で、冗長なツール出力は除去
114+
* まず高リコールで過不足なく拾い、次に高精度化で余分を削る
115+
* 構造化ノート(Structured note-taking)
116+
117+
* コンテキスト外にノートを永続化し、後で必要な要点だけを再投入
118+
* TODOや決定記録、依存関係を継続的に管理し、長時間の連続作業で一貫性を維持
119+
* サブエージェント構成
120+
121+
* 役割ごとに専用エージェントを分け、詳細探索は各サブが担当
122+
* 親エージェントは集約と意思決定に集中し、サブからは凝縮サマリだけを受け取る
123+
* 分割により関心の分離が明確になり、各ウィンドウを小さくクリーンに保てる
124+
125+
## 実装時のチェックポイント
126+
127+
* システムプロンプト
128+
129+
* 背景と指示、ツール指針、出力形式をセクション化し、過不足ない高度で書く
130+
* 最小構成で評価し、失敗モードに応じて段階的に補強
131+
* ツール
132+
133+
* 役割が重ならない設計にし、返却は要約と識別子中心でトークン効率を担保
134+
* 増やす基準と廃止基準を明確にし、保守容易性を確保
135+
* Few-shot
136+
137+
* 多様な正準例を少数選び、出力フォーマットは本番と一致させる
138+
* 取得戦略
139+
140+
* 事前取得とJIT取得をタスク特性に合わせて配合
141+
* 参照メタデータで候補を先に絞り、本文読み込みは段階的に行う
142+
* 長時間タスク
143+
144+
* コンパクションのプロンプトを失敗事例でチューニング
145+
* 構造化ノートの粒度と書き戻しルールを固定
146+
* サブエージェントの境界と合流フォーマットを明示
147+
148+
## まとめ
149+
150+
* コンテキストは有限の注意予算であり、増やすよりも「選ぶ」「捨てる」を設計に組み込むのが要点
151+
152+
* システムプロンプトは必要十分を明確に、ツールは役割を明快に、Few-shotは少数精鋭で
153+
* 事前取得とJITを組み合わせ、メタデータと段階取得で無駄を減らす
154+
* 長時間タスクではコンパクション、構造化ノート、サブエージェントを併用して一貫性を維持
155+
156+
## refs
157+
158+
* [Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)

0 commit comments

Comments
 (0)