DSH 插件市场DeepSeek Harness 社区插件目录

dsh-codemode

已验证 记忆与上下文 ★ 9 0.2.1

Code Mode preset for DeepSeek Harness: tools the preset's own composition does not register (MCP servers, profile-level plugins, per-agent tool sets) are kept out of context, and a plugin-owned code_run transport discovers and calls them.

一句话定位

Code Mode preset for DeepSeek Harness: tools the preset's own composition does not register (MCP servers, profile-level plugins, per-agent tool sets) are kept out of context, and a plugin-owned code_run transport discovers and calls them.

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add dsh-codemode@0.2.1

兼容的 DSH 版本

^0.2.2-alpha.3

作者与热度

MuWinds · ★ 9 · 更新于 2026-11-04

关于这个插件

dsh-codemode

[English](./README.en.md) | 简体中文

一个面向 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)的

Code Mode 智能体预设:标准工具照常原生调用,本预设清单以外的工具(MCP 工具、

profile 级插件、按 agent 注册的工具集)被挡在模型上下文之外,只由一个额外的

code_run 工具从程序内部按需发现与调用。

设计上参考了 pi 的 codemode(mode: on + MCP 延迟暴露),但实现建立在 DSH 自带的 PTC 运行时之上,而不是另起一套沙箱。

它做了什么

为会话选择 codemode 模式后:

  • 标准工具与标准模式一致,原生直接调用,schema 不变。
  • 本预设不拥有的工具一律不进上下文,由程序内部发现和调用:
  const { tools: hits } = await tools.code_tools_search({ query: 'okx ticker', limit: 5 })
  // hits[0].name、hits[0].description、hits[0].parameters(完整 JSON Schema)
  return await tools[hits[0].name]({ instId: 'BTC-USDT' })

判定依据是注册作用域,不是名字前缀:本预设自身的插件行注册在预设作用域里,保持原生;

MCP 服务端与 profile 级 bundle 注册在全局层,按 agent.ctx 注册的工具集(如 Agent Teams、

定时任务)落在 agent 层,两者都被遮蔽。名字规则(hiddenPrefixes、hiddenTools、

nativeTools)仍然生效,可用来加例外。

  • 其他模式(standard、ptc、minimal、cordis)不受影响:那些模式下所有工具仍以原生方式呈现。

版本线

| 插件线 | 目标 DSH | 程序入口 |

|---|---|---|

| 0.3.x(main) | 0.2.2-alpha.3 及以后 | 本包自带 code_run 传输 + 插件自带的 ToolExecutor(遮蔽的唯一接缝) |

| 0.2.x(分支 0.2.x) | 0.2.1 整线(>=0.2.1-alpha.5 <0.2.2-0) | 本包自带 code_run 传输;遮蔽靠预设行 mode: native + system-prompt/assemble 瀑布 |

| 0.1.x(分支 0.1.x) | 0.2.0-rc.2 | 内置 run_code(由 both 附带),本包不注册传输 |

三条线对外行为一致:标准工具原生,预设自身清单以外的一切(MCP、profile 级插件、按 agent.ctx

注册的工具集)都只能从程序内部调用。

为什么分成 0.2.x 与 0.3.x 两条线。 DSH 0.2.2-alpha.2 重做了工具呈现,

0.2.x 线的四个承重点同时失效,且都是静默失效:

| 0.2.x 线依赖 | 0.2.2+ 的现实 |

|---|---|

| system-prompt/assemble 瀑布的 assembly.tools | 不再传入;瀑布后才由 provider 结果接回,钩子改不动工具列表 |

| ctx.tools.execute({callId,name,arguments,...}) | 改为批量 {calls,agent,signal} |

| ctx.tools.executionMode(input) | 移除,迁至 ToolExecutionPipeline.executionMode() |

| 预设行 @deepseek-ai/dsh-agent-tool-presentation mode:native | 包已废弃且不再是 dsh-web-app/dsh-base 的依赖;缺失时整行 never started,预设激活失败 |

| 快照行 dsh-tool-subagent-control/list-agents | exports 已无该子路径,同样导致预设激活失败 |

0.3.x 把接缝换成 插件自带的 ToolExecutor(ctx.tools.setExecutor()):注册表向当前

作用域的 executor 要模型可见的 schema,所以 describe() 就是请求面——这正是遮蔽要的东西,

而且比旧钩子更正当(它是这块的官方归属者)。两条线的安装与配置方式一致,口径与命令见

[docs/internals.md](./docs/internals.md#验证)。

安装

本地开发时改用 link: 指向检出目录即可:

dsh plugin --profile desktop add "link:"

配置

cordis.patch.yml 负责挂载本预设;修改 codemode 这一行的 config 即可调整行为

(null 或省略表示使用默认值):

| 键 | 默认值 | 含义 |

|---|---|---|

| nativeScope | true | 遮蔽一切不是本预设自身作用域注册的工具(MCP、profile 级插件、按 agent 注册的工具集) |

| hiddenPrefixes | ['mcp__'] | 额外剥离的工具名前缀 |

| nativeTools | [] | 例外:这些名字始终原生呈现(run_code 与 runToolName 永远原生) |

| hiddenTools | [] | 例外:这些名字始终遮蔽 |

| metaTools | [list, search, describe, debug] | 发现工具名;第一个同时用作 codemode 标记 |

| runToolName | code_run | 本包传输工具的名称(不可用保留名 run_code) |

| searchLimit | 8 | code_tools_search 默认返回的行数 |

| maxDescriptionChars | 240 | 列表中描述文本的截断长度 |

| maxParallelSubCalls | 10 | 一个程序内可并发的只读子调用上限 |

同分类对比

同一分类下 Star 最高的 5 个,便于横向比较。

插件作者 Star版本更新
EverOS EverMind-AI 13.9K 0.0.0 2026-11-10
billion-context ranxianglei 5.9K 0.1.213 2026-11-10
dsh-context bowenliang123 4.8K 0.83.1 2026-11-10
memsearch zilliztech 2.9K 0.0.0 2026-11-10
dsh-mnemon omdsh-dev 957 0.5.43 2026-11-08