$ ssh clawdbot.space --loading...
$ ssh clawdbot.space --loading...
まず支出の所在を突き止め、失っても困らない部分から削る。
エージェントの課金はチャットボットとは異なります。毎ターン蓄積したコンテキストを送り直し、スケジュールで自ら起動します。どちらも掛け算で効き、どちらもトークン単価の比較には現れません。本記事は、何かを変える前に4つの要因のどれが請求額を支配しているかを突き止めるためのものです。能力を最も失わずに済む対処は、多くの人が最初に思いつくモデル変更であることは稀だからです。
| Task | Model | Cost | Saving |
|---|---|---|---|
| ハートビート/ステータス | Gemini Flash | ~$0.001/回 | Opusの99%オフ |
| 簡単なフォーマット/要約 | Claude Haiku | ~$0.01/回 | 95%オフ |
| コアエージェントタスク | Claude Sonnet | ~$0.05/回 | 70%オフ |
| 複雑な推論のみ | Claude Opus | ~$0.15/回 | ベースライン |
models: heartbeat: gemini-2.0-flash simple: claude-haiku-4-20250514 default: claude-sonnet-4-20250514 complex: claude-opus-4-20250514
プロバイダーごとの日次上限。上限到達でエージェント一時停止。
openclaw config set limits.daily_usd 5.00API呼び出しごとの入出力トークンを制限。
openclaw config set limits.max_tokens_per_call 4000完全な履歴の代わりに古いメッセージを要約。
openclaw config set context.sliding_window 15同一クエリをキャッシュ。日常タスクで30-50%節約。
openclaw config set cache.enabled true
Webスクレイプ/API応答をキャッシュ。
openclaw config set cache.skills true
Llama 3.1 8Bをローカル実行。APIコストゼロ。
ollama pull llama3.1:8b簡単タスクはローカル、複雑推論はクラウドAPI。
全Opus、制限なし、100Kコンテキスト
Haiku+Sonnet+Opus
コンテキスト15Kに整理
Ollamaハートビート+キャッシュ
コストの議論は各社のトークン単価比較に流れがちですが、それは最も効かないレバーです。エージェントがチャットボットと異なるのは、毎ターン蓄積したコンテキストを送り直し、しかも自分から起動する点です。どちらも掛け算で効き、どちらも百万トークン単価の比較には現れません。
| 要因 | なぜ累積するか | 効果の大きさ |
|---|---|---|
| コンテキスト長 | 毎ターン課金され、エージェントの履歴は切り詰められるまで単調に増え続けます。 | 大。コンテキストを半分にすれば入力コストもおおむね半分になります。 |
| ハートビートとcron | 誰も尋ねていないのにエージェントを起こします。5分間隔のハートビートは、誰も読まない1日288ターンです。 | 大。しかも調べるまで見えません。 |
| ツール呼び出し失敗後のリトライ | 失敗するツールはループし得て、各試行が完全なコンテキストを伴います。 | スパイク型。通常は問題ありませんが、時に請求額のすべてになります。 |
| モデルのティア | 誰もが最初に触るもの。 | 中程度。しかも能力と引き換えです。 |
重要なのはこの順序です。安いモデルへの切り替えはすべての応答を劣化させますが、コンテキストの削減や、そもそも欲しくなかったハートビートの停止は何も劣化させません。上から順に進めれば、たいてい「どのモデルにするか」が重要でなくなる程度まで請求額は下がります。
3つのコマンドが現在地を教えてくれます。これらを実行する前に設定を変えると、エージェントが遅くなっただけで請求額は動かない、という結果になりがちです。
# Find out what you are actually spending before changing anything. openclaw gateway usage-cost
以降のすべてを測る基準値です。設定に触れる前に記録しておかないと、自分の変更が効いたかどうか判断できません。
# What is waking the agent when nobody asked it to? openclaw cron list openclaw config get agents.defaults.heartbeat
スケジュールジョブとハートビートは、「設定した覚えのないコスト」の最も一般的な発生源です。ここにある項目はすべて、意図して欲しいものであるべきです。
# Which model is actually being used, and what are the fallbacks? openclaw models status openclaw models fallbacks
フォールバックがある以上、設定したモデルが応答しているとは限りません。障害時に上位ティアへフォールバックするのは、正当かつまったく見えない支出経路です。
順番に適用し、各段階のあとで使用量を確認してください。複数を同時に変えると、どれが効いたか分からなくなり、そのうち1つは節約なしにエージェントを悪化させている可能性があります。
# 1. Context is charged on every turn. Trim what gets injected. # There is no single "context length" knob — these are the budgets # that decide how much is pushed into the prompt each time: openclaw config set agents.defaults.bootstrapTotalMaxChars 30000 openclaw config set agents.defaults.bootstrapMaxChars 10000 # Heartbeat runs can skip workspace bootstrap files entirely: openclaw config set agents.defaults.heartbeat.lightContext true
ここから始めます。単一の「コンテキスト長」つまみは存在せず、制御できるのはbootstrapの文字数バジェットを通じて、どれだけのワークスペース情報をプロンプトに押し込むかです。減らすと、長い履歴の途中でモデルが筋を見失う確率も下がります。半分にして壊れるものがあるか確認し、壊れた箇所だけ戻してください。ハートビートのlightContextはほぼ無償の節約です。あの実行にワークスペースが必要なことはまずありません。
# 2. Route cheap turns to a cheap model instead of the default. openclaw models list openclaw models set <cheap-model-id>
分類、ルーティング、短い確認応答にフロンティアモデルは不要です。ローカル実行が魅力的になるのもこの地点です。ローカル1ターンの限界費用は電気代であり、大量の些末な処理が実質無料になります。
# 3. Cap the blast radius of a runaway loop. openclaw cron list # remove anything you did not deliberately add openclaw sessions cleanup # orphaned sessions still hold context
無人のループは、本当に驚くような請求額を生み得る唯一の失敗モードです。追加した覚えのないcronと、コンテキストを保持したままの孤立セッションは、定期的に整理する価値があります。