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

Bot 团队 shper/dsh-bot-team

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

创建长期共事的智能体同事,单聊群聊派活协作

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

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

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

状态速览

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

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

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

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

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 36 处,展示前 36 条)
  • 发起网络请求
    client.js:328
    response = await fetch(url, options);
  • 发起网络请求
    client.js:418
    fetch(
  • 发起网络请求
    client.js:5482
    const response = await fetch(ROUTES.sessionExport + '?groupId=' + encodeURIComponent(groupId) + '&sessionId=' + encodeURIComponent(sessionId), { metho
  • 写入剪贴板
    client.js:6278
    return navigator.clipboard.writeText(value);
  • 写入本地文件
    host/service.js:771
    await mkdir(this.config.smokeResultsDir, { recursive: true });
  • 写入本地文件
    host/service.js:772
    await appendFile(
  • 写入本地文件
    host/service.js:2480
    await mkdir(this.config.smokeResultsDir, { recursive: true });
  • 写入本地文件
    host/service.js:2481
    await appendFile(
  • 读取本地文件
    host/service.js:2830
    const info = await stat(this.personas.fileOf(botA.botId, 'bot'));
  • 读取本地文件
    host/storage-layout.js:13
    return await lstat(target);
  • 读取本地文件
    host/storage-layout.js:33
    const destination = path.resolve(root, await readlink(legacy));
  • 写入本地文件
    host/storage-layout.js:48
    await rename(legacy, target);
  • 写入本地文件
    host/storage-layout.js:51
    await mkdir(target, { recursive: true });
  • 写入本地文件
    host/storage-layout.js:61
    await rename(target, legacy);
  • 写入本地文件
    host/personas.js:49
    await mkdir(this.dirOf(botId), { recursive: true });
  • 读取本地文件
    host/personas.js:56
    return await readFile(this.fileOf(botId, kind), 'utf8');
  • 写入本地文件
    host/personas.js:100
    await writeFile(this.fileOf(botId, kind), String(text ?? ''), 'utf8');
  • 发起网络请求
    host/update-check.js:235
    const response = await this.fetch(UPDATE_REGISTRY_URL, {
  • 发起网络请求
    host/update-check.js:277
    const response = await this.fetch(RELEASE_NOTES_SOURCE_URL, {
  • 发起网络请求
    host/update-check.js:319
    this.inFlight = Promise.race([Promise.resolve().then(() => this.request(controller.signal, result => { metadataResult = result; })), cancelled])
  • 读取本地文件
    host/pdf.js:94
    if (!file || !existsSync(file)) continue;
  • 读取本地文件
    host/workspace.js:84
    const canonical = await realpath(target);
  • 读取本地文件
    host/workspace.js:85
    if (!(await stat(canonical)).isDirectory()) {
  • 读取本地文件
    host/workspace.js:88
    await access(canonical, constants.R_OK | constants.X_OK);
  • 读取本地文件
    host/workspace.js:99
    await stat(target);
  • 读取本地文件
    host/workspace.js:109
    return (await stat(target)).isDirectory();
  • 写入本地文件
    host/workspace.js:131
    await mkdir(dir, { recursive: true });
  • 写入本地文件
    host/workspace.js:149
    await mkdir(path.dirname(botsDir), { recursive: true });
  • 写入本地文件
    host/workspace.js:150
    await rename(legacyBots, botsDir);
  • 读取本地文件
    host/workspace.js:156
    for (const entry of await readdir(legacyBots, { withFileTypes: true })) {
  • 写入本地文件
    host/workspace.js:161
    await rename(from, to);
  • 删除本地文件
    host/workspace.js:165
    await rmdir(legacyBots).catch(() => {});
  • 写入本地文件
    host/workspace.js:175
    await mkdir(path.dirname(to), { recursive: true });
  • 写入本地文件
    host/workspace.js:177
    await rename(from, to);
  • 删除本地文件
    host/workspace.js:217
    await unlink(path.join(legacyRoot, '.DS_Store')).catch(() => {});
  • 删除本地文件
    host/workspace.js:218
    await rmdir(legacyRoot)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-app-boot
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
Bot Team 把 DeepSeek Harness 变成一间「Bot 公司」:每个 Bot 都是真实的智能体,有独立会话、模型、人格和全套工具。你可以像用 IM 一样单聊、拉群、@ 派活、评审、讨论、建任务。 版本 1.3.0 · MIT · DSH 0.2.1-rc.x · npm dsh-bot-team Bot Team 首次使用欢迎页:创建 Bot、创建群聊与快速上手(深色) 当前客户端的真实 React 浏览器截图,使用隔离的模拟 API 数据。 这是什么 Bot Team 是 DeepSeek Harness(DSH)的侧栏插件。常见的「多智能体」是在一次对话里临时开几个子智能体,聊完即散;Bot Team 把 Bot 做成长期存在的同事: - 每个 Bot 有名字、头像、独立的 provider / model / reasoning effort / maxTokens,以及独立 Session 记忆; - 人格与工作规范写在 BOT.md,改完下一轮生效; - 单聊是它的工位,群聊是会议室,任务工具管理工单,评审和讨论组织协作流程; - 所有 Bot 统一为全能力 Bot:读写文件、搜索、联网、执行命令、Skill;不提供只读版或按角色裁剪工具的版本(workspace-write 沙箱,范围受群/单聊工作目录限制);
展开完整文档(README 剩余 1 节)
Bot Team

把 DeepSeek Harness 变成一间「Bot 公司」:每个 Bot 都是真实的智能体,有独立会话、模型、人格和全套工具。你可以像用 IM 一样单聊、拉群、@ 派活、评审、讨论、建任务。

版本 1.3.0 · MIT · DSH 0.2.1-rc.x · npm dsh-bot-team

Bot Team 首次使用欢迎页:创建 Bot、创建群聊与快速上手(深色)

当前客户端的真实 React 浏览器截图,使用隔离的模拟 API 数据。

这是什么

Bot Team 是 DeepSeek Harness(DSH)的侧栏插件。常见的「多智能体」是在一次对话里临时开几个子智能体,聊完即散;Bot Team 把 Bot 做成长期存在的同事:

- 每个 Bot 有名字、头像、独立的 provider / model / reasoning effort / maxTokens,以及独立 Session 记忆;
- 人格与工作规范写在 BOT.md,改完下一轮生效;
- 单聊是它的工位,群聊是会议室,任务工具管理工单,评审和讨论组织协作流程;
- 所有 Bot 统一为全能力 Bot:读写文件、搜索、联网、执行命令、Skill;不提供只读版或按角色裁剪工具的版本(workspace-write 沙箱,范围受群/单聊工作目录限制);
- 每个 Bot 都有持久会话,点「查看会话」可在完整历史页面查看所有轮次与执行记录。

功能

对话

| 能力 | 说明 |
| 单聊 | 每个 Bot 自动拥有一个单聊窗口,不需要 @,记忆与群聊相互独立 |
| 群聊 | 群 / 话题、成员管理、@ 派活、多 @ 并行回复 |
| 流式 | 实时流式输出、停止、失败重试、断线补齐 |
| 消息 | 引用回复(群聊回复 Bot 时自动 @ 原作者)、右键菜单、同作者消息合并、时间分隔、新消息分隔线、回到底部 |
| 输入 | 左下角 + 打开 DSH 风格分组命令菜单(文件 / 文件夹 / 技能 / 提及 / 停止 / 导出 / 设置);键入 / 选择 Skill;文件存入 DSH 附件库,Bot 拿到只读路径 |
| 项目 | + → 文件夹 引入本地项目,单聊和群聊均可用;Bot 在原目录检索、修改和运行任务,输入框支持更换或移除项目 |
| 导出 | 群聊导出 Markdown / HTML / PDF(PDF 文本可选中、A4 分页、页脚页码) |

组织与界面

- 首次使用引导:欢迎页以 创建 Bot 为主入口、创建群聊 为次入口;快速上手 提供三步引导,创建成功后直接进入新 Bot 单聊或新群;
- 欢迎页及侧栏 开始使用 仅在没有 Bot 且没有群聊时显示;存在任一即隐藏,已有数据时不能返回欢迎页;删除全部 Bot 和群聊后恢复;欢迎页不显示右侧 Bot 库;
- 单聊、群聊、未分组和自定义分组都能展开 / 收起,群与分组支持拖动排序;
- 左侧栏从 232px 收起成 68px 图标栏,底部 Bot 管理 / 设置 上下排列;欢迎页随可用宽度调整卡片布局,窄屏通过导航按钮展开侧栏;
- 深浅色跟随 DSH(light / dark / system),使用 --bt- token,切换即时生效;
- 账号头像、群头像(随机配色 / 10 个 SVG 插画 / 上传)、Bot 头像(按名字生成机器人面具);
- 设置 → 关于 提供异步版本检测、兼容更新入口与更新说明;插件启动后自动检查 npm,发现兼容更新时在 设置 入口显示小圆点。检测失败不影响聊天;
- 设置 → 数据存储 集中显示数据、人格文件、单聊和群聊默认工作目录。
- 中文 / English 界面跟随 DSH 的 设置 → General → Language 即时切换;宿主生成的讨论/评审/审批事件消息也会随语言切换,Bot 消息、群名、Bot 名等用户内容保持不变。

协作

以下讨论与辩论扩展已纳入 1.3.0 源码版本。加载本地目录中的新代码,需要在插件管理中 disable → enable 重新加载 Host,再刷新现有页面。完整流程与接口见讨论与辩论。

- 评审:让另一个 Bot 评审一条消息,返回「通过 / 需修改」结论徽标,可一键「让作者修改」;
- 多成员讨论:结构化讨论至少 2 人,界面提供快速 2 轮、标准 3 轮、深入 5 轮及自定义 2–20 轮,按观点、质询、收敛推进,穿插小结并可选最终总结;经典讨论支持 1–20 轮,旧工具调用默认 2 轮;
- 1v1 辩论:正反方各 1 人,可另选独立裁判;双方开篇、交替先手的交叉问答、总结陈词,再由裁判裁决。无裁判不生成胜负;
- 过程控制:查看阶段与发言者,暂停、继续、重试失败步骤、提前收束、停止,或补充材料与同群历史消息引用;
- 任务管理(模型工具/API):创建任务并设置描述、验收标准、指派与评审者;派发 → 交付 → 评审 → 验收;支持优先级、DAG 依赖、环检测、验收后自动解锁、批量派发、队列与中断。群聊右侧的任务面板和「新建任务」入口已移除,任务能力仍可通过模型工具与 HTTP action 使用;
- 审批:Bot 需要越界或升权时,聊天区域显示待处理审批卡片,可直接在 Bot Team 中允许一次或拒绝。

模型工具

当前工作区在普通会话里提供 10 个群聊工具;Bot 成员禁用写入编排工具以防递归,仍可读取群与任务列表:

bot_team_list bot_team_create_group bot_team_send bot_team_review
bot_team_discuss bot_team_debate bot_team_discussion_control
bot_team_task_create bot_team_task_list bot_team_task_update

安装

前置:DeepSeek Harness 0.2.1-rc.x(桌面版或 CLI profile 均可)。

桌面版

1. 左侧栏 插件 / Plugins → 添加插件;
2. 填 dsh-bot-team@1.3.0(也可以填本地目录绝对路径或 Git 地址);
3. 安装完成后启用;如果之前启用过,对该 bundle disable → enable(或完整重启 DSH);
4. 刷新页面,左侧栏出现 Bot Team 图标。

CLI

dsh plugin --profile <profile> add dsh-bot-team@1.3.0

安装后同样要重新加载 Host 模块(disable→enable 或重启)。

1.3.0 是当前源码版本;npm 上的公开发行版需按 发布指南 执行 npm publish。在发布前安装本机源码,请用本地目录路径。

从源码

git clone https://github.com/shper/dsh-bot-team.git
cd dsh-bot-team
npm install

在插件页把 /path/to/dsh-bot-team 作为本地目录添加;或让智能体执行 plugin_manager 的 install_bundle,target 填这个绝对路径。改完代码需要 disable→enable 或重启,才会加载新的 Host 模块。

仓库根目录就是插件目录。从源码安装时先运行 npm install,安装 PDF 字体子集化所需的 fontkit 依赖。

兼容性

engines.dsh 为 ^0.2.1-rc.3,安装在运行中的 DSH 版本上校验(含预发布版本)。DSH 升级到 0.3 后需要先跑一遍回归、再放宽范围并发新版本;用户被拦时可用 exact-version exemption,但会有风险提示。

快速开始

打开 Bot Team,没有 Bot 且没有群聊时会看到「开始使用」欢迎页。主按钮 创建 Bot 是推荐的第一步,也可以从次入口 创建群聊 开始;欢迎页右上角 快速上手 可查看以下三步:

1. 先认识一位 Bot:点 创建 Bot,起名、选模型、填写 BOT.md 人格(可插入 9 套现成人格模板)。创建成功后自动打开它的单聊,直接发消息即可,无需 @。
2. 为共同的目标,建一个群:点侧栏「群聊」右侧 +,保存后进入新群,再用右侧「+ 添加」邀请 Bot;同一 Bot 可以参与多个群。
3. 用 @ 邀请它们参与:在群输入框里用 @Bot名 派活,多个 @ 会并行回复并实时流式显示;随后可以发起评审或多轮讨论。

创建 Bot 或群聊后进入相应会话,欢迎页与侧栏 开始使用 隐藏,已有数据时不能返回欢迎页;删除全部 Bot 和群聊后恢复。取消创建会留在欢迎页。首页不显示右侧 Bot 库,全局 Bot 管理可从侧栏底部打开。欢迎页与引导支持中文 / English、light / dark 主题,并随可用宽度调整布局,窄屏可通过导航按钮访问侧栏。

任务可通过 bot_team_task_create / bot_team_task_list / bot_team_task_update 或 HTTP action 管理;群聊侧栏已移除任务面板。

浅色欢迎页(当前实现)

Bot Team 首次使用欢迎页(浅色)

同样来自当前客户端的真实 React 浏览器渲染,API 使用隔离的模拟数据。

它是怎么工作的

| 层 | 做法 |
| Bot | ctx.agents.create/resume 创建真实智能体与持久会话;meta.origin='subagent' 让它不出现在侧栏 |
| 群消息 | 群消息转成 UserMessage 走 agent.followup();session/event 与 agent/assistant-stream 驱动消息与流式 |
| 人格 | ctx.systemPrompt.section/context(agent 作用域)注入 BOT.md 与群上下文 |
| 工具 | ctx.agentPresets.mount 挂载「全能力」preset;ctx.tools.restrict 防止 Bot 递归调用 Team 工具 |
| 数据 | storage domain 内部标识 bot_team,实际目录 storages/dsh-bot-team(群 / 单聊 / 分组 / Bot / 成员 / 消息 / 讨论 / 任务),不写会话日志 |
| 页面 | 单文件 client.js 通过 window.__ModuleLoader__.load 注册到 main 与 sidebar.panellist 槽位 |
| 通道 | /api/bot-team.(bootstrap / messages / events(SSE) / action / file / health),全部在登录态栅栏内 |

升级 DSH 后按 升级检查清单 逐项验证。

配置

cordis.patch.yml 的 config 可在 profile 的 patch 层覆盖:

| 字段 | 默认 | 说明 |
| dataDir | $DSH_HOME/dsh-bot-team | 插件数据根目录(人格与工作目录) |
| botsDir | <dataDir>/bots | BOT.md 存放目录 |
| maxParallelTurns | 3 | 群级并行回复上限 |
| maxContextMessages | 40 | 单轮注入的历史消息上限 |
| enableModelTools | true | 是否向普通会话暴露 bot_team_ 工具 |
| dailyTokenBudget | 5000000 | 每群每日 token 上限 |
| botSandbox | true | Bot session 是否显式设为 workspace-write |
| botApprovalPolicy | ask | ask:越界时在群里出现审批卡片;never:无头模式直接拒绝 |

Bot 回复不再按小时限制轮数,旧配置中的小时轮数上限会被忽略。每群每日 token 预算仍由 dailyTokenBudget 控制,按 Host 本地时间零点重置;并行上限、单 Bot 串行及讨论轮数等调度规则保持不变。

完整字段、HTTP action 与工具参数见 插件配置与接口。

数据与隐私

| 路径 | 内容 |
| $DSH_HOME/storages/dsh-bot-team/ | 群、单聊、分组、Bot、成员、消息、任务、讨论 |
| $DSH_HOME/dsh-bot-team/bots/<botId>/BOT.md | 人格与工作规范 |
| $DSH_HOME/dsh-bot-team/groups/<groupId>/ | 群聊工作目录 |
| $DSH_HOME/dsh-bot-team/direct/<botId>/ | 单聊工作目录 |

- 启动时自动把旧的 storages/bot_team/ 实体目录迁到 storages/dsh-bot-team/,旧路径保留为兼容目录链接;已有记录和后续写入均位于新目录。使用自定义 JSON 存储根目录时,在该根目录下做同样迁移。
- 插件不向任何第三方服务上传数据;Bot 的模型请求走你在 DSH 里配置的 provider。
- Bot 默认拥有 workspace-write 的文件与命令能力,范围受工作目录限制。把它们指向敏感目录之前,请先确认这是你想要的。

仓库结构

host/ 服务、存储、Agent 与协作逻辑 locale/ 中英文本 test/ 回归测试与测试辅助 docs/ 使用、接口、发布与升级文档 assets/ 文档使用的截图 index.js Host 入口 client.js Web 客户端 cordis.patch.yml 插件与 Bot 工具预设 package.json 包元数据、依赖与验证命令 README.md 项目入口与开发说明 CHANGELOG.md 各版本修改记录 LICENSE MIT 许可证

仓库根目录同时是 npm 包根目录;开发、测试与打包命令均在这里运行。安装已有源码时直接选择包含 package.json 的仓库目录。

开发

宿主侧是普通 ESM,不 import 任何 @deepseek-ai/ 包;客户端是单文件 client.js,React 来自平台模块表。PDF 导出用 fontkit 读取并子集化系统 CJK 字体(唯一运行时依赖);其余测试不依赖第三方包、不调用真实模型、不访问个人数据。

在仓库根目录运行:

npm install # 安装唯一运行时依赖 fontkit(PDF 字体子集)
npm run check # node --check:index.js / client.js / host/*.js
npm test # 隔离回归测试;部分 PDF 用例按系统字体条件运行或跳过
npm pack --dry-run # 查看真正会被发布的文件

发布前自检,以及 npm / Git / 插件市场索引三条发布路线见 https://github.com/shper/dsh-bot-team/blob/main/docs/%E5%8F%91%E5%B8%83%E6%8C%87%E5%8D%97.md。

已知限制

- 分组只有一层;展开 / 收起是浏览器本地偏好,不跨设备同步;
- 同一群只允许一个未结束的讨论或辩论;paused 仍占用该位置,阻止新流程、/new 和切换项目。停止后若原生执行尚忙,会保留 stopping,需要等待并重新检查;
- 讨论视角、正反方和裁判是临时提示,仍复用成员的原会话;不保证角色或立场之间的记忆隔离;
- 任务队列是 Engine 内存态,重启后排队标记丢失(任务仍为进行中);
- Markdown 渲染较轻量:无语法高亮,图片未支持;
- PDF 使用系统 CJK 字体(macOS 优先 Hiragino Sans GB / Arial Unicode(宋体等无嵌入许可的字体自动跳过);Windows/Linux 用常见中文字体);没有 CJK 字体时导出返回 501,可用 pdfFontPath 指定字体文件;PDF 为轻量排版(无图片/头像、链接不可点击、emoji 可能缺字),正文文本可选中与搜索;
- 语言只覆盖界面与宿主事件消息;Bot 的回复、群名/Bot 名、人格模板正文、部分宿主错误仍按原语言显示;
- Bot 的操作边界由群/单聊工作目录、botSandbox 与审批策略共同约束。

文档

- 版本变更记录
- 完整功能、HTTP 通道与配置
- 使用指南
- 讨论与辩论:流程、工具、API 与恢复边界(1.3.0 源码版本)
- 发布指南
- 升级检查清单
- 消息执行过程
- 后台会话与完整日志
- 新建会话:数据模型与接口

当前源码版本为 1.3.0;各版本修改见 CHANGELOG,详细提交与历史验收记录可通过 Git 历史查阅。临时预览、调研副本和一次性工具不纳入维护目录。

License

MIT © shper

Bot Team 是 DeepSeek Harness 插件,用来组建长期共事的智能体同事。每个 bot 都是真正的 DSH 智能体,拥有自己的持久会话、模型、BOT.md 人设和完整工具集(文件、搜索、网页、命令,命令在 workspace-write 沙箱内执行)。每个 bot 都有独立私聊;群组支持 @mention 派发、并行流式回复、互评和多轮讨论。任务工具和 HTTP API 支持优先级、依赖、评审/验收和派发队列;群组侧边栏的任务面板及其创建入口已移除。数据存放在 bot_team 存储域和 $DSH_HOME/dsh-bot-team/;群组对话不会污染会话日志。

源码版本 1.3.0 新增结构化讨论、带可选独立裁判的 1v1 辩论,以及暂停/恢复/重试/结束/停止/上下文控制。已有的 discuss 工具调用仍默认走经典两轮讨论。先禁用再启用,重新加载本地插件 Host,然后刷新页面;详见讨论与辩论指南。

版本 1.2.1 修复了执行历史加载和实时 token 统计。Open full session 现在会打开独立的只读历史页面,并带明确的返回按钮;返回后保留原来的执行入口、聊天草稿和滚动位置。成员和侧边栏的会话入口使用同一个历史读取器,早前回复保存的会话也能打开。每小时回复上限已移除;每日 token 预算仍然生效。

Desktop: Plugins → Add plugin → dsh-bot-team@1.3.0, then reload
dsh plugin --profile <profile> add dsh-bot-team@1.3.0

1.3.0 是当前源码版本;这些 npm 安装示例要等该版本发布后才适用。发布前请用本地目录安装源码。

需要 DSH 0.2.1-rc.x。界面跟随 DSH 的 zh/en 语言设置,群组时间线可导出为 Markdown、HTML,或导出为文字可选的 PDF 分页文档。MIT 许可。
预览分享卡片长什么样 ↓shper/dsh-bot-team
分享 · DeepSeek Harness Hub
shper/dsh-bot-team

创建长期共事的智能体同事,单聊群聊派活协作

这是你的仓库?认领条目

回到顶部