← 返回
未分类 中文

Anthropic Token Optimizer

Reduce Anthropic API costs (cache read, compaction, context bloat) for OpenClaw agents. Use when users ask about token optimization, reducing API costs, cach...
帮助 OpenClaw 代理降低 Anthropic API成本(缓存读取、压缩、上下文膨胀)。适用于用户询问令牌优化、降低 API 费用、缓存等场景。
ngocgd ngocgd 来源
未分类 clawhub v1.3.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 404
下载
💾 0
安装
1
版本
#anthropic#cache#codebase-map#context-management#cost-reduction#latest#token-optimization

概述

Anthropic Token Optimizer

Minimize Anthropic API costs without sacrificing quality. Focus on cache read reduction — the #1 cost driver for long sessions with Opus.

Anthropic Pricing Reference

ModelInputCache WriteCache ReadOutput
----------------------------------------------
Haiku$0.80$1.00$0.08$4
Sonnet$3$3.75$0.30$15
Opus$15$18.75$1.50$75

(per MTok — multiply by millions of tokens)

Key insight: Cache read = context_size × num_turns. 200k context × 50 turns on Opus = ~$15 just cache reads.


Part 1: Config Optimizations (openclaw.json)

1. Compaction model — use cheaper model (highest ROI ✅)

"compaction": {
  "mode": "safeguard",
  "model": "anthropic/claude-sonnet-4-20250514"
}

Sonnet summarizes at 5x less cost than Opus. Quality comparable for summaries.

2. Context pruning — trim old tool results

"contextPruning": { "mode": "cache-ttl", "ttl": "1h" }
TTLBehaviorVerdict
------------------------
1hTrims after 1 hour✅ Best balance
30mModerateOK for active sessions
5mAggressive⚠️ Loses tool results

3. Cache retention — keep "long"

"params": { "cacheRetention": "long", "context1m": true }

"long" = fewer cache writes ($18.75/MTok on Opus!). Don't switch to "default".

4. Cache TTL heartbeat alignment

Anthropic cache expires after ~1h idle. Heartbeat at 55min keeps it warm:

"heartbeat": { "every": "55m" }

Prevents expensive cache re-writes when agent resumes after idle.

5. Bootstrap size limits — cap workspace injection

"bootstrapMaxChars": 8000,
"bootstrapTotalMaxChars": 30000

Check current injection: /context list. Prevents oversized files from inflating every turn.


Part 2: Workspace Hygiene (biggest long-term win)

File budgets

FileTargetReview cycle
---------------------------
AGENTS.md<500 tokens (~2KB)Monthly
SOUL.md<250 tokens (~1KB)Rarely
TOOLS.md<500 tokens (~2KB)When tools change
MEMORY.md<400 tokens (~1.5KB)Weekly prune
HEARTBEAT.md<400 tokens (~1.5KB)When done
memory/YYYY-MM-DD.md<30 linesCollapse at EOD
Total injected<2,800 tokens

Reduction tactics

  • Merge redundant files (IDENTITY.md + USER.md → SOUL.md)
  • Move non-essential docs to subfolders (docs/, notes/) — not auto-injected
  • Collapse exploration into decisions: keep "what we decided", delete "how we got here"
  • Prune ghost context: references to old paths, removed tools, fixed bugs
  • Deduplicate: info in SOUL.md shouldn't repeat in MEMORY.md or AGENTS.md

Daily memory rules

Write: decisions + why (1 line), new tools/config, lessons, user preferences.

Skip: exploration steps, command outputs, things already in MEMORY.md, delivered content.

Format: Bullets, not paragraphs. One fact per line.


Part 3: Behavioral Patterns

6. /compact after each topic (most effective manual action)

/compact Focus on [topic summary]

7. /new when switching topics entirely

Context resets to 0. Don't carry 200k into unrelated work.

8. Subagents for tool-heavy work

Spawn subagents (cheaper model) for: codebase grep, reading 5+ files, research/web fetch. Tool results stay isolated.

9. Tool output discipline

  • Truncate: | head -20, | jq '.key'
  • Request only needed fields from APIs
  • Never paste full JSON when you need one value
  • Output >50 lines → summarize, don't quote

10. File loading discipline

  • Startup: only today + yesterday memory files
  • Read SKILL.md only when task needs that skill
  • Don't re-read files already in context

Part 4: Context Budgeting

Information partitioning

