Skip to content

dsh-plugin-codemode

Verified

dsh-plugin-codemode · v0.1.1 · MIT · Web UI

Pi-style Code Mode for DeepSeek Harness: Programmatic Tool Calling via QuickJS-WASM sandbox

Install

dsh plugin add dsh-plugin-codemode

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-plugin-codemode (䞭文文档)

npm version License: MIT Platform: DeepSeek Harness Tests: Passing Engine: Dual (V8 VM + QuickJS)

English | 䞭文诎明

面向 DeepSeek Harness (DSH) 的 Pi 风栌 Code Mode皋序化工具猖排插件。
将䌠统单步 ReAct 的 O(N) 冗长埀返蜬换䞺单蜮 O(1) 圚隔犻沙箱䞭执行的 JavaScript 猖排脚本。


⚡ 实测数据对比本仓 17 䞪真实文档实测

测试样本䞺仓库 docs/ 目圕䞋党郚 17 䞪真实 Markdown 文档包含 131 KB 的倧型运绎台莊 known-issues.md原始总文本量 215,011 字笊。
测试任务倚文件并发扫描提取包含“JEV/Polymarket/架构/规则”关键因子的目标圚沙箱内完成行数统计、銖段标题提取䞎降序排序蟓出 Top 5 摘芁。

评测绎床 䌠统单步 ReAct 亀互 Code Mode (沙箱皋序化猖排) 实测䌘化幅床
流入䞻䞊䞋文数据量 215,011 字笊 676 字笊 䜓积压猩 99.7% (提炌比 318:1)
䌰算消耗 Input Tokens ~67,191 tokens ~211 tokens Token 节省 99.7% (减莟 6.7 侇 tokens)
亀互埀返蜮次 (Turns) 19 蜮埀返 1 蜮完成 蜮次减少 94.7% (消陀 18 蜮埀返)
本地纯 I/O 及计算耗时 3.94 ms 2.76 ms 基本持平毫秒级极速
端到端总完成耗时 ~47.5 秒 (按单蜮掚理 2.5s 计) ~2.5 秒 提速 19 倍 (耗时猩短 94.7%)
䞭闎计算䞎排序准确性 倧䞊䞋文手算易遗挏幻觉 JS 原生 Array 过滀排序 100% 确定性䞥栌准确

本地倍现呜什node tests/benchmark-codemode-vs-react.mjs


💡 䞺什么需芁 Code Mode

䌠统倧暡型 Agent 圚工具调甚䞭存圚䞉倧痛点

  1. 䞊䞋文爆炞批量读取 20 䞪文件产生 20 侇 Token 原始脏数据塞满 Context极易匕发暡型泚意力挂移或区制压猩。
  2. 高亀互延迟每䞀䞪细碎的工具调甚郜必须等埅䞀次眑络䌠蟓和完敎的暡型掚理埀返。
  3. 计算倱真让暡型圚长序列 Prompt 䞭数行数、比倧小或做排序经垞出现数数幻觉䞎逻蟑疏挏。

Code Mode 的栞心讟计哲孊䞎官方背景

“确定性逻蟑園代码䞍确定性思考園倧暡型。”Put deterministic things in code, non-deterministic in LLM — Hacker News 瀟区共识

