dsh-claude-code: 在 DeepSeek Harness 中运行 Claude Code

前言

DeepSeek Harness (DSH) 默认只使用 DeepSeek 作为主循环。如果需要在同一工作流中切换到 Claude Code,同时保留 DSH 的界面和日志能力,就需要额外的方案。dsh-claude-code 插件正是为此设计,它不自己替换主循环,而是定义一个 claude-code 引擎,配合 dsh-engine-switch 实现无缝切换。主会话选择 Claude Code 时,工具、沙箱与人设都来自 Claude Code;子代理则继续使用 DeepSeek。

核心功能

  1. 一键接入 Claude Code
    插件定义了一个 claude-code 引擎,配合 dsh-engine-switch 使用。预设列表中出现「Claude Code」选项后,选中即可切换,选择其它则使用 DeepSeek。

  2. 轨迹实时可见
    文本、思考、工具调用与结果会实时流进 DSH 会话,每一步都实时显示在界面中。

  3. 上下文占用可见
    Claude Code 的 token 用量与模型上下文窗口会写入 DSH 会话日志(TokenUsage + request/context),DSH 界面会据此显示上下文占用比例。

  4. 权限桥接
    DSH 的沙箱模式与审批策略会映射到 Claude 的权限回调:工作区内写操作放行,区外操作触发审批。AskUserQuestion 会使用 DSH 的选择题 UI 作答。

  5. 工具与沙箱
    预设只当路由键,不把 DSH 的 persona 或工具透传过去。工具与沙箱都直接来自 Claude Code。

  6. 精确续接
    通过旁路持久化 Claude 会话 id,续聊时可以接回同一个 Claude 会话,而不是开启新会话。

  7. 子代理照旧 DeepSeek
    不管主会话选了谁,子代理都继续使用 DeepSeek。

安装

本插件依赖 dsh-engine-switch,安装前需先安装该依赖。

dsh plugin --profile web add github:Yuki-takuya-kun/dsh-engine-switch
dsh plugin --profile web add github:Yuki-takuya-kun/dsh-claude-code

安装要求:
* PATH 中包含 pnpm。
* 本机安装了 claude CLI(需已登录)或设置了 ANTHROPIC_API_KEY 环境变量。

配置与启用

编辑 ~/.dsh/profiles/web/cordis.patch.yml,启用 dsh-engine-switch 并配置 claude-code 引擎:

- id: dsh-engine-switch
  config:
    enabled: true
    # 可选:claude-code 引擎的选项
    engines:
      claude-code:
        executable: claude
        # env: { ANTHROPIC_API_KEY: sk-... }  # 未登录时使用

重启 web 应用。在预设列表中选择「Claude Code」即可切换模式,选择其它选项则继续使用 DeepSeek。

工作原理

本插件在 apply() 中通过 ctx.engineSwitch.register(claudeCodeEngine) 注册 claude-code 引擎。

每轮运行时,插件会调用 Claude Code 的 SDK,并将 SDK 产生的事件转换为 DSH 会话事件(turn / step / assistant / tool 等),实现实时流式输出。

权限控制通过 canUseTool 回调实现桥接:工作区内写操作放行,区外操作触发审批。AskUserQuestion 也会复用 DSH 的选择题 UI。

注意事项

  • 本插件不自己替换主循环,只定义引擎。
  • 需要配合 dsh-engine-switch 使用。
  • 第三方组件详情见 THIRD_PARTY_NOTICES.md。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