返回插件市场

dsh-argp

Agent 与工作流

yoza10635/dsh-argp

守卫式上下文压缩:LLM 只提议、确定性守卫裁决——逐原子缩放 + 惰性引用图剪枝(0-LLM)+ 追加式日志逐字节召回;压缩率精确兑现,历史永不销毁。

  • agent
  • compaction
  • context-compression
  • cordis
  • deepseek-harness
  • dsh
  • dsh-plugin
  • llm
GitHub Stars
4GitHub
浏览量
0DSH Plugin Hub
Forks
0GitHub
开放问题
0GitHub Issues
Manifest 版本
1.0.4dsh-argp
最近推送
2026年9月3日GitHub
许可证
MITTypeScript
插件类型
Host + Client同时运行于 Host 与 Web Client

验证与兼容性

这里展示目录实际采集到的证据;未声明的信息会明确标为未知。

运行时已验证
01精确来源: npm · dsh-argp@1.0.402验证时间: 2026年9月3日03验证版本: 0.1.0-rc.7
当前版本兼容性
已在当前目录版本验证
声明的 Harness 范围
未声明
声明的平台
未声明
适用 Profile
web
构建授权
未检测到需要
权限声明
未声明
外部服务
未声明
遥测声明
未知
未发现已知风险标记

这不是安全背书;安装前仍应查看源码、权限和配置。

查看证据与判定范围

验证仅覆盖标出的来源、版本和 Harness 环境,不代表未来版本仍然兼容。

  • dsh-argp@1.0.4
  • 插件已在隔离环境完成加载检查。

README

查看源文件

English | 中文

dsh-argp — 双引擎上下文压缩:逐原子守卫压缩 + 引用图确定性剪枝

CI GitHub Release License: MIT

dsh-argp 是 DeepSeek Harness(dsh)的第三方上下文压缩引擎(1.0.0 双引擎形态):

  • Stage-1 逐原子压缩(eager,每轮)——轮末对当轮原子做"缩放"而非丢弃:模型按原子自选 extract(逐字摘录)/ summary(概括,丢弃项入账审计)/ false(保留原文),确定性守卫裁定提案能否落地——extract 缺任一高信号 token 即整体拒绝。LLM 只提议,永不销毁。
  • Stage-2 引用图剪枝(lazy,超阈值时)——原子引用图(确定性 A→R 配对边 + 模型声明的语义 cites 边)上按反向拓扑序整原子摘除,压缩阶段 0 次 LLM 调用,压缩率精确兑现。
  • append-only 日志是唯一事实源——被压/被剪内容原文永远在日志里,两级召回 recall_summary / recall_detail(逐字节一致,哈希测试锁定)随取随回。上下文是日志的一个渲染视图,不是历史本身。

为什么

摘要式压缩(LLM 重写历史)有三重代价:

  1. 信息有损——精确 token(路径、错误码、配置值)在改写中最先死,且不可找回;
  2. 缓存全断——重写后的历史使 system+前缀逐轮变化,跨轮 KV/prefix cache 从变化点起全部失效;
  3. 压缩率失控——摘要长度由模型心情决定,预算不可兑现。

ARGP 的回答:LLM 在环内、但戴着镣铐——它的输出永远是"不可信输入提案",守卫按 verbatim 纪律裁决;遗忘是确定性的——0-LLM 图规则保证收敛与预算;历史不可变——append-only 日志承载全部原文,召回契约(never guess)兜底。

实测(30 轮合成多轮编码任务,四臂对照,spike 37):四臂中唯一同时达成 7/7 探针保真且成本低于现役基线的臂是双引擎全开臂(A);传统摘要基线(D)最便宜但探针 5/7——吞掉精确字符串与关键大意。卖点不是"最便宜",是"保真前提下最省"(A 全成本分量 ≤ 基线 C;比 D 贵 3.39×——这个差距就是保真的价格,明码标价)。

实现方式(双引擎管线、反向拓扑剪枝、shadow-price 契约、模块职责)见 ARCHITECTURE.md

核心机制

