Skip to content

无尽模式的当前状态

核心概念

无尽模式是一种仿生记忆架构,用于解决Claude的上下文窗口耗尽问题。它不是在上下文窗口中保留完整的工具输出(O(N²)复杂度),而是:

  • 捕获每次使用工具后的压缩观察结果
  • 用低 token 摘要替换成绩单
  • 实现 O(N) 线性复杂度
  • 维护两级内存:工作内存(压缩) 归档内存(磁盘上的完整记录,由默认的Claude代码功能维护)

实施状态

状态:可用但实验性

当前分支: beta/endless-mode(领先于 main)

最近活动:

  • 合并主分支的更改
  • 已解决 save-hook、SessionStore、SessionRoutes 中的合并冲突
  • 更新了文档,以删除误导性的 token 减少声明
  • 添加了关于测试版状态的重要警告

关键架构组件

  1. 工具使用前钩子 - 跟踪工具执行开始,将 tool_use_id 发送给Worker 进程
  2. 保存钩子(PostToolUse) - 关键:阻塞直到生成观察结果(超时110秒),将压缩的观察结果注入回上下文
  3. SessionManager.waitForNextObservation() - 事件驱动等待机制(无轮询)
  4. SDKAgent - 通过 Agent SDK 生成观测,触发完成事件
  5. 数据库 - 为观察相关性添加了 tool_use_id

配置

json
{
  "CLAUDE_MEM_ENDLESS_MODE": "false",  // Default: disabled
  "CLAUDE_MEM_ENDLESS_WAIT_TIMEOUT_MS": "90000"  // 90 second timeout
}

启用方式:手动检出测试分支(见下方说明)

流动

Tool Executes → Pre-Hook (track ID) → Tool Completes →
Save-Hook (BLOCKS) → Worker processes → SDK generates observation →
Event fired → Hook receives observation → Injects markdown →
Clears input → Context reduced

已知限制

来自文档:

  • ⚠️ 比标准模式慢 - 阻塞会增加延迟
  • ⚠️ 仍在开发中 - 可能有错误
  • ⚠️ 未经实战测试 - 新架构
  • ⚠️ 理论预测 - 效率提升尚未在生产中验证

有效的方法

  • ✅ 同步观测注入
  • ✅ 基于事件的等待机制
  • ✅ 通过清除输入来减少 token
  • ✅ 带有 tool_use_id 的数据库模式
  • ✅ 版本切换的网页界面
  • ✅ 优雅的超时回退

什么未准备好

  • ❌ token储蓄的生产验证
  • ❌ 全面测试覆盖
  • ❌ 稳定版发布
  • ❌ 性能基准
  • ❌ 长时间运行的会话数据

如何尝试无尽模式

无尽模式目前仅在测试版分支中可用。要尝试它:

bash
# Navigate to your claude-mem installation
cd ~/.claude/plugins/marketplaces/thedotmack/

# Checkout the beta branch
git checkout beta/endless-mode

# Install dependencies
npm install

# Restart the worker
npm run worker:restart

回到稳定状态:

bash
cd ~/.claude/plugins/marketplaces/thedotmack/
git checkout main
npm install
npm run worker:restart

摘要

该实现从架构上是完整且可运行的,但在理论效率提升经过生产验证之前仍属于实验性阶段。