深床对标 Pi 1.0 (Earendil) 官方 Code Mode 架构及 Cloudflare 生产实践

  • Pi.dev 1.0 官方 Codemode 文档确立了基于内存沙箱䞎延迟暎露的皋序化工具猖排Programmatic Tool Calling标准。
  • Cloudflare / CamelAI 生产案䟋将 Agent 从沉重的 VM 容噚迁移至 Pi Code Mode + Durable Objects实现成本数量级䞋降䞎超䜎亀互延迟。
  • Hacker News 栞心研讚 (#49019301)实测圚倚工具/倚文件工䜜流䞭沙箱化代码猖排盞蟃于䌠统 ReAct 对话埀返最高可实现 99.2% 的成本猩减。

通过 Code Mode暡型只需芁猖写䞀段简短的 JavaScript 匂步凜数。脚本圚受控沙箱内并行调甚各类宿䞻和 MCP 工具盎接圚内存完成过滀、枅掗和排序仅将最终提炌的结构化数据返回䌚话历史。


🏗 架构拓扑

┌──────────────────────────────────────────────────────────┐
│                   DeepSeek Harness (DSH)                 │
│                                                          │
│  ┌──────────────────────┐      ┌──────────────────────┐  │
│  │ LLM 䌚话䞻䞊䞋文     │      │   ctx.tools / MCP    │  │
│  │ (Main Context)       │      │  (read, pwsh, mcp..) │  │
│  └──────────┬───────────┘      └──────────▲───────────┘  │
│             │ script                       │             │
│             â–Œ                              │ invoke      │
│  ┌─────────────────────────────────────────┮──────────┐  │
│  │ dsh-plugin-codemode (Cordis 劚态插件)               │  │
│  │                                                    │  │
│  │  ┌──────────────────────────────────────────────┐  │  │
│  │  │ 双栞隔犻沙箱 (Dual-Engine Sandbox)           │  │  │
│  │  │                                              │  │  │
│  │  │  • V8 VM 匕擎 (默讀): 原生高速、无内存䞊限   │  │  │
│  │  │  • QuickJS-WASM: WebAssembly 纯内存隔犻      │  │  │
│  │  │                                              │  │  │
│  │  │  - Proxy: 劚态映射 tools.<tool_name>(args)   │  │  │
│  │  │  - 支持 Promise.all 真正并发                 │  │  │
│  │  │  - 60s 硬超时熔断机制                        │  │  │
│  │  │  - 拊截自我递園调甚                          │  │  │
│  │  └──────────────────────────────────────────────┘  │  │
│  └──────────────────────────┬─────────────────────────┘  │
│                             │ 仅返回粟炌结果             │
│                             â–Œ                            │
│  ┌────────────────────────────────────────────────────┐  │
│  │ 返回䞻䞊䞋文: [Logs] + [Return Value]              │  │
│  └────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────┘

✹ 栞心特性

  • 🚀 双栞沙箱支持
    • V8 VM 匕擎 (engine: 'vm', 默讀)䞎 DSH 官方工䜜流 PTC 架构对霐0 额倖内存匀销支持任意倧文件吞吐䞎高并发。
    • QuickJS WASM 匕擎 (engine: 'quickjs')蜻量级 WebAssembly 纯内存沙箱零 Node/OS 原生暎露。
  • 🔄 党局透明工具代理䞎零匀销自省
    • 原生映射 DSH 党郚内眮工具 (read, edit, pwsh, glob) 侎 MCP 工具 (mcp__github__*, mcp__cua*, mcp__tavily__*)。
    • 零 Token 提瀺词底噪探查无需圚对话䞊䞋文塞入䞊癟䞪工具的臃肿 Schema
      • tools.list()秒级获取内存䞭已挂蜜的工具名称数组。
      • tools.help('namePattern')圚沙箱内存里按需自省参数定义䞎诎明节省 90% 以䞊系统提瀺词底噪。
  • 🛡 坚固安党防技
    • 60 秒硬超时熔断机制死埪环自劚销毁沙箱。
    • 递園调甚拊截犁止圚脚本内套嚃调甚 codemode 自身。
    • 50,000 字笊溢出保技超长蟓出自劚安党截断。
  • 📊 零入䟵可回滚䞍改劚 DSH 任䜕系统栞心文件纯配眮级倖挂插件。

📖 兞型脚本瀺䟋

1. 批量倚文件并发扫描䞎提炌

// 同时扫描 src 目圕䞋所有文件并提取富出凜数
const files = await tools.glob({ path: 'src', pattern: '**/*.ts' });
const results = await Promise.all(files.slice(0, 10).map(async (file) => {
  const code = await tools.read({ file_path: file });
  const exportedFns = code.match(/export (?:async )?function \w+/g) || [];
  return { file, count: exportedFns.length, functions: exportedFns };
}));

// 按富出数量降序排列仅返回前 3 䞪
return results.sort((a, b) => b.count - a.count).slice(0, 3);

2. 零 Token 劚态自省䞎按需 MCP 猖排

// 圚沙箱内劚态探测工具无需向暡型暎露 140+ 䞪繁倍的 JSON Schema
const available = tools.list();
console.log(`圓前掻跃工具数: ${available.length}`);

// 仅圚需芁时按需查阅某䞪工具的入参文档
const prHelp = tools.help('github__list_pull_requests');
console.log(prHelp);

// 通过 GitHub MCP 拉取 PR 列衚并圚内存䞭提炌
const prs = await tools.mcp__github__list_pull_requests({
  owner: 'deepseek-ai',
  repo: 'deepseek-harness',
  state: 'open'
});

return prs.map(pr => ({
  number: pr.number,
  title: pr.title,
  user: pr.user?.login
}));

🚀 安装䞎启甚

方匏 Adsh plugin add掚荐

dsh plugin add dsh-plugin-codemode

包内声明了 dsh.bundle.patchcordis.patch.yml安装噚䌚自劚把宿䞻行插进䜠的 profile 无需手工猖蟑。重启 DSH 后 codemode 工具即出现。

方匏 B通过 npm 手劚安装

进入䜠的 DSH profile 目圕劂 ~/.dsh/profiles/web

pnpm add dsh-plugin-codemode
# 或: npm install dsh-plugin-codemode

然后自行把挂蜜项加到 ~/.dsh/profiles/web/cordis.patch.yml

- insert:
    - id: plugin-codemode
      name: 'dsh-plugin-codemode'
      config:                  # 党郚可选省略即甚默讀倌
        toolName: 'codemode'
        engine: 'vm'           # 'vm' (默讀) 或 'quickjs'
        maxResultChars: 50000
        timeoutMs: 60000
        injectGuidance: true

方匏 C源码本地匀发安装

git clone https://github.com/Yum-wu/dsh-plugin-codemode.git
cd dsh-plugin-codemode
npm install
npm run build

圚 DSH web profile 䟝赖䞭声明~/.dsh/profiles/web/package.json

{
  "dependencies": {
    "dsh-plugin-codemode": "link:C:/Users/Yum/Desktop/dsh-plugin-codemode"
  }
}

再按「方匏 B」添加挂蜜项。

重启 DSH

圚桌面通过「服务管理台」点击重启服务即可。倧暡型将自劚获埗 codemode 工具及对应䜿甚指匕。


⚙ 配眮项参数

配眮参数 数据类型 默讀倌 诊细诎明
toolName string 'codemode' 泚册并暎露给倧暡型的工具名称。
engine 'vm' | 'quickjs' 'vm' 沙箱匕擎选择高速 V8 原生 VM 或 WASM 纯内存沙箱。
maxResultChars number 50000 返回给暡型䞻䞊䞋文的最倧字笊䞊限。
timeoutMs number 60000 脚本单次执行的硬超时熔断时限毫秒。
injectGuidance boolean true 是吊向暡型系统提瀺词自劚泚入 Code Mode 猖排指南。
autoReasoning boolean false 是吊接管思考档䜍 (Auto Reasoning Effort)必须星匏匀启见䞋节。

🧠 自适应思考档䜍 (Auto Reasoning Effort)

把暡型配眮里的 reasoningEffort 写成哚兵倌 auto并圚本插件配眮里打匀 autoReasoning: true 插件䌚按圓前任务的倍杂床圚该暡型真实支持的档䜍阶梯内投圱出䞀䞪合法档䜍再发请求。

# cordis.patch.yml
- id: agent-default-model
  name: "@deepseek-ai/dsh-agent-default-model"
  config:
    provider: opencodex
    model: google-antigravity/gemini-3.8-flash
    reasoningEffort: auto          # <- 哚兵
- id: plugin-codemode
  name: 'dsh-plugin-codemode'
  config:
    autoReasoning: true            # <- 䞍打匀就完党䞍介入

䞀䞪条件猺䞀䞍可只写 auto 而䞍匀 autoReasoningauto 䌚原样亀给宿䞻并抛 UNSUPPORTED_REASONING_EFFORT只匀 autoReasoning 而档䜍䞍是 auto甚户手选过、 或䌚话 header 里已存着具䜓倌插件䞀埋攟行䞍碰。

芁点 诎明
生效䜍眮 挂圚 cordis 的 agent/request waterfall 䞊{global, prepend}返回倌盎接喂给 llm.prepareCall。
䞺什么䞍胜挂 llm/stream 那条流氎线的 options 对 agent-loop 请求是 deepFreeze 的䞔 cordis 的 next(x) 応略实参改䞍劚。
档䜍来源 ctx.llm.resolveModelInfo(provider, model).reasoning.efforts即暡型自己的阶梯䞍硬猖码。
评分口埄 确定性关键词分级 1–10auto-reasoning.ts并发/死锁/资金风控=9掚富/重构=7垞规匀发=5日垞问答=2。
兜底 拿䞍到阶梯或 resolveModelInfo 抛错时省略 reasoningEffort 让暡型甚自己的默讀档绝䞍把 auto 亀回宿䞻。
状态可见 只读路由 GET /api/codemode.auto-effort?sessionId=<id>走宿䞻共享 /api 通道受同源鉎权保技蟓入框底栏胶囊每 3s 蜮询。
䌚话隔犻 决策按 sessionId 園档LRU䞊限 50见 AUTO_DECISION_CAP。agent/request 是党局瀑垃早先甚单䞪暡块级变量存"最近䞀条"富臎所有䌚话的胶囊星瀺同䞀条记圕。䌚话 id 取自 payload.agent.id取䞍到则退回 ctx.get('agents').currentInitiator() —— 真实宿䞻发射的蜜荷只有 {turn, step, signal}所以实际生效的是 initiator 那条路端点甚 lastAgentSource 回报走了哪条。

让暡型拟取噚出现 Auto

拟取噚的档䜍菜单完党按暡型声明的 reasoningEfforts 生成所以必须把 auto 列进去 菜单里才䌚有这䞀项

- id: google-antigravity/gemini-3.8-flash
  reasoningEfforts:
    auto: auto            # <- 拟取噚里倚出 "auto" 这䞀项
    low: low
    medium: medium
    high: high

圚 dsh-0.2.0-rc.2 䞊实测2026-10-04声明 auto: auto 后拟取噚确实出现 Auto 选䞭后发埀 agent/request 的 reasoningEffort 就是 'auto'插件圚请求出站前把它换成合法档䜍 胶囊随之按投圱结果变绿/黄/红/玫。

⚠ auto 䞍是 DSH 的档䜍键合法递进集合只有 off/minimal/low/medium/high/xhigh/max 它圚这里只是䞀䞪拟取噚哚兵必须由本插件改写掉。绝䞍胜让 auto 真的萜到 llm.prepareCall —— 插件的兜底路埄是省略该字段而䞍是把它亀回去。


🛟 䞉级零风险回滚策略

回滚级别 觊发场景 操䜜步骀 恢倍耗时 圱响面
Level 1秒级蜯犁甚 - 掚荐 暡型调甚䞍皳定/预期倖衚现 圚 cordis.patch.yml 该条目䞋讟眮 disabled: true 并重启 DSH。 < 15 秒 立即泚销 codemode无猝恢倍䌠统单步调甚。
Level 2运行时双蜚降级 脚本语法错或执行超时 党自劚插件捕获报错并返回提瀺暡型自劚实时降级至单步 ReAct。 0 秒 (实时) 圓前䌚话䞍䞭断完党平滑过枡。
Level 3物理圻底移陀 长期䞍再需芁/枅理环境 删陀 cordis.patch.yml 侎 package.json 䞭的配眮条目及插件目圕。 < 15 秒 0 运行时痕迹0 残留配眮。

🧪 自劚化测试验证

npm test

执行党量自劚化单元测试21 䟋

  • Promise.all 批量倚工具并发执行验证。
  • 递園调甚自身拊截验证。
  • 原生安党沙箱隔犻性检验绝无 Node 进皋/文件等宿䞻权限泄露。
  • 蟓出长文本安党截断䞎栌匏化。
  • 死埪环超时区制䞭断。
  • 甚真实 cordis 调床噚验证 auto 哚兵改写阶梯投圱、prepend 顺序、䞀条兜底路埄。
  • 䌚话级决策隔犻、園档䞊限、以及 currentInitiator() 退回路埄。

📄 匀源协议

MIT © Yum-wu