Stage-1:PeratomCompressor(eager 熵降)

  1. 确定性门控gate.ts):纯谓词判定"该轮是否可压"(长 user 消息 / 超 512 字符 tool result / 非版本链成员);LLM 只执行"怎么压"。
  2. 逐原子决策:单次 LLM 调用返回 {seq, level, text} 决策——extract(逐字子集拷贝,守卫硬拒缺失)/ summary(概括放行,丢弃 token 逐条入账 summaryDropped 供审核)/ false(显式不压,保原文);长 user 消息走拆分(dialog 逐字抄写 + 余量聚合 U-info,空隙归 info)。
  3. no-op 守卫:收益 ≤5% 的"全文照抄"副本视同 false,不 emit replace(0 收益替换白花 surface 换代)。
  4. tail-only 替换:只允许 sourceEventSeqs ⊆ 当轮区间(越界即 bug,断言锁定);前缀指纹测试证明 N 轮逐轮压缩后请求前缀稳定(缓存经济的生命线)。

Stage-2:ArgpGraphEngine(lazy 图剪枝,0-LLM)

  1. 原子化 + 建图:确定性边(assistant → 其 tool result,经 toolCallId)+ 语义边(模型按契约输出的 {"cites":[{"t":"前缀","l":"c|s|x"}]},四级分级 critical/supporting/contextual/isolated)。
  2. 拓扑剪枝:反复摘除入度为 0 的原子(边等级 → 有效重要性 → 最近引用轮次排序),被剪引用方的出边消失、下游逐 pass 解锁;闭包生命周期(ACTIVE→COMPLETED→PRUNABLE→PRUNED)整闭包退休已完成任务。
  3. 压缩率精确兑现:window = contextWindow×0.8 触发、retain = window×0.2 目标;降级链 lifecycle→summarize→force→fail 收敛到预算或显式失败,实测 200K→160K 触发→32K 保留精确落地。

桥接与召回

  • CiteDeclarer(每轮):模型按窗口声明跨轮引用边,经 injectEdges 通道喂给 Stage-2——实测召回效率 ≈ 无边臂的 2.6×(zoom 精准定位)。
  • RecallZoomrecall_summary(seq)(读压缩态)/ recall_detail(seq)(日志原文逐字节);4 倍制预算(summary 预算 = 4×detail),超限返回引导文案而非硬拒。历史被剪原子另有 recall_pruned / list_pruned

模型要求

per-atom 的拆分/压缩决策质量依赖模型指令遵循能力;守卫保证任何模型上都"不会压坏"(错误方向只往少压错),但收益随服从率缩放

  • 实测基准:本地 Qwen3.6-35B-A3B / Qwen3.8-27B 全链路 30/60 轮 0 error、探针 7/7;拆分抄写表示法解析失败 0%(vs 区间定位法 72%)。
  • DeepSeek 系模型的已知特性:系统提示词与用户指令冲突时(如任务 prompt 写 "nothing else")cites 声明可为 0——语义选择性归零,但 Stage-1 守卫压缩与 Stage-2 确定性剪枝照常工作、不变式全过(50 轮 v4-flash 实证)。任务 prompt 给 cites 留出口后声明率恢复(10 轮实测 43.6%)。

安装与挂载

从 npm 安装(v1.0.0 双引擎形态):

dsh plugin --profile <name> add dsh-argp

profile 的 cordis.patch.yml 中禁用 stock 摘要器:

- id: compaction-basic
  disabled: true

挂载由包的 bundle patch(cordis.patch.yml)负责(insert 创建 entry);profile 层只做配置覆盖(modify),不要再 insert(否则 duplicate loader entry id)。

双引擎配置(1.0.0 形态)

Stage-1 组件默认跟随环境变量解析端点(DEEPSEEK_API_KEY);生产建议显式指向宿主 dsh-llm:

- id: dsh-argp
  config:
    compressor:
      llm: { provider: deepseek-official, model: deepseek-v4-flash }   # dsh-llm 后端
    declarer:
      llm: { provider: deepseek-official, model: deepseek-v4-flash }   # 可指向独立 lite 档

不配 llm 时按 endpoint/apiKey config 或环境变量走 OpenAI 兼容直连(本地 llama.cpp 实验形态,行为不变)。Stage-2 预算默认比例驱动(window=ctx×0.8 / retain=window×0.2),无须硬编码。

验证结果

四臂对照(30 轮合成多轮编码,本地 Qwen3.6-35B-A3B,spike 37)

