yolo-bot: DeepSeek Harness 数字员工工作台插件(host + web UI)
40.6/100
综合分
13
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cyancity/yolo-bot该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包yolo-bot(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 00:15:10
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 44 处,展示前 38 条)
- 读取本地文件build-support/bundle-input-isolation.ts:51
if (!allowMissing && !existsSync(file)) throw new Error(`${this.label}: input ${id} is missing`) - 读取本地文件build-support/bundle-input-isolation.ts:52
while (!existsSync(existing)) { - 读取本地文件build-support/bundle-input-isolation.ts:69
if (existsSync(manifest)) { - 读取本地文件build-support/bundle-input-isolation.ts:70
const value: unknown = JSON.parse(readFileSync(manifest, 'utf8')) - 执行外部命令固定命令build-support/client-build-environment.ts:56
const value = explicit ?? execFileSync('git', ['rev-parse', 'HEAD'], { - 读取本地文件build-support/client-build-environment.ts:76
manifest = JSON.parse(readFileSync(path, 'utf8')) - 执行外部命令固定命令build-support/client-build-environment.ts:94
const probe = spawnSync('git', ['rev-parse', '--is-inside-work-tree'], { - 执行外部命令固定命令build-support/client-build-environment.ts:101
const status = spawnSync('git', ['status', '--porcelain=v1', '--untracked-files=normal'], { - 写入本地文件build-support/client-build-environment.ts:305
mkdirSync(dirname(path), { recursive: true }) - 写入本地文件build-support/client-build-environment.ts:306
writeFileSync(path, `${JSON.stringify(record, null, 2)}\n`) - 读取本地文件build-support/client-build-environment.ts:321
if (!existsSync(path)) { - 读取本地文件build-support/client-build-environment.ts:327
parsed = JSON.parse(readFileSync(path, 'utf8')) - 读取本地文件build-support/client-build-environment.ts:348
.filter(path => !/ lib client node(?: |$)/.test(path) && statSync(resolve(root, path)).isFile()) - 读取本地文件build-support/client-build-environment.ts:354
const content = readFileSync(resolve(root, path)) - 读取本地文件build-support/tsdown.client.ts:327
this.emitFile({ type: 'asset', fileName, source: await readFile(file), originalFileName: file }) - 读取本地文件build-support/tsdown.client.ts:379
parsed = JSON.parse(readFileSync(manifestPath, 'utf8')) - 读取本地文件build-support/tsdown.client.ts:477
const current = await stat(entryPath) - 写入本地文件build-support/tsdown.client.ts:479
await utimes(entryPath, current.atime, completedAt) - 读取本地文件build-support/tsdown.client.ts:594
const source = await readFile(fileId) - 读取本地文件build-support/tsdown.client.ts:619
const source = await readFile(fileId) - 读取本地文件build-support/tsdown.client.ts:634
const source = await readFile(fileId) - 写入本地文件workbench-host/src/atomic-file.ts:7
await mkdir(join(path, '..'), { recursive: true }) - 写入本地文件workbench-host/src/atomic-file.ts:11
await writeFile(tmp, data, 'utf8') - 写入本地文件workbench-host/src/atomic-file.ts:17
await rename(tmp, path) - 删除本地文件workbench-host/src/atomic-file.ts:27
await rm(tmp, { force: true }).catch(() => {}) - 读取本地文件workbench-host/src/http-files.ts:36
const stats = await stat(path) - 读取本地文件workbench-host/src/http-files.ts:75
const stream = createReadStream(path, options) - 读取本地文件workbench-host/src/skills.ts:68
entries = await readdir(dir, { withFileTypes: true }) - 读取本地文件workbench-host/src/skills.ts:86
const meta = parseFrontmatter(await readFile(file, 'utf8')) - 读取本地文件workbench-host/src/skills.ts:114
const content = await readFile(candidate.locator, 'utf8') - 写入本地文件workbench-host/src/user-skills.ts:18
await writeFile(temporary, content, { flag: 'wx' }) - 写入本地文件workbench-host/src/user-skills.ts:19
await rename(temporary, path) - 删除本地文件workbench-host/src/user-skills.ts:21
await rm(temporary, { force: true }) - 读取本地文件workbench-host/src/user-skills.ts:60
try { content = await readFile(await checkedSkillFile(this.root, name), 'utf8') } - 读取本地文件workbench-host/src/user-skills.ts:72
for (const entry of await readdir(root, { withFileTypes: true })) { - 写入本地文件workbench-host/src/user-skills.ts:98
try { await mkdir(target) } catch (error) { - 删除本地文件递归workbench-host/src/user-skills.ts:112
if (directory !== undefined) await rm(directory, { recursive: true, force: true }) - 读取本地文件workbench-host/src/user-skills.ts:176
try { content = await readFile(await checkedSkillFile(this.root, name), 'utf8') }
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-plugin-market-index给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图README
由 DeepSeek 最新模型翻译生成yolo-bot
把 DeepSeek Harness 变成一支数字员工团队
在频道里说一句任务,负责人拆解、派给员工执行,最后把成果交到你手上。
员工各自挂模型和 skill,有记忆,能被 @、能私信,干完的流程还能沉淀成新技能。
下载 · 快速开始 · 功能 · 扩展 API
适合谁
DSH 默认是一个人对一个会话。任务一复杂,你就得自己拆步骤、换会话、来回粘贴上下文。yolo-bot 在 DSH 里加了一层团队协作:
- 你只对负责人说需求,它负责拆解、派工、催进度和汇总。
- 每个员工是一份固定的职责:自己的模型、自己的 skill、自己的记忆,换任务不用重新交代。
- 过程留在线程里,结果落成成果文件,有版本、能定稿、能下载。
如果你常让 AI 做多步骤的活(调研加写作、资料整理加出稿、分析加汇报),它适合你。如果你只是偶尔问一两句,DSH 自带的会话就够了。
快速开始
先安装 DSH(需 0.2.1-rc.5 版本),并配置至少一个可用模型。yolo-bot 直接复用 DSH 里注册的模型与凭据,不需要另建账户。
1. 添加插件市场。 两个包均已发布在 npm,通过本仓库提供的索引源安装。
展开完整文档(README 剩余 1 节)
yolo-bot 把 DeepSeek Harness 变成一支数字员工团队 在频道里说一句任务,负责人拆解、派给员工执行,最后把成果交到你手上。 员工各自挂模型和 skill,有记忆,能被 @、能私信,干完的流程还能沉淀成新技能。 下载 · 快速开始 · 功能 · 扩展 API 适合谁 DSH 默认是一个人对一个会话。任务一复杂,你就得自己拆步骤、换会话、来回粘贴上下文。yolo-bot 在 DSH 里加了一层团队协作: - 你只对负责人说需求,它负责拆解、派工、催进度和汇总。 - 每个员工是一份固定的职责:自己的模型、自己的 skill、自己的记忆,换任务不用重新交代。 - 过程留在线程里,结果落成成果文件,有版本、能定稿、能下载。 如果你常让 AI 做多步骤的活(调研加写作、资料整理加出稿、分析加汇报),它适合你。如果你只是偶尔问一两句,DSH 自带的会话就够了。 快速开始 先安装 DSH(需 0.2.1-rc.5 版本),并配置至少一个可用模型。yolo-bot 直接复用 DSH 里注册的模型与凭据,不需要另建账户。 1. 添加插件市场。 两个包均已发布在 npm,通过本仓库提供的索引源安装。在 DSH 的 插件 页打开 实验性插件 → 更多,启用「自定义插件市场」,切到 发现 标签,点击 添加索引源,填入: https://raw.githubusercontent.com/cyancity/yolo-bot/main/market/index.json 2. 安装。 在列表里安装 YOLO Bot 和 YOLO Bot 界面,两个包必须保持同一版本。看到下次启动生效的提示后,完全退出 DSH 再重新打开。 若不方便使用市场,也可以从 Releases 下载两个 .tgz 手动安装,注意先装后端、再装界面: | 文件 | 作用 | | cyancity-yolo-bot-<版本>.tgz | 后端:频道、员工、派工、记忆、技能 | | cyancity-yolo-bot-ui-<版本>.tgz | 界面:工作台页面 | DSH 桌面版:在侧栏进入 插件 → 添加插件,在地址栏填入 .tgz 的绝对路径并启用。 DSH Web 版(需要 Node.js 22.19 以上): npx @deepseek-ai/dsh@0.2.1-rc.5 plugin --profile web add <yolo-bot.tgz 绝对路径> npx @deepseek-ai/dsh@0.2.1-rc.5 plugin --profile web add <yolo-bot-ui.tgz 绝对路径> npx @deepseek-ai/dsh@0.2.1-rc.5 web 命令行安装到其他 profile 时,把 web 换成目标 profile 即可。桌面版的 desktop profile 只能由其自身修改:先完全退出桌面版,再用安装目录下的 resources/runtime/cli/bin/dsh 执行相同命令。 更新 升级 DSH 或拉取新源码都不会自动更新插件,两个包需要同时更新到同一版本。通过市场更新时,有新版会自动提示,更新后完全退出并重新打开 DSH 即可;DSH 升级后若旧版插件不再兼容,市场会将其标为不兼容,并推荐适配新版 DSH 的版本。 若不方便使用市场,可以从 Releases 下载最新版的两个 tgz 手动更新。桌面版用户在「插件」页用新版 tgz 更新同名插件,两个包都更新完后完全退出并重开 DSH;Web / CLI 用户先停止运行中的实例,再在原 profile 重新安装两个包: dsh plugin --profile web add <新版后端tgz绝对路径> <新版界面tgz绝对路径> 把命令里的 web 换成原来使用的 profile,再按原方式启动 DSH。更新时无需先卸载插件;只要保留原来的 DSH_HOME、profile 和数据目录,员工、频道、会话与材料都会继续沿用。 本仓库维护通用 Bot 核心与公开扩展 API。私有工作台通过扩展 API 接入专属页面和预览卡片,按需独立更新;白标发行壳暂时冻结。 3. 开工。 打开工作台,首次启动已经有一个「任务大厅」频道和三名员工:负责人、分析、执行。直接在任务大厅里描述任务即可;要调整分工,在员工管理里改职责、模型和 skill,或者添加新员工。 怎么运作 flowchart LR U([你]) -- 频道里发任务 --> L[负责人] L -- 拆解与派工 --> A[员工 A模型 + skill] L -- 拆解与派工 --> B[员工 B模型 + skill] A -- 回报与交接 --> L B -- 回报与交接 --> L L -- 汇总 --> D[(成果文件)] D --> U U -. "@员工 / 私信 / 线程追问" .-> A 每名员工背后都是一个 DSH 原生会话,用 DSH 的工具和模型执行。负责人只调度,不替员工干活;你随时可以绕过负责人,直接 @ 某名员工或私信它。 功能 频道与负责人派工 频道是一个工作场所,由负责人接任务。负责人按依赖拆步骤,派给合适的员工,等上一步的产出到位再交给下一步;缺资料或需要人工确认时会停下来问你,不拿通用方案冒充完成。执行中的任务可以随时取消,中断的任务可以继续。 线程、@ 和私信 任何一条消息都能展开成线程继续追问,不打乱频道主线。输入 @ 从列表里挑员工,它会直接回你。私信是你和单个员工的独立对话,历史单独保存。 员工:模型、skill、记忆 员工有名字、职责、模型和 skill。模型从 DSH 已注册的 provider 里选,留空时用全局默认模型。skill 来自 DSH 官方 skills registry,也可以用自己写的。 记忆分三层:全局、频道、员工。你可以写下长期交代(比如「文案用短句,不用夸张承诺」),员工在之后的任务里照做;记忆也能随时查看、修改和删除。 材料与成果 你上传的文件是材料,员工交出的文件是成果。成果保留全部版本,可以标为最终版、在线打开或下载。工具写出的文件、对话里的附件和成果在同一个文件视图里按来源区分。 把做过的流程沉淀成技能 一套流程跑顺之后,负责人可以把它整理成技能草稿。草稿进入你的审核:可以直接编辑,每次保存会重算检查提示,有阻止项时不能安装;不满意就写上意见退回给负责人重整。审核通过后一键安装并绑定到员工,下次同类任务直接复用。 作业画布 用画布查看当前有哪些员工在干活、各自在哪一步、哪些已完成或失败,点开节点能看到对应的会话和任务。 界面与主题 两种布局:Discord 风格(频道分区,消息靠左)和微信风格(会话列表,消息左右排列)。明暗可以跟随系统,也可以固定浅色或深色。界面支持中文和英文,默认跟随浏览器语言,可以在设置里切换。 员工头像默认是圆形眼睛,也可以换成复古终端屏;终端屏风格下,员工执行时可以显示哈希代码、二进制流或命令行滚屏特效。 备份 一键把工作台数据和原生会话备份到本机,包括材料、全部成果版本、对话和执行目录。开始前需要等任务结束,备份期间工作台的变更会排队等待。DSH 凭据库不在备份里,换机器后需要重新配置 Key。备份可能包含你输入过的敏感内容,不要公开。 数据与隐私 所有数据留在你自己的电脑上:工作台数据在 DSH 数据目录下的 workbench/,员工会话由 DSH 管理。yolo-bot 没有使用统计上报,不保存模型凭据,模型请求只发往你在 DSH 里配置的 provider。 唯一的例外是联网搜索结果的站点图标:界面会按结果的域名向 Google favicon 服务(www.google.com/s2/favicons)请求图标,Google 能看到这些域名和你的 IP;请求失败时回退为字母图标。 扩展 yolo-bot 核心只提供通用的协作能力,不附带行业目录或制作流程。行业模板、专用页面和工具可以做成独立扩展:host 侧通过 Cordis 服务注册路由、模板和技能来源,UI 侧通过插座注册页面、导航和设置项。扩展只依赖公开类型入口 @cyancity/yolo-bot/extension 和 @cyancity/yolo-bot-ui/extension。 详见 扩展 API。 开发 项目用 pnpm workspace 管理,包含两个包: | 包 | 目录 | 形态 | | @cyancity/yolo-bot | workbench-host | Cordis 宿主插件 | | @cyancity/yolo-bot-ui | workbench-ui | dsh.client web 插件 | 环境要求 Node.js ^22.19.0 || >=24.0.0、pnpm >= 9,与 DSH 宿主保持一致。 pnpm install pnpm -r typecheck pnpm -r test pnpm -r build 启动独立浏览器开发版: pnpm dev [--port 3099] 数据保存在当前工作树 tmp/dev-web/,前端改动由 HMR 热更新,后端改动自动热重载。首次启动如需注入本地模型配置,可设置环境变量 YOLO_BOT_DEV_PROFILE_PATCH 指向 cordis patch 文件;未设置时保持宿主默认,可在界面中配置模型。 装包前必须先构建,发布文件以各包 files 白名单为准。依赖钉版、运行时契约和贡献规范见 AGENTS.md。提交信息使用 conventional 前缀(feat:、fix:、chore:)。 致谢 - DeepSeek Harness:yolo-bot 构建在 DSH 插件系统之上,build-support/ 来自 DSH 上游。 - Hermes Agent:内置技能 document-to-action-items 改编自其中的实现。 - React Flow:作业画布。 许可证 MIT。按「原样」提供,不附带任何担保。第三方代码的来源与许可见 THIRD_PARTY_NOTICES.md。 免责声明 yolo-bot 是独立的社区项目,不是 DeepSeek 官方产品,与 DeepSeek 没有隶属、背书或赞助关系。「DeepSeek」「DeepSeek Harness」等名称归各自所有者,这里只用来说明本插件运行在什么平台上。 员工使用你自己的模型额度,并会按任务需要读写文件、执行命令。重要操作请自己核对。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
cyancity/yolo-bot
yolo-bot: DeepSeek Harness 数字员工工作台插件(host + web UI)
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7