清除会话节省令牌始终 | AI生成和翻译

Home 2026.03

问题: 对于 OpenCode / Claude Code / Codex CLI,在完成一项不相关任务后,我们应该创建新会话还是运行 /clear 来减少 token 使用量,还是 prompt caching(如同 Gemini/Claude 使用的)会自动处理,因此我们无需担心?


回答:

简短回答

是的,在不相关任务之间应该使用 /clear 或启动新会话。 Prompt caching 确实有帮助,但它并不能消除携带前一任务的陈旧 context 的成本——它只是让重新阅读陈旧 context 更便宜,而不是免费。


Context Window 的实际工作原理

在会话中发送的每条消息都会重新发送整个对话历史给模型。这对 Claude Code、OpenCode(使用 Claude/Gemini backend)和 Codex CLI 都是如此。

随着对话通过轮次推进,每个用户消息和助手响应都会在 context window 中累积。先前轮次完全保留,遵循线性增长模式。

因此,50 轮会话每条消息发送的 token 显著多于 5 轮会话——即使模型似乎“瞬间记住”一切。


Prompt Caching 实际的作用

Prompt caching(Anthropic 的 Claude 和 Google 的 Gemini 使用的)减少了重新阅读已见内容的成本,但并不消除它:

因此,cache 降低每个 token 的成本(约为标准价格的 10%),但 token 仍然累积并计入。带有无关先前 context 的长会话会在每条后续消息上浪费配额。


为什么对于不相关任务,/clear 或新会话很重要

当你在同一会话中切换到完全不同的任务时:

  1. 所有先前的 tool calls、file reads 和对话轮次仍在 context 中。
  2. 你发送的每条新消息都会重新发送所有那些无关历史。
  3. 模型可能因陈旧 context(context rot)而困惑或“分心”。
  4. 你反复为所有那些无关内容支付 cache-read token。

Token 成本随 context 大小扩展:Claude 处理的 context 越多,你使用的 token 越多。在任务之间 clear:切换到不相关工作时使用 /clear 重新开始。陈旧 context 在每条后续消息上浪费 token。


每个工具的实用指导

Claude Code

Codex CLI (OpenAI)

OpenCode


“每个逻辑任务一个会话”规则

每个逻辑任务一个会话效果最佳。一个 bug 修复,一个功能,一个重构。不要试图在一个对话中修复三个 bug 并添加两个功能。

会话之间,使用 CLAUDE.md 文件来持久化重要项目 context:包含关键架构决策、文件位置和惯例的 CLAUDE.md 文件意味着 Claude 每次重新发现你的项目结构花费更少的 token。


总结表格

场景 推荐
同一任务,长会话 /compact — 总结,继续
切换到不相关任务 /clear 或新会话
相关后续任务 保持会话 或 先使用 /compact
稍后恢复旧工作 使用 CLAUDE.md 提供 context 的 /resume
非常长的代码库分析 每个逻辑单元新会话

底线: Prompt caching 是成本乘数(更便宜的读取),不是“免费 context”通行证。无关先前 context 总是让你付出代价——在不相关任务之间清除它是最高杠杆优化之一。


参考:


Back Donate