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 自动拉起),侧栏即出现悬浮球。
使用
- 正常使用 DSH(任意会话)。
- 点悬浮球(💰)打开面板。
- 「分析实时」看当前会话发现;「全量分析」扫历史(上限 15 会话)。
- 执行层默认开启:重复调用/失败重试/重复读文件会被直接拦截,大结果自动截断。
- 按需关掉某些类别(比如频繁改文件内容时可关「拦截重复读文件」)。
架构
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