DAG总览 / 组目录 / G07 上下文压缩

dsh-compaction-tool-result-pruner · @deepseek-ai/dsh-compaction-tool-result-pruner

Layer 5G07
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 5,层次遍历层序):
↑ Layer 4(13 插件)Layer 5↓ Layer 6(18 插件)

插件信息

包名@deepseek-ai/dsh-compaction-tool-result-pruner
分组G07 · 上下文压缩
拓扑层Layer 5(层次遍历:被依赖方先于依赖方)
源码路径packages/compaction/compaction-tool-result-pruner

① 实现逻辑

无模型、可重放的工具结果裁剪服务 ToolResultPruner:按字符预算把超预算的文段替换为 head+marker+tail,按 Unicode 码点切分以免劈开代理对(src/index.ts:83-122、src/index.ts:68-74)。pruneSession 对当前表面的全部 tool/result 节点做一次稳定快照裁剪,并为每个被遮蔽节点先追加一条 compaction/prune 影子价格事件(经 tokenMeter 计价),再追加带 surfaceOp=replace 的替换事件(src/index.ts:136-182)。配置阈值在加载期校验 head+marker+tail ≤ threshold(src/config.ts:36-65)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

dsh-llmE1
构造不可变的替换工具结果消息并复用其内容块/调用 id 类型
src/index.ts:9 import freezeMessage + src/index.ts:10 import type ContentBlock + src/types.ts:1 import type ToolCallId
dsh-sessionE1
读取当前表面节点并按 surfaceOp 替换/追加会话事件,实现可重放的裁剪事务
src/index.ts:11 import type Session/SessionEvent/SessionSeq/ToolResultMessage + src/types.ts:2 import type SessionSeq + src/index.ts:160 session.append('compaction/prune')
dsh-token-meterE1+E2
为每个被遮蔽节点计价以写入影子价格事件,使纯消费者无需保留逐节点状态即可扣减
src/index.ts:15 type-only import + src/index.ts:47 static inject ['tokenMeter'] + src/index.ts:163 this.ctx.tokenMeter.estimateMessage

④ 被依赖(dependents · 下游消费者)

dsh-compaction-basic
可选地先执行无模型工具结果裁剪降低压力,再决定是否摘要;缺少该插件时保持可独立组合
src/index.ts:18 type-only import (makes sibling service available to ctx.get) + src/index.ts:292 this.ctx.get('toolResultPruner') + src/index.ts:295 prune.pruneSession