无尽模式的当前状态
核心概念
无尽模式是一种仿生记忆架构,用于解决Claude的上下文窗口耗尽问题。它不是在上下文窗口中保留完整的工具输出(O(N²)复杂度),而是:
- 捕获每次使用工具后的压缩观察结果
- 用低 token 摘要替换成绩单
- 实现 O(N) 线性复杂度
- 维护两级内存:工作内存(压缩) 归档内存(磁盘上的完整记录,由默认的Claude代码功能维护)
实施状态
状态:可用但实验性
当前分支: beta/endless-mode(领先于 main)
最近活动:
- 合并主分支的更改
- 已解决 save-hook、SessionStore、SessionRoutes 中的合并冲突
- 更新了文档,以删除误导性的 token 减少声明
- 添加了关于测试版状态的重要警告
关键架构组件
- 工具使用前钩子 - 跟踪工具执行开始,将 tool_use_id 发送给Worker 进程
- 保存钩子(PostToolUse) - 关键:阻塞直到生成观察结果(超时110秒),将压缩的观察结果注入回上下文
- SessionManager.waitForNextObservation() - 事件驱动等待机制(无轮询)
- SDKAgent - 通过 Agent SDK 生成观测,触发完成事件
- 数据库 - 为观察相关性添加了
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摘要
该实现从架构上是完整且可运行的,但在理论效率提升经过生产验证之前仍属于实验性阶段。