会话修剪
会话修剪在每次 LLM 调用前从内存上下文修剪旧工具结果。不重写磁盘会话历史(*.jsonl)。
何时运行
- 当
mode: "cache-ttl"启用且该会话最后一次 Anthropic 调用早于ttl。 - 仅影响该请求发送给模型的消息。
- 仅对 Anthropic API 调用(及 OpenRouter Anthropic 模型)生效。
- 为获最佳效果,将
ttl与模型cacheControlTtl匹配。 - 修剪后 TTL 窗口重置,后续请求在
ttl再次过期前保持缓存。
智能默认(Anthropic)
- OAuth 或 setup-token 配置:启用
cache-ttl修剪并设心跳为1h。 - API key 配置:启用
cache-ttl修剪,设心跳为30m,并在 Anthropic 模型上默认cacheControlTtl为1h。 - 若你显式设置任何这些值,Moltbot 不覆盖。
改善之处(成本 + 缓存行为)
- 为何修剪:Anthropic 提示缓存仅在 TTL 内生效。会话闲置超过 TTL 时,下次请求会重新缓存完整提示,除非你先修剪。
- 何处更便宜:修剪减少 TTL 过期后首次请求的 cacheWrite 大小。
- TTL 重置为何重要:修剪运行后缓存窗口重置,后续请求可复用新缓存的提示,而非再次重新缓存完整历史。
- 不做什么:修剪不增加 token 或”翻倍”成本;仅改变 TTL 后首次请求的缓存内容。
可修剪内容
- 仅
toolResult消息。 - 用户 + 助手消息永不修改。
- 最后
keepLastAssistants条助手消息受保护;该截止点之后的工具结果不修剪。 - 若助手消息不足以建立截止点,跳过修剪。
- 包含图像块的工具结果跳过(永不修剪/清除)。
上下文窗口估算、模式、软修剪 vs 硬修剪、工具选择、与其他限制的交互、默认值、示例见英文 会话修剪 文档。
最后更新于: