fast-jev-compaction:不摘要、只删减的 Claude Code 瘦身插件
fast-jev-compaction 替换 Claude Code 内置压缩:Jev 给每次工具调用和结果打分,过期的删或截断,用户和助手文本逐字保留。
项目资料
GitHub Ecosystem- 许可证
- MIT
- 主语言
- TypeScript
- 星标
- 7,595
- 核查时间
- 2026-10-12
以上快照资料以核查当日为准,可能随版本或运营策略变化。
Claude Code 的长会话用户大概都遇到过:/compact 一开,之前反复强调的约束、某条报错的原文、精心给的命令参数,就被摘要成了几句意思相近的话,后面模型开始重复犯错。内置压缩的本质是让 LLM 总结旧对话,而有损摘要里丢掉的往往正是关键细节。fast-jev-compaction 是 2026 年 9 月 17 日开源的 Claude Code 插件加 npm 库(MIT,TypeScript,截至 2026-10-12 已 7.6k star),立场很干脆:从不重写任何内容,只删减。
核心功能
- 只删不写:候选只有工具调用和工具结果;用户和助手的文本逐字保留、顺序不变。删除靠的是 Jev 对「这个调用还重要吗」「这个结果值得逐字保留吗」两个 Noul 问题的回答,不是摘要。
- 三档处理加可调阈值:答案按 keepThreshold(默认 0.5)分为保留、截断、删除;被降级的工具输入先砍到 1000、再 200、再 60 字符,丢弃的结果默认保留前 300 字符加一条说明。
- 预算写死在配置里:状态默认塞进 maxStateTokens 25k,请求压在 maxRequestTokens 30k 以内——Jev 的请求上限是 32k;首条消息和最近 preserveRecentMessages 条(默认 6)钉住不动。
- 判断语境可以收窄:goal 默认取最近 3 条用户提示作为判断依据,被截断的遗留内容默认保留前 300 字符(truncateHeadChars)加一条说明,不会无声消失。
- 可以只当库用:
compactMessages(transcript, { preserveRecentMessages: 4 })一行接入,Message 是 Claude Code SessionMessage 的子集,会话记录可以直接传入;要自定义传输就实现 JevAsker 的 ask(state, questions)。 - 失败即回落:Jev 失败、答案格式错误、缺 key 或历史塞不进状态时直接抛错,由调用方或 hook 回落到 Claude Code 内置摘要,toast 会写明 fallback 发生了。
典型使用场景
- 被压缩损耗折磨的长会话用户:项目里有一条 “Never edit src/generated” 的约束,
/compact之后模型忘了;装上它,过期的工具结果被删,你和助手的原话一个字不动。 - 自建 agent 框架的 TypeScript 工程师:不想引入整套插件,只要一个可控的压缩函数,顺手把 25k 状态、30k 请求的预算和 reductionRatio 判据接进自己的流水线。
- 做压缩策略 A/B 的人:用
reductionRatio(result) < 0.25做门槛,压缩比不划算时保留原始 transcript 或改回摘要;result.stats 会报告前后消息数、各原因的决策计数和命中的 fitting 阶段。
快速上手
插件方式(推荐):
claude plugin marketplace add tamaratran/fast-jev-compaction
claude plugin install fast-jev-compaction@fast-jev-compaction
前置条件两步:在 ~/.claude/settings.json 里设置 CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 和 TYPESAFE_API_KEY;装完重启 Claude Code 或运行 /reload-plugins。function hooks 是 Claude Code 2.1.274+ 的早期特性,这一点决定了它现在还不是「装上就忘」的插件。只想用库的话:npm install fast-jev-compaction,然后从环境变量读 key。
小结
fast-jev-compaction 适合把 Claude Code 当主力、经常开长会话的人,也适合想自己控制上下文预算的 agent 开发者。要清醒对待的几点:token 数按字符估算,不是真 tokenizer;概率高不等于删除安全,README 原话是 “a probability is not a proof”;完整状态随每轮请求重发,历史越接近上限,每问一次的成本越高;key 不要提交进仓库。另外它的 demo 应用(macOS SwiftUI)只用于录屏演示,不发起真实 API 调用。代码 MIT 协议,TypeScript 编写。同类的 Claude 本机工具还可以看 CCBaga;这个插件在 Jev 生态十例里负责「上下文账」那一节。