BudgetContent
-----------------
10%Task instructions + constraints
40%Recent 5-10 turns of dialogue
20%Decision logs ("tried X, failed because Y")
20%High-relevance MEMORY.md snippets
10%Tool schemas + system prompt

Compaction survival

Before compaction hits, critical state must be captured:

  1. WAL Protocol: On corrections, decisions, specific values → write to SESSION-STATE.md before responding
  2. Working buffer: At 60%+ context → append exchange summaries to memory/working-buffer.md
  3. Recovery: After compaction, read buffer + session state first. Never ask "where were we?"

Session lifespan

After 85% context or 3+ compactions → start fresh with /new. Good MEMORY.md means minimal context loss.


Part 5: Codebase Map Caching (Atris Pattern)

Problem: Every code review or exploration session re-reads the same files, burning tokens on repeated grep/read calls. A 500-file project can cost 50k+ tokens just for navigation.

Solution: Generate a persistent codebase map (atris/MAP.md) once, reuse across sessions.

Setup (one-time per project)

# Install atris skill
npx clawhub@latest install atris

# Or manually: create atris/ folder in project root, then scan
rg "^(export|function|class|const|def |async def |router\.|app\.)" \
  --line-number -g "!node_modules" -g "!.git" -g "!dist" -g "!.env*"

MAP.md structure

# MAP.md — [Project] Navigation Guide
> Last updated: YYYY-MM-DD

## Quick Reference
- `src/index.ts:1` — App entry point
- `src/routes/auth.ts:15` — POST /login handler
- `src/models/user.ts:8` — User schema

### Feature: Authentication
- **Entry:** `src/auth/login.ts:45-89` (handleLogin)
- **Validation:** `src/auth/validate.ts:12` (validateToken)
- **Routes:** `src/routes/auth.ts:5-28`

### Feature: Billing
- **Controller:** `src/controllers/billing.ts:20`
- **Service:** `src/services/stripe.ts:1-45`

MAP-first rule

Before searching codebase:

  1. Read atris/MAP.md — found? Go directly to file:line
  2. Not found? Search with rg, then add result to MAP.md

Map gets smarter every session. Never let a discovery go unrecorded.

Keeping fresh

  • New file → add to relevant section
  • Deleted file → remove from map
  • Major refactor → regenerate affected sections only
  • Small updates, not full regeneration

Token savings

CodebaseWithout mapWith mapSavings
-----------------------------------------
Small (50 files)~5k tokens/explore~1k80%
Medium (200 files)~20k tokens/explore~3k85%
Large (500+ files)~50k tokens/explore~5k90%

Diagnostics

/context list    → token count per injected file
/context detail  → full breakdown (tools, skills, system)
/usage tokens    → append token count to every reply
/usage cost      → cumulative cost summary
/status          → model, context %, cost estimate

Decision Matrix

SituationAction
-------------------
Session >100k context/compact immediately
Switching topics/new or /compact
Reading 5+ filesSpawn subagent
Compaction cost highSet compaction model to Sonnet
Daily cost >$10Audit session count, compact more
Cache writes spikingHeartbeat ≤55min, keep cacheRetention: long
Workspace injection >20KBMerge/move files, set bootstrapMaxChars
Context >85%/new — start fresh

Impact Summary

TechniqueSavingsUX Impact
-------------------------------
Compaction model = Sonnet~80% compaction costNone
Workspace file budgets~30-50% base costNone
/compact after topics~40-60% cache readManual step
Cache TTL heartbeat (55m)~20-30% cache writesNone
Bootstrap size limits~20-30% base costNone
Subagent delegation~30% cache readBetter (parallel)
Tool output discipline~10-20% per turnRequires habit
/new for new topics~100% (reset)Lose old context
Codebase map (Atris)~80-90% code explorationOne-time setup

Credits

Incorporates ideas from: openclaw-token-optimizer, context-slimmer, context-budgeting, compaction-survival, context-hygiene, atris (codebase map caching).

版本历史

共 1 个版本

  • v1.3.0 当前
    2026-05-07 05:59 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,461 📥 330,986
ai-agent

self-improving agent

pskoett
记录自身发现以实现自我改进的技能
★ 4,188 📥 959,491
ai-agent

Find Skills

root
帮助用户发现和安装智能体技能,当用户询问如「如何做X」、「找X的技能」、「有能做...的吗」等问题时
★ 1,545 📥 592,773