Skip to Content
👋 欢迎来到 HowToUseMoltbot 快速入门
核心概念Session Pruning 会话修剪

会话修剪

会话修剪在每次 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 模型上默认 cacheControlTtl1h
  • 若你显式设置任何这些值,Moltbot 覆盖。

改善之处(成本 + 缓存行为)

  • 为何修剪:Anthropic 提示缓存仅在 TTL 内生效。会话闲置超过 TTL 时,下次请求会重新缓存完整提示,除非你先修剪。
  • 何处更便宜:修剪减少 TTL 过期后首次请求的 cacheWrite 大小。
  • TTL 重置为何重要:修剪运行后缓存窗口重置,后续请求可复用新缓存的提示,而非再次重新缓存完整历史。
  • 不做什么:修剪不增加 token 或”翻倍”成本;仅改变 TTL 后首次请求的缓存内容。

可修剪内容

  • toolResult 消息。
  • 用户 + 助手消息永不修改。
  • 最后 keepLastAssistants 条助手消息受保护;该截止点之后的工具结果不修剪。
  • 若助手消息不足以建立截止点,跳过修剪。
  • 包含图像块的工具结果跳过(永不修剪/清除)。

上下文窗口估算、模式、软修剪 vs 硬修剪、工具选择、与其他限制的交互、默认值、示例见英文 会话修剪 文档。

最后更新于: