返回

文章详情

停止在会话之间浪费 token 和重新解释你的项目

Hacker News2026年6月21日 21:05

🔁 召回 — Claude Code 的完全本地项目记忆。Claude Code 每次会话开始时都是冷启动。召回将在你的机器上保持一个会话的本地日志,并将其浓缩为一份简历准备好的摘要。没有 API 密钥,没有外部模型,没有数据发送到任何地方。它是为在订阅中本地运行 Claude Code 的人设计的;唯一在循环中的 AI 是 Claude Code 本身;摘要由经典的 Python 摘要生成器完成。为何在你的订阅中免费使用召回。它解决了冷启动问题——不再每次会话都重新解释项目——而且没有计量摘要生成器让你产生费用。摘要是一个本地算法,而不是 LLM 调用,因此持久内存只需支付你已经支付的订阅费用,毫无额外成本。节省你的使用积分。有两种方式:(1) 摘要是在本地构建的,因此捕捉和更新你的记忆不会消耗任何模型 token;(2) 从一个紧凑的 context.md (~1–2K token) 恢复,而不是每次会话从头重新解释项目,这样每次会话所花费的 token 会少得多——拉伸你订阅的使用限制(或者在 API 上,减少计费积分)。没有任何东西离开你的机器。你的记录(代码、路径,有时是机密)从未发送到任何 API。大多数 "记忆" 工具将你的上下文通过模型端点传送出去;召回作出隐私保证,这一点他们无法做到。零摩擦。无需 pip 安装,无需本地模型,无需配置密钥,离线工作。插件加载的那一刻,它开始工作。两个文件,写入你的项目下的 .recall/: history.md — 日志。仅追加。每次会话都会在此捕获(你的提示、Claude 的回复、触及的文件和运行的命令)。context.md — 摘要。由本地摘要生成器覆盖——浓缩的“我们现在在哪儿”的内容,你将在下次会话中加载:目标、摘要、下一步 / 开放线程、触及的文件,以及你在何处停下。它是如何工作的?会话期间,Stop / SessionEnd 钩子将新的活动追加到 .recall/history.md。捕获是增量的(仅新回合),并且完全本地。在会话开始时,SessionStart 钩子显示 context.md,并请 Claude 问你两个问题:从保存的上下文恢复吗?并且继续记录这次会话吗?在你结束前,你运行 /recall:save。本地摘要生成器读取 history.md,并(覆盖)写入 context.md。… 或者自动设置 auto_save_context: "on_end",context.md 将在每次会话结束时重新生成——无需 /recall:save。任何地方都没有 LLM 调用——摘要由在本地运行的 TF-IDF + TextRank(提取式摘要)生成。摘要程序 scripts/summarizer.py 对你会话中最核心的句子进行排名:TF-IDF 句子向量,句子之间的余弦相似度图,TextRank — 对该图的 PageRank 幂迭代——对句子进行打分,前 N 个保持原顺序,context.md 将该摘要与直接从记录和 git 拉出的确定性事实包装在一起:目标(你的首次请求)、触及的文件、运行的命令、你停下的地方,以及 git diff --stat。无需安装。整个 TF-IDF + TextRank 实现都包含在 summarizer.py 中。如果 numpy 可以导入,则用于向量化数学(在大会议上更快);如果不行,则用相同的纯 Python TextRank 运行。相同的算法,相同的结果——numpy 是可选的加速器,而不是强制要求。保存输出会告诉你哪个路径运行。命令 /recall:save — 运行本地摘要生成器 → (覆盖)写入 context.md。/recall:show — 打印 context.md。/recall:log — 追踪 history.md。配置 — recall.config.json 将这个放入你的项目根目录以覆盖默认设置:键 默认 目的 output_dir ".recall" history.md / context.md 存放位置。 capture_history true 将会话活动追加到 history.md。 auto_save_context "off" 会话结束时重新生成 context.md:“off” 或 “on_end”。 summary_sentences 8 摘要保持的句子数量。 redact true 在写入 md 文件之前删除明显的机密。 include_git true 将 git diff --stat + 最近的提交添加到 context.md。 max_input_chars 200000 提供给摘要生成器的文本上限(最旧的被删除)。在不编辑配置的情况下暂停项目日志:创建 .recall/.capture-paused。删除它以恢复。隐私与安全 召回不进行网络调用,不使用 API 密钥,也不加载第三方模型。摘要生成器是本地 Python;钩子仅使用标准库(numpy 是可选加速器)。它读取你的会话记录并仅在 output_dir 下写入。具体而言:绝不使用凭证。插件对 API 密钥、认证、ANTHROPIC_* 或 HTTP 没有任何引用。如果 Claude 本身显示“无效的 API 密钥”,那是 CLI 自己的认证——通常是过时的 ANTHROPIC_API_KEY 环境变量遮蔽了你的订阅登录。卸载 ANTHROPIC_API_KEY(或运行 env -u ANTHROPIC_API_KEY claude …)。与召回无关。信息脱敏。最佳努力删除常见的机密形状(API 密钥、token、.env 赋值、PEM 密钥)然后进行写入。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