OpenClawでエージェントを動かしていると、毎回のAPI呼び出しにコンテキストが乗ります。つまり、AGENTS.mdやSOUL.mdといった「誰であるか」を示すファイルが、会話のたびに送られ続けるわけです。
これがコストに直結します。
私は最近、エージェントのコンテキストファイルを大幅に削減しました。具体的には以下の数字です。
- AGENTS.md: 4,800字 → 823字(83%削減)
- SOUL.md: 1,200字 → 149字(88%削減)
なぜ削減が必要だったのか
OpenClawのエージェントは、起動するたびに自分の「設定ファイル」を読み込みます。AGENTS.mdはその中核で、「あなたはどういう存在か」「何をすべきか」「どう記憶を残すか」といった基本的なルールが書かれています。
問題は、このファイルが毎回API呼び出しに含まれることです。
例えば、あなたがエージェントと50回やり取りしたとします。すると、AGENTS.mdは50回送られます。4,800字のファイルなら、50回で240,000字。これがすべてトークンとして課金対象になります。
実施した削減策
1. AGENTS.mdの削減
まず、AGENTS.mdから「毎回読む必要がない情報」を削り始めました。
## Memory
You wake up fresh each session. These files are your continuity:
- **Daily notes:** `memory/YYYY-MM-DD.md` (create `memory/` if needed) — raw logs of what happened
- **Long-term:** `MEMORY.md` — your curated memories, like a human's long-term memory
Capture what matters. Decisions, context, things to remember. Skip the secrets unless asked to keep them.
<memory>
- 毎セッション読む: SOUL.md, USER.md, memory/今日.md, memory/昨日.md
- メイン会話のみ: MEMORY.md(memory_search推奨)
- 毎日作成: memory/YYYY-MM-DD.md
</memory>
このように、XML風のタグで構造化し、箇条書きに変えました。
2. XMLタグによる構造化
削減とあわせて、内容をXMLタグで区切りました。これにより、必要な部分だけを読み取りやすくなります。
使ったタグは以下の通りです。
<boot>: 起動時に読むファイルリスト<memory>: メモリファイルの扱い方<safety>: 外部送信時の注意事項<groups>: グループチャットでのルール<heartbeat>: ハートビートの動き方<token_efficiency>: トークン削減のための工夫
3. MEMORY.mdの読み方を変更
MEMORY.mdは、長期記憶を保存するファイルです。ここには過去の重要な出来事、学んだこと、ユーザーの好みなどが蓄積されていきます。
問題は、このファイルが時間とともに肥大化することです。
⚠️ 丸読み禁止ルール
メイン会話では、MEMORY.mdを読んでください。
MEMORY.mdは全文読み禁止。memory_search()で必要部分だけ引く。
memory_search()は、キーワードで検索して該当部分だけを返す関数です。これにより、必要な情報だけを取得できます。
削減の効果
削減後、APIコストは約5分の1になりました。
具体的な数字は以下の通りです。
削減前
- AGENTS.md: 4,800字(約1,600トークン)
- SOUL.md: 1,200字(約400トークン)
- 合計: 約2,000トークン/回
1日に100回呼び出すと、200,000トークン。
Claude APIの料金(2024年2月時点)で計算すると:
- Input: $3/million tokens
- 200,000 tokens/日 = $0.6/日 = 約$18/月
削減後
- AGENTS.md: 823字(約275トークン)
- SOUL.md: 149字(約50トークン)
- 合計: 約325トークン/回
1日に100回呼び出すと、32,500トークン。
- 32,500 tokens/日 = $0.1/日 = 約$3/月
月額で約$15(約2,000円)の削減です。
削減のコツ
実際に削減してみて、いくつかコツがわかりました。
1. 説明を削る
「なぜこうするのか」という理由の説明は、人間には有用ですが、エージェントには不要です。エージェントは「こうする」という指示だけあれば動きます。
2. 重複を削る
同じことを違う言い回しで繰り返している部分は、1回だけ言えば十分です。
3. 箇条書きにする
文章を箇条書きに変えるだけで、トークン数は減ります。
まとめ
AGENTS.mdとSOUL.mdを大幅に削減し、APIコストを約5分の1にしました。
削減のポイントは以下の通りです。
- 説明、理由、例示を削る
- 箇条書きにする
- XMLタグで構造化する
- MEMORY.mdは全文読みせず、memory_search()を使う
- ファイルはoffset/limitで部分読み
OpenClawを24時間動かしている人、複数のエージェントを運用している人には、同じような削減をお勧めします。
💭 トークン節約で工夫してることはありますか?
感想・質問はこちら → @daisuki_koshian