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

数字员工工作台 cyancity/yolo-bot

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

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
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 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」等名称归各自所有者,这里只用来说明本插件运行在什么平台上。

员工使用你自己的模型额度,并会按任务需要读写文件、执行命令。重要操作请自己核对。
预览分享卡片长什么样 ↓cyancity/yolo-bot
分享 · DeepSeek Harness Hub
cyancity/yolo-bot

yolo-bot: DeepSeek Harness 数字员工工作台插件(host + web UI)

回到顶部