🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

小组协作 ZelyStaric/dsh-council

DeepSeek Harness
ZelyStaric2 天前有提交已提供中文文档扫描:含敏感能力

把 DSH 会话变成群聊:指挥拆解、8 个岗位的成员各自跑在 codex/claude/deepseek/image…

31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZelyStaric/dsh-council
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 2 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 35 处,展示前 21 条)
  • 读取本地文件
    index.js:51
    if (bin.includes('/')) return existsSync(bin)
  • 读取本地文件
    index.js:54
    if (existsSync(path.join(dir, bin))) return true
  • 读取本地文件
    index.js:63
    if (existsSync(candidate)) return candidate
  • 读取本地文件
    index.js:76
    state = { ...structuredClone(EMPTY), ...JSON.parse(await readFile(STATE_FILE, 'utf8')) }
  • 写入本地文件
    index.js:173
    await mkdir(path.dirname(STATE_FILE), { recursive: true })
  • 写入本地文件
    index.js:174
    await writeFile(STATE_FILE, body, 'utf8')
  • 读取本地文件
    index.js:185
    const parsed = JSON.parse(await readFile(WORKSPACE_FILE, 'utf8'))
  • 执行外部命令来自配置/变量
    index.js:254
    const child = spawn(bin, args, {
  • 发起网络请求
    index.js:357
    const response = await fetch(rootUrl(apiSettings(config).codexBase || defaultBase('openai', apiSettings(config).imageKey)) + '/v1/images/generations',
  • 写入本地文件
    index.js:369
    await mkdir(IMAGE_DIR, { recursive: true })
  • 写入本地文件
    index.js:371
    await writeFile(file, Buffer.from(b64, 'base64'))
  • 读取本地文件
    index.js:645
    if (existsSync(file)) {
  • 写入本地文件
    index.js:729
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    index.js:730
    await writeFile(path.join(dir, 'config.toml'), content, 'utf8')
  • 删除本地文件递归
    index.js:2267
    await rm(target.dir, { recursive: true, force: true })
  • 删除本地文件递归
    index.js:2314
    await rm(target.dir, { recursive: true, force: true })
  • 发起网络请求
    index.js:2921
    const response = await fetch(rootUrl(codexBase) + '/v1/models', {
  • 发起网络请求
    index.js:2934
    const response = await fetch(claudeModelsBase + '/v1/models', {
  • 发起网络请求
    index.js:2960
    const response = await fetch(settings.codexBase + '/v1/models', {
  • 发起网络请求
    index.js:2993
    const response = await fetch(rootUrl(source.base) + '/v1/usage', { headers: { authorization: 'Bearer ' + source.token } })
  • 发起网络请求
    client.js:42
    const response = await fetch(API + path, body === undefined ? {} : {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(100 字)↓

把 DSH 会话变成群聊:指挥拆解、8 个岗位的成员各自跑在 codex/claude/deepseek/image 框架里并发干活,审校初审 + 指挥终审(会读图),过程实时可见。8 个岗位全部可改

README

由 DeepSeek 最新模型翻译生成
dsh-council — DeepSeek Harness「小组」插件 把会话变成群聊:你说一句需求,指挥拆解 → 成员在各自的 agent 框架里并发干活 → 审校初审 → 指挥终审 → 不合格自动返工一次。所有过程在「群聊」页实时可见。 与官方子代理的区别:官方只回最终答案;本插件把每一步(谁、什么阶段、多久)暴露出来,并且每个成员可以挂不同框架/模型,各跑各的原生 agent(Codex CLI / Claude Code CLI / DSH 内建 agent / 图像接口 / 任意 OpenAI·Anthropic 兼容中转)。 仓库标签:dsh · deepseek-harness · cordis · plugin · multi-agent · agent-orchestration · codex · claude · ai-agents 安装 从 GitHub 克隆后安装(推荐) git clone https://github.com/ZelyStaric/dsh-council plugin_manager install_bundle --target ./dsh-council 或直接用目录路径 plugin_manager install_bundle --target /path/to/dsh-council
展开完整文档(README 剩余 1 节)
dsh-council — DeepSeek Harness「小组」插件

把会话变成群聊:你说一句需求,指挥拆解 → 成员在各自的 agent 框架里并发干活 → 审校初审 → 指挥终审 → 不合格自动返工一次。所有过程在「群聊」页实时可见。

与官方子代理的区别:官方只回最终答案;本插件把每一步(谁、什么阶段、多久)暴露出来,并且每个成员可以挂不同框架/模型,各跑各的原生 agent(Codex CLI / Claude Code CLI / DSH 内建 agent / 图像接口 / 任意 OpenAI·Anthropic 兼容中转)。

仓库标签:dsh · deepseek-harness · cordis · plugin · multi-agent · agent-orchestration · codex · claude · ai-agents

安装

从 GitHub 克隆后安装(推荐)
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

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

首次配置

1. 名册:岗位 → 成员 → 每个成员选框架与模型;
2. API:在「小组」页填中转站地址与 key(同时支持两种通用格式):

| 用途 | 协议 | 填在哪 |
| 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 |

3. 首次使用的顺序(全新安装时很重要):

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

4. 也可以不填页面,改 profile 的 cordis.patch.yml:

- insert:
- id: council
name: '@zelystaric/dsh-council'
config:
claudeBaseUrl: https://your-relay # claude 成员用 defaultWorkspace: /your/workspace # 成员的工作目录

页面里的 base 留空 = 用 profile 里的;页面填了会覆盖它。

官方 key 与中转站都能直接用

三个框架的凭据都从插件配置里取(页面 ① 或 profile 的 cordis.patch.yml),填官方 key 就是官方通道,填中转 key 就是中转通道:

| 成员 | 填什么 | 官方 | 中转站 |
| claude | claudeBase + claudeKey | 地址 https://api.anthropic.com,模型如 claude-sonnet-4-5 | 地址如 https://your-relay |
| image | codexBase + imageKey | 地址 https://api.openai.com,模型 gpt-image-1 | 地址如 https://your-relay,模型按中转提供的写 |
| codex | codexBase + codexToken(或 codex 成员的 ~/.codex 配置) | 地址 https://api.openai.com,codexWireApi 默认 responses | 地址如 https://your-relay |

实现细节(排障时有用):

- base 会被归一成根地址(自动去掉尾部 / 与 /v1),各调用点再拼 /v1/models、/v1/images/generations、/v1/usage;
- claude 通过 ANTHROPIC_BASE_URL / ANTHROPIC_API_KEY 传给 CLI,所以官方与中转走的是同一条路;
- codex 会用它自己生成的 ~/.dsh/storages/council-codex/config.toml(内含 model_providers.council 与 bearer token),不改你 ~/.codex 里的配置;没配 base/key 时才回退到你自己的 ~/.codex。

用官方 key 需要代理时

只填官方 key、base 留空会自动走官方端点(api.openai.com / api.anthropic.com)。如果本机直连官方不通,在 ① 卡片最右的输入框填本机代理地址(Clash 混合端口):

http://127.0.0.1:7897

- 只影响插件自己发起的请求(模型列表、出图、用量)以及 claude / codex CLI 子进程的环境变量;
- 代理没起来时会自动回退直连并打日志,不会把整个插件拖死;
- 用中转站时不需要填(填了会多一跳)。

升级到新版本

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>。

成员框架

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

岗位(角色)

内置 8 个:指挥 / 代码 / 全栈 / 审校 / 画师 / 配乐 / 3D建模 / 动画。都只是预设——岗位名、提示词、成员、模型、风格都可以自己改。指挥负责拆解与终审,审校负责初审,其余按任务分派。

外部依赖(可选,按岗位)

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

自定义外观(头像、名字、气泡)

头像:默认是内置的三张 SVG 占位图。想换成自己的角色,只要把 192×192 的 PNG 放进

~/.dsh/storages/council-images/
├── avatar-codex-small.png # codex / GPT 成员 ├── avatar-claude-small.png # claude 成员 └── avatar-deepseek-small.png # deepseek 成员

画师(image)默认复用 avatar-codex-small.png。文件不存在时自动回退到内置 SVG,所以想换哪个换哪个、删掉也安全。文件名不对或不想要这套命名,改 client.js 里的 AVATAR_FILE 映射即可:

const AVATAR_FILE = {
codex: 'avatar-codex-small.png',
claude: 'avatar-claude-small.png',
deepseek: 'avatar-deepseek-small.png',
image: 'avatar-codex-small.png',
}
// 也可以指向任意经 /council/api/image/ 提供的文件名

注意:头像是按框架取的,不是按成员——同一个框架的所有成员共用一张图(比如 claude 既当指挥又当审校,仍是同一张)。想让不同成员不同图,需要在 Avatar 组件里改成按 member.id 映射(当前不做,避免状态里存图片路径)。
没配的框架继续用内置 SVG 占位。

名字与气泡:成员名、岗位名、岗位提示词、组级统一风格都在「小组」页和「名册」浮层里改,不涉及代码。气泡里的框架标签(claude · 模型名)跟随成员选择的框架与模型自动变化。

按钮文案 / 页面标题:locale/{zh,en}.json 的 meta.title、meta.description 改了就生效(刷新页面)。

外部命令行的路径

codex 与 claude 默认从 PATH 找;找不到时会直接报

未找到 codex CLI(codex)。安装 Codex,或用环境变量 COUNCIL_CODEX_BIN 指定绝对路径。

也可以显式指定:

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

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

兼容性

- 仅测试于 dsh 0.2.1-rc.2(用到 subagent seam、uiConversation 等内部 API);
- 中转站只要是 OpenAI 或 Anthropic 通用格式即可,不绑定具体厂商。

二次开发

- Host 半 index.js:createHandler() 暴露全部 HTTP 路由;runKind() 是所有框架的分发点,加新框架只需加一个分支;
- Client 半 client.js:CouncilChatView(群聊页)/CouncilView(编排页)/RosterPanel(名册浮层)/CouncilProgress(进度条);
- 状态文件:~/.dsh/storages/council.json(职位/成员/组/用量/摘要);出图落在 ~/.dsh/storages/council-images/;
- 修改 Host 后需 systemctl --user restart dsh-web;只改 Client 刷新页面即可。

许可

MIT。头像为内置占位图;如需自定义,替换 client.js 里的 AVATAR_FILE 映射即可。
预览分享卡片长什么样 ↓ZelyStaric/dsh-council
分享 · DeepSeek Harness Hub
ZelyStaric/dsh-council

把 DSH 会话变成群聊:指挥拆解、8 个岗位的成员各自跑在 codex/claude/deepseek/image…

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部