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

蜂群协作 wanghj040530/dsh-swarm

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

领队拆分任务,多智能体独立进程并行执行并可靠交付

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 69 天前
档位由哪些信号合成

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

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

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

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 45 处,展示前 44 条)
  • 读取本地文件
    lib/index.js:159
    if (!existsSync(registryPath)) return {};
  • 读取本地文件
    lib/index.js:160
    const raw = await readFile(registryPath, 'utf8');
  • 写入本地文件
    lib/index.js:166
    await mkdir(join(homedir(), '.dsh', 'swarm'), { recursive: true });
  • 写入本地文件
    lib/index.js:167
    await writeFile(registryPath, JSON.stringify(data, null, 2), 'utf8');
  • 读取本地文件
    lib/index.js:235
    if (existsSync(agentDir)) {
  • 删除本地文件递归
    lib/index.js:236
    await rm(agentDir, { recursive: true, force: true });
  • 读取本地文件
    lib/index.js:294
    const raw = _readFile(p, 'utf8');
  • 写入本地文件
    lib/index.js:302
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/index.js:304
    appendFileSync(p, JSON.stringify({ taskId, text: content, at: new Date().toISOString(), retried: true }) + '\n', 'utf8');
  • 读取本地文件
    agent-process.js:27
    if (existsSync(SYSTEM_NODE)) return SYSTEM_NODE;
  • 读取本地文件
    agent-process.js:32
    if (existsSync(SYSTEM_NODE) && existsSync(SYSTEM_NPX_CLI)) return SYSTEM_NPX_CLI;
  • 写入本地文件
    agent-process.js:37
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    agent-process.js:42
    writeFileSync(path, content, 'utf8');
  • 写入本地文件
    agent-process.js:47
    appendFileSync(path, line + '\n', 'utf8');
  • 读取本地文件
    agent-process.js:51
    try { return readFileSync(path, 'utf8'); } catch { return fallback; }
  • 读取本地文件
    agent-process.js:70
    if (!existsSync(outboxPath)) return [];
  • 读取本地文件
    agent-process.js:83
    if (!existsSync(outboxPath)) return;
  • 删除本地文件
    agent-process.js:90
    try { unlinkSync(outboxPath); } catch {}
  • 读取本地文件
    agent-process.js:113
    if (!existsSync(runtime)) {
  • 读取密钥环境变量
    agent-process.js:139
    if (process.env.MIMO_API_KEY) env.MIMO_API_KEY = process.env.MIMO_API_KEY;
  • 读取密钥环境变量
    agent-process.js:140
    if (process.env.DEEPSEEK_API_KEY) env.DEEPSEEK_API_KEY = process.env.DEEPSEEK_API_KEY;
  • 读取密钥环境变量
    agent-process.js:141
    if (process.env.OLLAMA_API_KEY) env.OLLAMA_API_KEY = process.env.OLLAMA_API_KEY;
  • 执行外部命令来自配置/变量
    agent-process.js:144
    const proc = spawn(nodeBin(), [runtime, agentId], {
  • 读取本地文件
    lib/artifacts.js:27
    if (!existsSync(ARTIFACTS_DIR)) mkdirSync(ARTIFACTS_DIR, { recursive: true });
  • 写入本地文件
    lib/artifacts.js:27
    if (!existsSync(ARTIFACTS_DIR)) mkdirSync(ARTIFACTS_DIR, { recursive: true });
  • 读取本地文件
    lib/artifacts.js:42
    if (!existsSync(path)) {
  • 写入本地文件
    lib/artifacts.js:43
    writeFileSync(path, JSON.stringify({
  • 读取本地文件
    lib/artifacts.js:68
    const obj = JSON.parse(readFileSync(path, 'utf8'));
  • 读取本地文件
    lib/artifacts.js:80
    for (const name of readdirSync(ARTIFACTS_DIR)) {
  • 读取本地文件
    lib/artifacts.js:84
    if (Date.now() - statSync(path).mtimeMs > TTL_MS) {
  • 删除本地文件
    lib/artifacts.js:85
    unlinkSync(path);
  • 读取本地文件
    lib/task-ledger.js:30
    return JSON.parse(readFileSync(ledgerPath(teamId), 'utf8'));
  • 写入本地文件
    lib/task-ledger.js:36
    mkdirSync(join(path, '..'), { recursive: true });
  • 写入本地文件
    lib/task-ledger.js:37
    writeFileSync(path, JSON.stringify(data, null, 2), 'utf8');
  • 读取本地文件
    agent-registry.js:31
    if (!existsSync(REGISTRY_PATH)) return;
  • 读取本地文件
    agent-registry.js:32
    const raw = await readFile(REGISTRY_PATH, 'utf8');
  • 写入本地文件
    agent-registry.js:47
    await mkdir(dir, { recursive: true });
  • 写入本地文件
    agent-registry.js:49
    await writeFile(REGISTRY_PATH, JSON.stringify(data, null, 2), 'utf8');
  • 写入本地文件
    agent-registry.js:60
    await mkdir(join(agentDir, 'inbox'), { recursive: true });
  • 写入本地文件
    agent-registry.js:61
    await mkdir(join(agentDir, 'outbox'), { recursive: true });
  • 发起网络请求
    agent-runtime.js:87
    const req = mod.request({
  • 发起网络请求
    agent-runtime.js:127
    const req = mod.request({
  • 发起网络请求
    agent-runtime.js:195
    const req = mod.request({
  • 执行外部命令来自配置/变量
    lib/member-subprocess.js:157
    const proc = spawn(DSH_BIN, args, {
扫描于 2026/11/1(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-llm@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-web@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的自主团队协作插件:队长拆分任务,各成员有独立的 API 和插件,在隔离的 DSH 子进程里运行,通过 JSONL 邮箱通信

README

由 DeepSeek 最新模型翻译生成
dsh-swarm 自主团队协作插件 v0.4.0:领队(Captain)自主拆分任务 → 常驻智能体分工执行 → 工件引用传递省 token → 任务账本看门狗保交付 核心能力 - 常驻智能体:每个智能体是一个独立 Node.js 进程(agent-runtime.js),循环「读 inbox → 跑任务 → 写 outbox」,无需每次冷启动 - 独立 API:每个智能体独立配置模型 / 服务商 / apiBaseUrl / apiKey(写入各自 state.json) - 工件引用传递(v0.4.0):长产出自动落盘共享工件库,消息只传 art://<id> 引用 + 200 字摘要,需要全文时按引用展开——大幅节省 token - 任务账本 + 看门狗(v0.4.0):任务状态机 pending → claimed → done/failed,失败自动重试(最多 3 次),claimed 超 5 分钟无进展自动重派——智能体崩溃不再丢任务 - 可视化 UI:DSH 界面内置团队面板,可视化创建/删除空白智能体、查看任务账本进度 - 内置联网:智能体自带 web_search / web_fetch(jina.ai),无需额外插件 与 agent-teams 的区别 | 维度 | agent-teams | dsh-swarm |
展开完整文档(README 剩余 1 节)
dsh-swarm

自主团队协作插件 v0.4.0:领队(Captain)自主拆分任务 → 常驻智能体分工执行 → 工件引用传递省 token → 任务账本看门狗保交付

核心能力

- 常驻智能体:每个智能体是一个独立 Node.js 进程(agent-runtime.js),循环「读 inbox → 跑任务 → 写 outbox」,无需每次冷启动
- 独立 API:每个智能体独立配置模型 / 服务商 / apiBaseUrl / apiKey(写入各自 state.json)
- 工件引用传递(v0.4.0):长产出自动落盘共享工件库,消息只传 art://<id> 引用 + 200 字摘要,需要全文时按引用展开——大幅节省 token
- 任务账本 + 看门狗(v0.4.0):任务状态机 pending → claimed → done/failed,失败自动重试(最多 3 次),claimed 超 5 分钟无进展自动重派——智能体崩溃不再丢任务
- 可视化 UI:DSH 界面内置团队面板,可视化创建/删除空白智能体、查看任务账本进度
- 内置联网:智能体自带 web_search / web_fetch(jina.ai),无需额外插件

与 agent-teams 的区别

| 维度 | agent-teams | dsh-swarm |
| 队员形态 | 同进程子代理 | 独立常驻进程 + 独立 API |
| 结果传递 | 全文经主会话中转 | 工件引用 + 摘要,按需展开 |
| 失败处理 | 任务丢失 | 账本重试 + 看门狗自动重派 |
| 适用场景 | 简单委派 | 复杂多角色协作 / 长任务 |

安装

复制到本地插件目录
cp -r dsh-swarm ~/.dsh/local-plugins/dsh-swarm

同步到 desktop 配置档副本(Windows 下 link: 不生效,是物理拷贝) robocopy "local-plugins\dsh-swarm" "profiles\desktop\node_modules\dsh-swarm" /MIR

重启 DSH(引擎启动时自动加载)

快速开始

1. 添加智能体(对话中说,或在团队面板点「添加」):

添加一个 Agent,ID 叫 researcher1,用 deepseek-chat,API 是 https://api.deepseek.com/v1

2. 组队干活(复杂任务时领队自动建队):

帮我调研 X 框架和 Y 框架的优劣,写一份对比报告 → 领队拆分 → researcher1 查资料 → researcher2 补充 → 汇总交付

3. 看进度:团队面板实时显示智能体状态与任务账本(⏳pending 🔄claimed ✅done 💀dead)

工具列表(10 个)

用户工具

| 工具 | 说明 |
| swarm_add_agent | 添加空白智能体(指定 agent_id / model / provider / api_base_url / api_key) |
| swarm_remove_agent | 删除智能体,停止其进程 |
| swarm_list_agents | 查看所有智能体状态与角色分配情况 |

Captain 工具

| 工具 | 说明 |
| swarm_create_team | 组建团队:自动给空白智能体分配角色(researcher/coder/analyst/reviewer),启动进程 |
| swarm_set_agent_prompt | 给智能体写角色提示词(内置 4 种模板或自定义全文) |
| swarm_send_task | 派发任务:写 inbox → 轮询 outbox → 返回结果(长结果返回 art:// 引用) |
| swarm_read_results | 非阻塞读取智能体已产出的结果 |
| swarm_read_artifact | 按 art://<id> 引用展开工件全文(支持 max_chars 分段) |
| swarm_status | 团队状态 + 任务账本(触发一次看门狗扫描) |
| swarm_disband | 解散团队,停止所有智能体进程(不删除智能体) |

架构

用户 / Captain(DSH 主会话) │ swarm_add_agent / swarm_create_team / swarm_send_task ↓ ┌─ Registry(~/.dsh/swarm/registry.json) ├─ 任务账本(~/.dsh/swarm/tasks/<teamId>/tasks.json)← 看门狗扫描(挂在 UI 轮询心跳上) └─ 共享工件库(~/.dsh/swarm/artifacts/<sha1>.json,7 天 TTL) ↓ inbox/outbox(JSONL 文件信箱) ┌────────────┬────────────┬────────────┐ │ agent A │ agent B │ agent C │ ← 各自独立 Node.js 常驻进程 │ researcher │ coder │ analyst │ 各自独立模型/API │ state.json │ state.json │ state.json │ └────────────┴────────────┴────────────┘ ↓ 长产出工件库 art://a1b2c3d4(全文落盘,消息只传引用+摘要)

数据流(一次任务的生命周期):

1. Captain 调 swarm_send_task → 账本记 pending → 投递 inbox → 标 claimed
2. 智能体进程轮询到任务 → 调 LLM(可带 web_search 工具循环)→ 产出
3. 产出 >800 字符 → 落盘工件库 → outbox 只写 {resultRef, summary, size}
4. Captain 轮询到结果 → 账本记 done → 返回引用+摘要给 Captain
5. Captain 需要全文 → swarm_read_artifact 展开
6. 异常路径:API 报错/超时 → 账本 failed → 自动 requeue → 看门狗重投 inbox;重试 3 次仍失败 → dead 留痕

角色模板

| 角色 | 职责 | 触发关键词(Agent ID) |
| researcher | 搜索、收集、整理资料 | research / search |
| coder | 写代码、调试、执行命令 | coder / dev / engineer |
| analyst | 数据分析、报告撰写 | analyst / data |
| reviewer | 代码审查、质量把关 | review / check |

空白 Agent 在 swarm_create_team 时按 ID 关键词自动匹配,也可用 swarm_set_agent_prompt 手动指定。

Web UI

插件注册两个 HTTP 端点(dsh-host-webserver):

- GET /__dsh_swarm__/state.json — Agent 快照 + 团队 + 任务账本(客户端 2 秒轮询,同时驱动看门狗心跳)
- POST /__dsh_swarm__/agents — 创建/删除 Agent({action: "add"|"remove", ...})

致谢

本插件参考了以下 MIT 开源项目的架构与接口模式:

- @nanmicoder/dsh-agent-teams — 客户端 UI 面板、webServer 路由模式
- DSH-better-sidebar — 侧边栏/悬浮面板 UI 模式
- @deepseek-ai/dsh-bridge-browser — 工具注册与 TEXT_OUTPUT 模式
- @liustack/modlens — 识图插件集成参考

v0.4.0 的工件引用传递与任务账本看门狗设计思想来自 CogniLink 类多 Agent 系统的共享语义内存与契约式协商理念的简化落地。

License

MIT
预览分享卡片长什么样 ↓wanghj040530/dsh-swarm
分享 · DeepSeek Harness Hub
wanghj040530/dsh-swarm

领队拆分任务,多智能体独立进程并行执行并可靠交付

回到顶部