dsh-council: Turning DSH Sessions into Concurrent "Group Chats"

前言

在 DeepSeek Harness(DSH)里做复杂任务时,常见做法是依赖官方子代理或自己在同一会话里串行调用工具。子代理通常只返回最终结果,中间谁在做、做到哪一步、各步骤耗时都不直观;父会话若仍保留写文件、改代码类工具,还容易出现「指挥没派活、会话自己改了一整轮仓库」的情况。维护者 ZelyStaric 的 @zelystaric/dsh-council(GitHub:ZelyStaric/dsh-council)把一次需求拆成指挥拆解、多成员并发执行、审校初审与指挥终审,并在「小组」群聊页里逐步暴露过程;每个成员可挂在 Codex CLI、Claude Code CLI、DSH 内建 agent 或图像接口等不同框架上,各跑各的原生 agent。社区目录分类为工作流;仓库当前约 2 stars(以目录页为准)。

这是什么

一句话:dsh-council 是 DSH 的 Cordis 插件,把单会话编排成带 8 个预设岗位(全部可改)的「小组」——指挥负责拆解与终审(会读图),审校负责初审,其余岗位按任务分派;不合格会自动返工一次。与官方子代理的差异在于:过程实时可见,且成员可按框架/模型分别配置,官方 key 与 OpenAI·Anthropic 兼容中转均可使用。

许可:MIT(package.json 版本 0.2.17)。兼容性说明:README 写明仅测试于 dsh 0.2.1-rc.2 及以上(用到 subagent seam、uiConversation 等内部 API)。

核心功能

工作流

用户提出需求后,大致路径为:指挥拆解 → 成员在各自 agent 框架里并发干活 → 审校初审 → 指挥终审 → 不合格自动返工一次。全程在「群聊」页实时可见(谁、什么阶段、多久)。

成员框架(kind)

kind 跑什么 说明
codex Codex CLI(codex exec) GPT 系,原生 app-server,工具链最全
claude Claude Code CLI Anthropic 系,长上下文,能读图
deepseek DSH 内建 agent(subagent seam) 用完即弃 + 摘要回灌;可复用同一条子会话
image 图像接口(OpenAI 兼容 /v1/images/generations) 出图、序列帧

岗位(角色)

内置 8 个:指挥 / 代码 / 全栈 / 审校 / 画师 / 配乐 / 3D 建模 / 动画。均为预设——岗位名、提示词、成员、模型、风格都可在「小组」页与「名册」里修改。

小组模式下的硬拦截(strictDelegate)

默认 strictDelegate: true:在小组模式下,Host 在 agent.ctx.tools.guard() 上拦截父会话的写类工具(如 edit、write、apply_patch 及若干 Blender 写/渲染工具),只读与 bash(计审计)不拦。逃生口:用户在本轮最后一条消息中说「你自己做 / 你直接改 / 你亲自动手 / 放行」,或将 profile 里 strictDelegate 设为 false。被拦次数会在 council_delegate 回执与 GET /council/api/progress 中体现。

看门狗与超时

成员没有「总时长一到就杀」的默认行为:只要还在输出就一直跑;连续静默超过 memberIdleMinutes(默认 10 分钟)才终止。memberHardLimitMinutes 默认 360 分钟(0 表示不限制)。出图 HTTP 默认 imageTimeoutSeconds: 240。

安装与启用

README 给出的安装方式如下(任选其一;升级同名包时需先 remove 再 add,见下文「升级」)。

从 GitHub 克隆后安装(README 标注为推荐):

git clone https://github.com/ZelyStaric/dsh-council
plugin_manager install_bundle --target ./dsh-council

或指定本地目录:

plugin_manager install_bundle --target /path/to/dsh-council

或 npm 包(若已发布):

plugin_manager install_bundle --target @zelystaric/dsh-council

安装后,在任意会话顶部点 小组模式,进入「小组」页配置成员与 API。

首次使用顺序(全新安装时 README 强调):

  1. 先发一条消息,建立一个会话
  2. 点顶部「小组模式」(Hero 草稿态会提示先建会话)
  3. 进「小组」页填密钥、确认名册
  4. 再派活

