dsh-doctor
asdf17128
Find what your DeepSeek Harness (dsh) patches silently broke — dead patches, config fields dropped by whole-config repla…
PROJECT TOPICS
PROJECT README
🔌 一句话:本插件本身不带任何引擎、也不带任何预设。它只规定「引擎怎么接入」,然后负责三件事——按预设选引擎、发消息前切换、把预设装好。真正的引擎由别的插件通过
ctx.engineSwitch.register(engine)注册进来。deepseek是个特殊名字,意思是「退回 DeepSeek 原来的循环」。
dsh plugin --profile web add github:Yuki-takuya-kun/dsh-engine-switch
# 再装至少一个引擎插件,例如:
dsh plugin --profile web add github:Yuki-takuya-kun/dsh-claude-code
编辑 ~/.dsh/profiles/web/cordis.patch.yml:
- id: dsh-engine-switch
config:
enabled: true
重启 web 应用。引擎插件带来的预设会出现在预设列表里;选中它 → 用该引擎,选其它 → 用 DeepSeek。
大多数时候什么都不用做:引擎自带的预设,它的目录名就是引擎名,会自动对上(比如 dsh-claude-code 的预设目录叫 claude-code,引擎也叫 claude-code)。
想手动指定,有两种方式(优先级从高到低):
在预设里写:编辑该预设的 agent.cordis.yml,加一条 dsh-engine-switch 并写 engine:
# ~/.dsh/.agent-presets/<预设名>/agent.cordis.yml
- name: dsh-engine-switch
config:
engine: claude-code # 这个预设用 claude-code 引擎
在配置里点名:在 engineByPreset 里写「预设名 → 引擎名」,不用改预设文件:
config:
engineByPreset:
research: claude-code
都没写时,退回 defaultEngine(默认 deepseek,即 DeepSeek)。
写一个插件,inject: ["engineSwitch"],然后在 apply 里调用 ctx.engineSwitch.register(...) 注册一个引擎:
export const inject = ["engineSwitch"];
export function apply(ctx) {
ctx.engineSwitch.register({
id: "claude-code", // 引擎名 = 它自带预设的目录名
name: "Claude Code",
description: "…",
presetDir: fileURLToPath(new URL("./presets/claude-code/", import.meta.url)),
makeAgent(loopCtx, id, options, session, engineConfig) {
return new ClaudeCodeAgent(loopCtx, id, options, session, engineConfig);
},
});
}
presetDir 里放 agent.cordis.yml + preset.yml,框架会自动把它装到 ~/.dsh/.agent-presets/<id>/。引擎要实现的完整接口见 引擎 API。
参考引擎:dsh-claude-code —— 一个真实注册了
claude-code引擎的插件,用本机 Claude Code CLI 驱动会话。
| 键 | 默认 | 含义 |
|---|---|---|
| enabled | false | 总开关:false = 插件不生效,所有会话照旧走 DeepSeek |
| defaultEngine | "deepseek" | 没指定引擎的预设(以及没有预设的会话)用谁;deepseek = 退回 DeepSeek |
| engineByPreset | {} | 「预设名 → 引擎名」的点名表 |
| engines | {} | 「引擎名 → 引擎自己的配置」(原样转给引擎,插件不解析) |
deepseek 不是真引擎,而是「退回 DSH 原来的 DeepSeek 循环」。MIT。见 THIRD_PARTY_NOTICES.md。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。