Back to home@VioletScar-Hui

trcost-plugin

轨迹省钱优化器:DSH 会话轨迹 token 浪费分析 + waterfall 执行层强制拦截/截断。Trajectory cost optimizer with enforcement layer for DeepSeek Harness.

Stars
0
Language
TypeScript
Created
Aug 28, 2026
Updated
Aug 28, 2026

Introduction

trcost — 轨迹省钱优化器 (Trajectory Cost Optimizer)

DSH 插件:实时分析 DeepSeek Harness 会话轨迹中的 token 浪费点(重复调用 / 失败重试 / 大结果 / 死胡同 / 重复读文件), 并用 执行层强制 的方式直接减少浪费——不是靠模型自觉,而是在工具调用前后拦截/截断。

纯确定性规则,零 LLM 成本,不消耗额外 token。

为什么做这个

LLM 会话中大量 token 被浪费在模型"重复做事"上:同一个文件读 3 遍、失败后盲目重试同一命令、一次拿到 40KB 的工具输出全文回流上下文。 之前靠系统提示词提醒(建议层)效果有限——模型不一定遵守。本插件新增 执行层:在 harness 的 waterfall 钩子上强制处理。

功能

建议层(分析 + 注入)

  • 实时捕获全部会话轨迹(session/event),每会话有界环形缓冲。
  • 5 条确定性诊断规则:
    • R1 重复调用:同工具 + 同参数重复执行
    • R2 失败重试:失败后盲目重试同一工具
    • R3 大结果:单次工具输出 > 30KB 回流上下文
    • R4 死胡同:连续失败/空结果探索
    • R5 重复读文件:同一文件多次整读
  • 有发现时生成省钱规则注入系统提示词(systemPrompt.section,order 150,每轮动态求值,无发现不出文本)。

执行层(强制,waterfall 钩子)

类别钩子行为
拦截重复调用tools/pre-execute窗口内(60s)同工具+同参数已成功调用 → deny,引导复用上次结果
拦截失败重试tools/pre-execute相同参数上次失败 → deny,引导先读错误
拦截重复读文件tools/pre-execute窗口内已读的文件 → deny
截断大结果tools/post-execute>30KB 的成功结果进上下文前截断(保留头 6KB + 尾 2KB + 截断说明)
  • 每个类别独立开关;同一调用窗口内只 deny 一次(防死循环);所有拦截均有日志与统计。
  • 不影响失败结果(错误完整保留),不拦截时走原生 next 链。

交互

  • 悬浮球(可拖拽、位置记忆):点击开/关报告面板。
  • 面板:分析统计(会话/事件/估算 token/可省)、执行层统计(拦截 N / 截断 N / 省 tokens)、 每类开关、findings 列表、当前注入规则预览、一键复制规则。

安装

从 npm(市场收录后)

dsh plugin --profile web add trcost-plugin

从 GitHub

dsh plugin --profile web add github:VioletScar-Hui/trcost-plugin

安装后重启 DSH 宿主(或让 supervisor 自动拉起),侧栏即出现悬浮球。

使用

  1. 正常使用 DSH(任意会话)。
  2. 点悬浮球(💰)打开面板。
  3. 「分析实时」看当前会话发现;「全量分析」扫历史(上限 15 会话)。
  4. 执行层默认开启:重复调用/失败重试/重复读文件会被直接拦截,大结果自动截断。
  5. 按需关掉某些类别(比如频繁改文件内容时可关「拦截重复读文件」)。

架构

  • src/host/index.ts:TrcostService(TypertRemoteService)+ 捕获/分析/执行层 + RPC。
  • src/client/index.tsx:悬浮球 + 面板(shell.overlay)。
  • RPC:trcost/analyze | state | toggle | diag(SRC 模式)。
  • 零运行时依赖:所有规则确定性实现,不调用任何 LLM。

开发

bun run build          # 全量构建(host ESM + client bundle)
bun run build:host     # 仅 host
bun run build:client   # 仅 client(浏览器刷新即生效)
bun run deploy:host    # 构建 host 并受控重启(走 dsh-ops/dsh-plugin-dev.sh)

License

MIT