fast-jev-compaction Claude Code 插件:用 Jev 逐条决策替代摘要式上下文压缩

发布时间:2026/9/30 11:38:57
fast-jev-compaction Claude Code 插件:用 Jev 逐条决策替代摘要式上下文压缩 人工智能AI AgentAI 插件Agent 记忆【免费下载链接】fast-jev-compactionClaude Code plugin that replaces the compaction summary with Jev decisions: every tool call and result is scored in one fast request, stale ones are dropped or truncated, everything kept stays verbatim.项目地址https://gitcode.com/gh_mirrors/fa/fast-jev-compaction点击查看免费下载本文介绍 fast-jev-compaction 仓库中的 Claude Code 函数钩子function hooks模块它通过session.compact与turn.complete两个钩子把 Claude Code 默认的总结式压缩替换为 Jev 模型对每条工具调用与工具结果的逐项取舍决策保留内容原样verbatim仅删除或截断被判定为不再需要的工具调用与结果。读完本文你将掌握该插件的安装启用方式、全部配置项及其含义、运行时兜底与诊断机制以及薄适配层hooks/fast-jev.ts与核心库src/之间的协作原理。插件定位只删不改的压缩绝大多数上下文压缩方案会请 LLM 总结旧轮对话而总结是有损的一个文件路径、一条精确报错、一个约束或一条命令即使之后仍然关键也可能在总结中消失。fast-jev-compaction 从不改写任何内容——它只删除 Jev 判定为不再需要的工具调用和工具结果并且在询问 Jev 时把完整对话作为state展示给它工具输出被替换为一行说明。用户与助手user/assistant的文本永远保持原样且顺序不变。hooks/fast-jev.ts是一个薄适配器thin adapter它读取插件选项、找到 TypeSafe 密钥、把session.compact的会话转录transcript交给仓库根目录src/下的fast-jev-compaction库插件目录就是仓库根目录所以钩子可以直接 import再把库的返回结果映射回会话消息。对应钩子入口在 hooks/hooks.json 中声明为./fast-jev.ts。安装与启用依赖函数钩子早期功能函数钩子是 Claude Code 的早期访问early-access能力。仓库内检入的类型参考type reference由 Claude Code2.1.274生成位于 types/claude-code.d.ts。在安装或加载该插件之前必须先启用函数钩子表面export CLAUDE_CODE_ENABLE_FUNCTION_HOOKS1 export TYPESAFE_API_KEYyour TypeSafe key claude plugin marketplace add tamaratran/fast-jev-compaction claude plugin install fast-jev-compactionfast-jev-compaction本地开发从仓库检出目录直接运行无需发布CLAUDE_CODE_ENABLE_FUNCTION_HOOKS1 claude --plugin-dir .CLAUDE_CODE_ENABLE_FUNCTION_HOOKS1需要在 Claude Code 运行的每一处都设置例如写入~/.claude/settings.json的env块参见仓库根 README.md。插件清单由仓库根的.claude-plugin/marketplace.json提供.claude-plugin/plugin.json 声明了插件元数据当前版本 0.3.0与userConfig各项。安装后重启 Claude Code 或执行/reload-plugins此后/compact与自动压缩都会经由 Jev 执行。配置项一览插件在.claude-plugin/plugin.json中声明的userConfig值及其默认值如下OptionDefaultkeepThreshold0.5preserveRecentMessages6compactAtPercent60minReductionRatio0.25maxStateTokens25000maxRequestTokens30000truncateHeadChars300modeljev-latestkeepThreshold保留某个工具调用或工具结果所需的最低 Jev 概率低于阈值即被移除。preserveRecentMessages最新的多少条消息被钉住pinned不参与压缩第一条消息永远保留。compactAtPercent当上下文使用百分比达到该值时turn.complete钩子触发压缩请求。minReductionRatio替换历史所需的最低估计字符缩减比例低于它则回退到内置摘要。maxStateTokens随每次 Jev 请求发送的对话状态的估计 token 预算。maxRequestTokens单次 Jev 请求中状态 问题的估计 token 预算。truncateHeadCharsJev 判定完整输出不再需要时工具结果保留的前若干字符0表示只保留说明性注记。modelTypeSafe Jev 模型名默认jev-latest对应 src/request.ts 中的DEFAULT_MODEL。TypeSafe 密钥可以通过敏感的插件选项apiKey提供也可以通过环境变量TYPESAFE_API_KEY提供环境变量是推荐的开发配置。除apiKey、compactAtPercent、minReductionRatio和model外其余选项原样传给库其具体含义与行为见仓库根 README.md 的 Options 表。配置解析实现在 hooks/fast-jev.ts 的resolveHookConfig数值选项经optionNumber校验必须是有限数值否则回退默认值字符串选项经optionString校验apiKey与goal存在才写入配置。钩子自身的默认值compactAtPercent: 60、minReductionRatio: 0.25、model: DEFAULT_MODEL定义在HOOK_DEFAULTS。运行时行为两个钩子的分工session.compact并发请求 兜底session.compact钩子把会话消息交给compactSessionhooks/fast-jev.ts后者要求必须存在apiKey否则抛出TYPESAFE_API_KEY is not configured然后调用库的compact()。Jev 请求并发执行。密钥的查找优先级在getApiKeyhooks/fast-jev.ts中实现插件选项apiKey→ 环境变量TYPESAFE_API_KEY→ Claude Code 设置中的env.TYPESAFE_API_KEY。在以下任一情况下钩子记录一条回退日志并把控制权交还 Claude Code 的内置压缩next(event)Jev 请求失败响应格式异常如返回非 JSON、缺少answers字段——校验见 src/request.ts 的parseJevResponse密钥不可用历史无法被拟合进状态预算fitState抛出 history too large for Jev估计缩减比例低于minReductionRatio。正常路径下结果通过toSessionMessageshooks/fast-jev.ts映射回会话消息未经改动的内容复用引擎自身的对象含 handle被重建的消息则是没有 handle 的新对象引擎据此采用编辑后的内容。最终返回{ messages }替换原历史。结果呈现与诊断结果以 toast 形式展示并记录日志包含缩减比例、各原因计数、状态大小与请求次数summarizehooks/fast-jev.ts格式如45% reduction; 12 kept, 5 results truncated, 2 call_dropped, 3 pinned; state ~18k tokens (texts abridged) in 3 request(s)其中stateStage表示命中的拟合阶段见下文。每条调用还会输出一行decisions:诊断日志decisionLogLineshooks/fast-jev.ts格式为id:tool:action/callkeepCall/resultkeepResult两个概率都保留两位小数pinned原因的行不参与该日志。超长日志会按最多 4096 字符分块输出。turn.complete达到阈值自动压缩turn.complete钩子hooks/fast-jev.ts通过$.session.usage()读取上下文使用百分比当context.percent达到compactAtPercent时调用$.session.compact()并用compacting布尔值作为在途守卫避免压缩进行中重复触发失败时仅记录 auto-compact skipped (…)。库侧原理状态拟合与请求分批钩子只是薄适配层核心决策在src/。压缩入口是 src/compact.ts 的compact()完整流程如下配对与钉住collectToolCallssrc/state.ts按tool_use_id将每个tool_use与它的tool_result配对第一条消息以及最新preserveRecentMessages条消息中的调用被钉住永不改动。构建状态发送给 Jev 的state是到目前为止的完整对话最旧在前每个工具结果被替换成一行说明如ok, 4213 chars (omitted)工具输入、文本都包含其中不做任何总结goal默认取最近 3 条用户提示goalFromMessages。分阶段拟合状态需要塞进maxStateTokens默认 25k预算fitStatesrc/state.ts按序尝试多个阶段只有上一阶段不够时才应用下一阶段工具输入截断1000 → 200 → 60 字符长文本摘要化head 400 tail 150中间[… N chars omitted …]最旧的非钉住消息优先钉住消息最后旧的非钉住消息折叠为[… N chars omitted …]单行注记旧工具调用压缩为每行一条如t12 Read file_pathsrc/a.ts → ok 480ch旧的不含调用的消息被剔除连续的旧纯调用消息合并为一条条目。全部尝试后仍超预算则抛出异常。命中的阶段名full、inputs200、texts abridged、old messages collapsed、old calls compacted、old messages left out、old calls merged等会写入stats.stateStage。无 tokenizer 的估算estimateTokenssrc/state.ts按字符数估算——每 6 个字母 1 token、每个数字 0.5 token、其他符号约 0.9 token并向上取整校准目标略高于 Jev 实际报告的计数。请求分批问题被拆分为尽可能少的请求使每个请求状态 问题保持在maxRequestTokens默认 30k低于 Jev 的 32k 请求上限以内batchCallssrc/compact.ts还会预留 20 token 的请求信封开销完整状态随每个请求重新发送请求并发执行后合并答案。逐条决策对每个非钉住调用Jev 收到两个noul问题questionsForsrc/compact.ts该调用是否应留在历史中知道这次调用发生过、带什么输入对助手接下来的行动仍然重要以及该结果是否应原样保留助手仍需要其内容且重跑工具无法替代。decideCallsrc/compact.ts按keepThreshold判定keepResult ≥ threshold→ 调用与结果都保留keep否则若keepCall ≥ threshold→ 保留调用结果截断为前truncateHeadChars字符加一行注记drop_result否则 → 调用连同其结果一并删除drop_call。重建消息列表applyDecisionssrc/compact.ts重建会话——内容全部丢失的消息被移除未触动的消息原样返回保持同一对象任何结果都不会脱离其调用单独存在。截断注记形如[fast-jev-compaction truncated N chars of this tool result; re-run the tool if needed]错误结果会标注(error)。回退与解读当 Jev 无法移除足够内容如会话过短或调用失败时toast 显示fallback to built-in summary (…)成功用裁剪后的历史替换内置摘要时toast 显示kept N/M messages, no summary (…)M为原始消息数N为保留消息数。判定是否值得替换的依据是reductionRatio字符缩减比例src/compact.ts与minReductionRatio的比较。适用范围与注意事项函数钩子属早期功能可能在 Claude Code 版本间发生变化。本插件使用 2.1.274 生成的声明types/claude-code.d.ts升级 Claude Code 后应重新生成并审查该文件。只有工具调用与工具结果是候选对象输出中的文本消息永远不会被删除或缩短它们只会在 Jev 所见的状态中被摘要化。token 大小是从字符数估算的不是 tokenizer概率本身不能证明删除某个结果是安全的助手随时可以重跑工具。完整状态随每个请求重复发送因此接近状态上限的历史每少量问题就会消耗一次请求。单元测试tests/fast-jev-compaction.test.ts、tests/hook.test.ts使用假 Jev从不接触 TypeSafe 网络接口npm run demoexamples/demo.ts是实网验证。相关官方资料可参考 Claude Code 的 plugins、plugins reference 与 hooks 文档早期访问功能具体行为以当前版本为准。赞分享人工智能AI AgentAI 插件Agent 记忆【免费下载链接】fast-jev-compactionClaude Code plugin that replaces the compaction summary with Jev decisions: every tool call and result is scored in one fast request, stale ones are dropped or truncated, everything kept stays verbatim.项目地址https://gitcode.com/gh_mirrors/fa/fast-jev-compaction点击查看免费下载相关推荐fast-jev-compaction用 Jev 决策替代摘要式压缩的 Claude Code 上下文压缩插件fast jev compaction用 Jev 决策替代摘要式压缩的 Claude Code 上下文压缩插件 导读 fast jev compaction人工智能AI AgentAI 插件Agent 记忆fast-jev-compaction完整配置指南在Claude Code中用Jev决策替代压缩摘要fast jev compaction完整配置指南在Claude Code中用Jev决策替代压缩摘要 fast jev compaction 是一个 Clau人工智能AI AgentAI 插件Agent 记忆3分钟快速上手fast-jev-compactionClaude Code上下文压缩插件安装教程3分钟快速上手fast jev compactionClaude Code上下文压缩插件安装教程 还在为 Claude Code 上下文压缩丢失关键信息而烦恼人工智能AI AgentAI 插件Agent 记忆创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询