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

常驻专家团 nescafe2009/dsh-grokbot

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

在首页组建常驻多专家团队并派发任务

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add nescafe2009/dsh-grokbot
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · skill
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 48 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/23) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-grokbot(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 09:40:19

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 177 处,展示前 31 条)
  • 写入本地文件
    lib/index.mjs:50
    await mkdir(inboxRoot, { recursive: true });
  • 读取本地文件
    lib/index.mjs:54
    return JSON.parse(await readFile(path, "utf8"));
  • 读取本地文件
    lib/index.mjs:61
    return await readFile(path, "utf8");
  • 读取本地文件
    lib/index.mjs:68
    await stat(path);
  • 读取本地文件
    lib/index.mjs:89
    const dir = rawDir && existsSync(rawDir) ? rawDir : join(inboxRoot, jobId);
  • 写入本地文件
    lib/index.mjs:116
    await mkdir(job.dir, { recursive: true });
  • 读取本地文件
    lib/index.mjs:126
    return JSON.parse(await readFile(join(dir, "status.json"), "utf8"));
  • 写入本地文件
    lib/index.mjs:171
    await writeFile(tmp, text, "utf8");
  • 写入本地文件
    lib/index.mjs:172
    await rename(tmp, path);
  • 写入本地文件
    lib/index.mjs:177
    await mkdir(dir, { recursive: true });
  • 读取本地文件
    lib/index.mjs:207
    text = await readFile(path, "utf8");
  • 写入本地文件
    lib/index.mjs:211
    if (!text.endsWith("\n") && text.length > 0) await appendFile(path, "\n");
  • 删除本地文件
    lib/index.mjs:2721
    await rm(path, { force: true }).catch(() => {});
  • 删除本地文件
    lib/index.mjs:2755
    await rm(path, { force: true }).catch(() => {});
  • 执行外部命令固定命令
    lib/index.mjs:3338
    const child = spawn("git", args, {
  • 删除本地文件
    lib/index.mjs:3379
    await rm(dir, {
  • 执行外部命令固定命令
    lib/index.mjs:6187
    const child = spawn("/bin/bash", ["-c", command], {
  • 执行外部命令固定命令
    lib/index.mjs:6236
    const child = spawn("ssh", args, { stdio: [
  • 执行外部命令固定命令
    lib/index.mjs:6299
    tunnelProc = spawn("ssh", args, { stdio: "ignore" });
  • 执行外部命令固定命令
    lib/index.mjs:6319
    const child = spawn("rsync", [
  • 删除本地文件
    lib/index.mjs:6719
    await rm(dir, {
  • 发起网络请求
    lib/index.mjs:9761
    if (await projectCanRun(conversationId)) chiefWake.request(conversationId);
  • 发起网络请求
    lib/index.mjs:10946
    if (body.decision === "reject" || !step?.finalDelivery) chiefWake.request(id);
  • 执行外部命令固定命令
    lib/index.mjs:11498
    await new Promise((ok, err) => spawn("open", ["-R", real], { stdio: "ignore" }).on("exit", (code) => code === 0 ? ok() : err( new Error(`open exited $
  • 删除本地文件
    lib/index.mjs:12201
    await rm(join(skillsDir, `${name}.md`), { force: true });
  • 发起网络请求
    lib/client.js:477
    const r = await fetch("/api/plugins/grokbot" + path, {
  • 写入剪贴板
    lib/client.js:1048
    await navigator.clipboard.writeText(props.code);
  • 发起网络请求
    lib/client.js:1245
    fetch(`/api/plugins/grokbot/artifacts/${props.artifact.id}?action=reveal`, { method: "POST" }).then(async (r) => {
  • 发起网络请求
    lib/client.js:2623
    const response = await fetch(`/api/plugins/grokbot/bots/${encodeURIComponent(botId)}/work?detail=${expanded ? "1" : "0"}`, { signal: controller.signal
  • 发起网络请求
    lib/client.js:3731
    fetch(`${API_ROOT}/ui-state`, {
  • 发起网络请求
    lib/client.js:3827
    const res = await fetch(`${API_ROOT}${path}`, {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-persistence@deepseek-ai/dsh-subagent@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-workspace
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 组建常驻多专家团队
  • 派发任务
  • 群聊交接

Grok Bot 式常驻 agent 团队——DeepSeek Harness (DSH) 纯插件实现:统一会话实体/预设专家/群聊交接/记忆持久化/审批卡

README

由 DeepSeek 最新模型翻译生成
DeepSeekBot · v0.6.1 正式里程碑版,也可供同事小范围试用。已验证宿主为 macOS arm64 的 DSH Desktop 0.8.2;安装包不附带模型额度、API key、聊天记录或项目数据。 先阅读 安装、升级与回退 和 同事试用手册。技术包名仍为 dsh-grokbot,展示名为 DeepSeekBot。 定位 DeepSeekBot(npm 包名 dsh-grokbot)是一个纯 out-of-tree DSH 插件:安装即得 Grok Bot 式的常驻团队(多专家/群聊/派发回流/幕僚长协调/任务闭环)。bots 用 DSH 原生工具在宿主本机执行(本地调用、无 SSH 绕行;本插件通过 profile patch 启用 web profile 默认禁用的 bash/fs 等执行工具,沙箱与审批沿用 DSH 原生体系。不承诺固定耗时——同任务下插件路径与直连的额外回合/耗时如实计量,见效率验收)。 可选配件:配置 computer.json 后获得一台团队共享电脑(Linux VM)——用于无头构建、长时任务、托管可试玩的 HTML(noVNC 观摩)。默认不启用,不影响插件本体。 项目基础 在 DeepSeek Harness (DSH) 上复刻 Grok Bot 模式的常驻 agent 团队插件。
展开完整文档(README 剩余 1 节)
DeepSeekBot · v0.6.1

正式里程碑版,也可供同事小范围试用。已验证宿主为 macOS arm64 的 DSH Desktop 0.8.2;安装包不附带模型额度、API key、聊天记录或项目数据。

先阅读 安装、升级与回退 和 同事试用手册。技术包名仍为 dsh-grokbot,展示名为 DeepSeekBot。

定位

DeepSeekBot(npm 包名 dsh-grokbot)是一个纯 out-of-tree DSH 插件:安装即得 Grok Bot 式的常驻团队(多专家/群聊/派发回流/幕僚长协调/任务闭环)。bots 用 DSH 原生工具在宿主本机执行(本地调用、无 SSH 绕行;本插件通过 profile patch 启用 web profile 默认禁用的 bash/fs 等执行工具,沙箱与审批沿用 DSH 原生体系。不承诺固定耗时——同任务下插件路径与直连的额外回合/耗时如实计量,见效率验收)。

可选配件:配置 computer.json 后获得一台团队共享电脑(Linux VM)——用于无头构建、长时任务、托管可试玩的 HTML(noVNC 观摩)。默认不启用,不影响插件本体。

项目基础

在 DeepSeek Harness (DSH) 上复刻 Grok Bot 模式的常驻 agent 团队插件。

展示名已改为 DeepSeekBot;技术标识(npm 包名 dsh-grokbot、API 路由、状态目录、localStorage 键、插件注册名等)保持兼容不变。本插件与 DeepSeek 官方无隶属关系,不代表 DeepSeek 官方出品。

一切皆插件:本项目是纯树外插件,不修改 DSH 本体,dsh plugin 一条命令安装。

它做什么

- 常驻 agent 团队:在 crew.json 里定义若干具名 bot(头像、人格、可配置工作区),DSH 启动即常驻
- 首页原生存在:bot 卡片直接出现在 DSH 首页输入区下方,显示实时状态(待命/工作中),点击即聊——不新开窗口
- todi-hub 兼容 inbox 协议:queue.jsonl + <jobId>/job.json + reply.md,与 Grok Bot 的文件驱动方式同构,外部系统(手机、webhook、定时器)投文件即接活
- 项目级 Git 工作区:新项目在 <stateDir>/workspaces/<projectId>/repo 初始化独立本地 Git;Computer 可连接 Dell Gitea 或 GitHub,之后幕僚长能按用户要求创建或复用远端仓库并绑定项目;旧项目和普通私聊继续兼容共享 workspace

安装

构建产物已提交,安装端无需 TS 工具链
dsh plugin --profile web add <本目录>
或从 GitHub
dsh plugin --profile web add github:nescafe2009/dsh-grokbot

重启 DSH 后,从团队侧栏进入幕僚长、成员私聊或项目群聊。

当前版本:v0.6.1。固定版本可从 GitHub Releases 下载 dsh-grokbot-0.6.1.tgz,使用 dsh plugin --profile web add /路径/dsh-grokbot-0.6.1.tgz 安装。升级前请备份插件状态目录;升级不删除会话与项目文件。

配置

状态目录:~/.dsh/grokbot/

crew.json 示例:

{
"routing": { "default": "chief" },
"bots": [
{
"id": "chief",
"name": "幕僚长", "avatar": "🎖️", "persona": "你是团队的幕僚长,用简体中文直接处理任务。", "workspace": "", "model": null }, { "id": "coder", "name": "工程师", "avatar": "🛠️", "persona": "你是团队的工程师,负责编码与调试。", "workspace": "" } ] }

inbox 协议(外部投递任务)

INBOX=~/.dsh/grokbot/inbox
mkdir -p "$INBOX/myjob"
echo "帮我总结这个目录" > "$INBOX/myjob/prompt.md"
echo '{"jobId":"myjob","text":"帮我总结这个目录","dir":"'$INBOX'/myjob"}' >> "$INBOX/queue.jsonl"
等待 $INBOX/myjob/reply.md 出现

HTTP API(前端与外部系统通用):

- GET /api/plugins/grokbot/state —— bots 状态、队列、最近任务
- POST /api/plugins/grokbot/inbox —— { text, toBot?, images? } 入队
- POST /api/plugins/grokbot/bots/:id/chat —— { text } 同步对话一轮
- GET/PUT /api/plugins/grokbot/crew —— 读取/更新团队定义

开发

npm install
npm run check # 语法 + 单元测试
npm run build # tsdown 构建 lib/(服务端 ESM + 客户端 CJS)

本地验证(隔离环境,不动真实 ~/.dsh):

DSH_HOME=/tmp/dsh-smoke dsh --profile web --dump-config # 树中应出现 grokbot

路线图

见 GOALS.md:常驻团队 ✅ → 首页 UI ✅ → inbox 协议 ✅ → 触发器(cron/webhook,规划中)→ 幕僚长路由编排(规划中)。

已知问题

多轮工具调用后,部分 OpenAI 兼容端点(如自建 vLLM 网关)会因请求携带空 tools 数组返回 400,导致带工具任务最后一轮失败;无工具任务不受影响。需在模型服务端修复(省略空 tools 字段)

License

MIT

审批与成员权限

审批集中在幕僚长会话,侧栏显示待审批数量。卡片展示申请人、目标文件、申请原因,并可展开修改前后内容;原始工具参数默认折叠。

- 允许一次(默认):仅放行本次工具操作。
- 持久权限:通过 DSH 宿主原生授权管理。插件不提供开启持久完全访问的入口。
- 关闭历史完全访问:如旧配置仍启用,可在对应 Bot 或成员权限页面关闭。

项目与模型管理

与幕僚长对话即可安排验收、返工、暂停、继续或归档。归档保留快照,不代表全部阶段已验收。各 Bot 的「工作进展」可查看真实派工、工具记录与交付。

「团队默认模型」入口提供常用模型库和按成员快捷分配。选择后立即保存,下次对话或任务生效;未单独指定模型的成员跟随团队默认。服务商连接和凭据仍由 DSH 管理。

生命周期与恢复机制详见 设计说明。

预置角色

角色库包含 UX/UI、前端体验、后端、安全与隐私、iOS、Android、架构、QA、鸿蒙、macOS、Windows 及原有通用专业角色。姓名、职位、专业规范与用户补充职责分别管理;私聊、群聊和派工使用同一份当前身份。现有成员按职位兼容,无需重新创建。可直接让幕僚长调整成员职责。来源、许可、映射与兼容规则见 角色设计与来源。

项目版本管理见 项目工作区与 Git。本地 Git 是统一底座;Computer 的“版本库”页连接 Dell Gitea 或 GitHub,并展示分支、提交、未提交改动和主远端状态;具体项目仍通过与幕僚长对话管理。

项目复盘与成长

对幕僚长说「复盘这个项目」,即可按实际阶段、交付与验收记录总结经验并评价各角色。改进建议进入后续工作的实践提醒,经过后续项目验证有效才获得成长经验。报告可在 Computer → 复盘档案回看。详见 复盘机制。

上下文治理

长会话使用 DSH 原生压缩并在每轮重新装配项目状态、用户指令来源和审核边界。群聊采用有界跨作用域目录与按需历史检索,压缩不删除原始 append-only 会话事件。维护记录、调用 token 与响应时间可在成员工作详情查看。设计与限制见 上下文管理说明。
预览分享卡片长什么样 ↓nescafe2009/dsh-grokbot
分享 · DeepSeek Harness Hub
nescafe2009/dsh-grokbot

在首页组建常驻多专家团队并派发任务

回到顶部