也可不改页面,直接在 profile 的 cordis.patch.yml 插入插件配置,例如:

- insert:
    - id: council
      name: '@zelystaric/dsh-council'
      config:
        claudeBaseUrl: https://your-relay      # claude 成员用
        defaultWorkspace: /your/workspace      # 成员的工作目录
        strictDelegate: true                   # 小组模式硬拦截父会话自己写文件(默认 true)
        memberIdleMinutes: 10                  # 成员连续多久没有任何输出才算死(看门狗,默认 10 分钟)
        memberHardLimitMinutes: 360            # 极大兜底(默认 6 小时;0 = 完全不限制总时长)
        imageTimeoutSeconds: 240               # 出图 HTTP 请求超时(无流式输出,默认 240s)

页面里的 base 留空则使用 profile;页面填写会覆盖 profile。

升级到新版本

dsh plugin add 不会覆盖已安装的同名依赖;换 tarball 或目录升级时需先移除:

dsh plugin --profile web remove @zelystaric/dsh-council
dsh plugin --profile web add -w file:/path/to/zelystaric-dsh-council-0.2.4.tgz
systemctl --user restart dsh-web        # 或重启你起的 dsh web

从 npm 安装时同理:remove 之后 add @zelystaric/dsh-council@<version>。

修改 Host 半(index.js)后需重启 dsh-web;只改 Client 半(client.js)刷新页面即可。

典型用法:名册与 API

1. 名册

岗位 → 成员 → 为每个成员选择框架与模型。

2. API(小组页)

在「小组」页填写中转站地址与 key(同时支持 OpenAI 与 Anthropic 通用格式):

用途 协议 填在哪
codex 成员(GPT 系) OpenAI ① 卡片的 gpt key(base 来自 ~/.codex)
image 成员(出图) OpenAI /v1/images/generations ① 卡片的 gpt-image key
claude 成员(Anthropic 系) Anthropic /v1/messages ① 卡片的 claude key + claude base URL

填官方 key 即走官方通道(如 https://api.openai.com、https://api.anthropic.com);填中转 key 即走中转。若本机直连官方不通,可在 ① 卡片最右侧填本机代理(如 http://127.0.0.1:7897),仅影响插件发起的请求及 claude/codex 子进程环境;代理未起时会回退直连并打日志。

3. 外部 CLI 路径

codex 与 claude 默认从 PATH 查找;找不到时可设置:

export COUNCIL_CODEX_BIN=/usr/local/bin/codex
export COUNCIL_CLAUDE_BIN=/path/to/claude

claude 若已装 dsh-subagent-claude-code bundle,会自动使用 bundle 自带二进制。

4. 可选外部依赖(按岗位)

  • codex、claude 两个 CLI(仅对应成员需要)
  • 配乐:fluidsynth、GM SoundFont、ffmpeg、python3-midiutil/mido
  • 3D:blender(无头)、openscad、python3 -m pip install trimesh pygltflib
  • 动画:ffmpeg、Pillow

状态与产物路径(排障用):~/.dsh/storages/council.json;出图在 ~/.dsh/storages/council-images/。自定义 192×192 PNG 头像可放入该目录下 avatar-codex-small.png、avatar-claude-small.png、avatar-deepseek-small.png 等(详见 README)。

适用场景与注意

适合谁:需要在 DSH 里做多角色、多框架并发、且希望过程可观测的团队或个人;任务可映射到指挥—执行—审校—终审,并愿意在「小组」页维护名册与 API。

权限与安全:插件以当前 DSH 进程权限运行;成员会在 defaultWorkspace 等工作目录里调用 CLI 与工具。安装前应阅读仓库源码与 MIT 许可证,自行评估 key、中转站与代理配置的风险。

生态说明:DSH 理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-council 把 DSH 会话变成可配置的「小组群聊」:指挥拆解、多框架成员并发、审校与指挥终审、过程实时可见,并用 strictDelegate 减少父会话越权改库。目录与源码:

  • 目录页:https://www.skillhub.cn/plugins/ZelyStaric/dsh-council
  • GitHub:https://github.com/ZelyStaric/dsh-council
羽毛球分组比赛记分
小程序二维码

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

Xiaoye