配置探针成本(空闲价)结论
A 双引擎全开compressor + declarer + graph + zoom7/7¥0.454唯一 7/7 且 ≤ 基线成本的臂
B 无边declarer 关7/7¥0.556召回次数 31 vs A 的 12(declarer ≈2.6× 更省)
C 现役基线仅 graph(溢出才剪)6/7(R2 漏检)¥0.802A 全成本分量 ≤ C
D 摘要基线dsh 原生 BasicCompactionEngine5/7(丢精确 token + 大意)¥0.134最便宜但丢保真——反衬"保真前提下最省"

防干涉:A/B/C 三臂 append-origin 原文零替换(A 140 / B 154 / C 216 事件);前缀稳定:A 臂 21 个主请求指纹全同。

水位与轮次放大

固定窗口(16K tok)下的实测行为(P5-bis,本地 Qwen3.6-35B-A3B,2026-08-28;证据细节见 CHANGELOG):

  • 轮数显著放大:零压缩对照在 ~20 轮触窗终止,双引擎同预算下持续存活至满预算(~60 轮量级)——固定窗口下的可持续轮数呈数量级提升(下界口径,禁裸引用"数倍",须带窗口/任务/模型三要素)。
  • 缓存逐请求前缀稳定性零劣化:双引擎与零压缩对照的逐请求前缀指纹分布一致;压缩事件仅引入一次性重算税,无持续累积劣化。

Graph 引擎历史验证(v0.3.x,DeepSeek v4-flash / Qwen3.8-27B)

50 轮 t-long:U 锚点 7/7、needle 7/7(5/7 经 recall 找回)、4 事务 0 error、压缩目标精确兑现(32K);200K 主流档成本 ¥2.695 vs 基线 high ¥3.087(该基线含 77% 空流 error,系平台 B-5 缺陷——对照数字按此口径解读,disabled 档 ¥3.19 为更干净的对照)。

复现

实验命令验证内容
四臂对照(需本地模型)ARGP_ARM=A|B|C|D|E node spike/37-peratom-three-arm.ts探针保真、成本三元组、防干涉、K_no/放大
per-atom soaknpm run spike36门控/链/守恒/前缀/VK-atom 八判决
50 轮 t-longARGP_DEEPSEEK_THINKING=enabled node spike/06-tlong.tsL1/L2/L3 不变式、锚点/needle、精确预算
合成 0-LLMnpm run spike8a单事务零 LLM 调用
逐原子审计node spike/atom-audit.mjs <产物目录>事件驱动逐原子压缩/剪枝明细

npm run check = typecheck + smoke + 单测(202/202 全绿,2026-09-02)。每个数字都带产物路径(证据落点见 CHANGELOG.md)。

平台缺口反馈(给 dsh)

tool/result 替换无结构化元数据通道(B-1)、compaction/prune 游离于事务状态机(B-3)、headless 测试装配 tokenMeter 静默失效(B-4)、摘要空流(B-5)、surface 窗口丢弃无痕迹(B-6)——正式记录见 dsh Discussions(#1090 及关联帖)。

已知限制

  • B-6 窗口截断盲区:未被 ARGP 替换的 live 节点在逼近 contextWindow 时被请求组装层截掉最旧部分、不留痕迹——recall_pruned 取不回它们。缓解:比例预算前移触发点;根治在 dsh 侧(B-6 立案中)。
  • 模型依赖(如实版,见上):守卫保证安全,收益依赖服从率;lite 档多模型分工的服从率未实测(台账 D21)。
  • per-atom 输出税:Stage-1 每轮的压缩调用是 side-channel 成本(30 轮实测 completion 7.2K tokens,不进上下文但计入总成本);dsh-llm 后端的 usage 已入 record,spike 汇总口径接入中。
  • tombstone 两跳召回:占位文本经多轮演化后原 seq 可能丢失,recall_pruned(seq) 需正确编号(B-6 落地后一并消除)。

问题反馈

  • Bug:开 Issue。附 dsh --version、本包版本、profile 配置(windowTokens/retainTokens 等)与最小复现步骤,定位会快很多。
  • 设计讨论 / 使用问题:开 Discussion

License

MIT

评论

0
最新优先