主模型规划派单,多个廉价模型并行执行并自动验收产出
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TheFool-TAROT/dsh-brain-hands该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/23) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
- 读取本地文件plugin.js:239
try { entries = readdirSync(dir, { withFileTypes: true }) } catch { return } - 写入本地文件plugin.js:255
writeFileSync(file, out.join('\n'), 'utf-8') - 读取本地文件plugin.js:287
entries = readdirSync(dir, { withFileTypes: true }) - 读取本地文件plugin.js:295
const m = statSync(full).mtimeMs - 读取本地文件plugin.js:339
if (!existsSync(script)) return Promise.resolve(null) - 执行外部命令固定命令plugin.js:345
execFile('python3', argv, - 删除本地文件plugin.js:574
if (handSnap !== null) { try { unlinkSync(handSnap) } catch {} } - 删除本地文件plugin.js:608
if (handSnap !== null) { try { unlinkSync(handSnap) } catch {} }
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的大脑加双手:一个编排模型负责规划,各个具名「手」用各自(往往免费)的模型运行;自动注入共享项目状态,并校验手的输出。
README
由 DeepSeek 最新模型翻译生成dsh-brain-hands
给 DeepSeek Harness 用的 Brain + Hands 编排插件:一个 brain 模型负责规划和决策,任意多个 hand 各自跑在自己的模型上(通常是你自建的免费池)。
English summary below
它解决什么问题
单个智能体会话里,所有工作都由同一个模型完成。这带来两个问题:
1. 贵:读 1000 个文件做统计,文件内容全进上下文,主模型按输出价计费
2. 慢:串行处理,无法并行
Brain + Hands 把工作拆开:
┌─────────────┐
│ Brain │ 规划 · 决策 · 汇总(贵,但活少)
│ (主模型) │
└──────┬──────┘
│ delegate_deepseekv4 / delegate_grok / ...
┌─────────┼─────────┐
▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐
│ hand │ │ hand │ │ hand │ 执行(便宜或免费,但活多) └──────┘ └──────┘ └──────┘
新增的两个能力(v1.1)
① 共享项目状态注入
brain 每次派 hand 都要在 brief 里重复描述项目背景——实测 36 次派单重复描述花掉 5.3 万 token(¥0.21)。
展开完整文档(README 剩余 1 节)
dsh-brain-hands 给 DeepSeek Harness 用的 Brain + Hands 编排插件:一个 brain 模型负责规划和决策,任意多个 hand 各自跑在自己的模型上(通常是你自建的免费池)。 English summary below 它解决什么问题 单个智能体会话里,所有工作都由同一个模型完成。这带来两个问题: 1. 贵:读 1000 个文件做统计,文件内容全进上下文,主模型按输出价计费 2. 慢:串行处理,无法并行 Brain + Hands 把工作拆开: ┌─────────────┐ │ Brain │ 规划 · 决策 · 汇总(贵,但活少) │ (主模型) │ └──────┬──────┘ │ delegate_deepseekv4 / delegate_grok / ... ┌─────────┼─────────┐ ▼ ▼ ▼ ┌──────┐ ┌──────┐ ┌──────┐ │ hand │ │ hand │ │ hand │ 执行(便宜或免费,但活多) └──────┘ └──────┘ └──────┘ 新增的两个能力(v1.1) ① 共享项目状态注入 brain 每次派 hand 都要在 brief 里重复描述项目背景——实测 36 次派单重复描述花掉 5.3 万 token(¥0.21)。 现在只要工作目录(或其浅层子目录)下有 PROJECT_STATE.md,插件会自动在 brief 里注入: 【项目状态】先读 /path/PROJECT_STATE.md,了解项目结构、接口约定、当前进度和你要做的部分。严格按其中的约定交付。 查找规则: ① 先看 cwd/PROJECT_STATE.md ② 再向下找 2 层子目录(跳过 node_modules/.git/templates/examples/docs/tests 等) ③ 多个命中时取 mtime 最新的 ④ 结果缓存 10 秒,避免每次派单都扫盘(实测 209 个目录 25ms) 模板见 templates/PROJECT_STATE.md。 ② 自动产出验收 hand 返回后,插件自动调用 verify.py 检查它写的代码: 【产出验收】✓ 4 个文件全部通过(语法/导入/无污染) 或者 【产出验收】✗ 发现问题,需修正: - flowforge/sources/__init__.py · 混入 Markdown 围栏(L2) · 语法错误 L2: invalid syntax - import flowforge 失败: No module named 'flowforge.graph.executor' 检查项: | 项 | 说明 | | 语法 | ast.parse | | Markdown 围栏混入 | hand 最常见的错误:把 | 非代码内容混入 | 表格、列表出现在代码位置 | | 整文件空实现 | 所有定义都是 pass | | 顶层包 import | 能否 import <pkg> | ③ 期望符号检查(v1.2) 插件从 brief 里自动提取「应该实现」的函数/类名: "实现 now_iso() -> str" → 提取 now_iso "写一个 parse_rfc3339(...)" → 提取 parse_rfc3339 "创建 class LRUCache,实现 get(key)" → 提取 LRUCache, get 然后传给 verify.py --expect。如果 hand 少写一个: 【产出验收】✗ 发现问题,需修正: - 缺少期望的定义: now_iso 这堵住了「函数名写错」这个盲区——实测 hand 曾把 now_iso 写成 get_time,而旧版验收因为语法合法、import 通过而误报「通过」。 ④ 新增 / 修改区分(v1.3) 派单前对 .py 文件做快照,返回后对比: 【产出验收】✓ 新增 1 / 修改 1,共 2 个文件、3 个定义全部通过(语法/导入/无污染) 为什么需要:Linux 上 st_birthtime 不可用、ctime 修改后也会变,只能靠快照可靠区分。 实用价值:brief 要求处理 2011 个文件时,如果报告显示「新增 312 / 修改 0」, brain 一眼就能看出覆盖不足(实测 hand 曾漏扫 85% 文件且自己没察觉)。 ⑥ 期望路径检查(v1.4) 从 brief 提取完整文件路径,验收时核对是否真的创建: brief: 创建 /proj/flowforge/utils/urlkit.py 实际: 写到 /proj/utils/urlkit.py ← 少一层报告: ✗ 期望的文件未创建: /proj/flowforge/utils/urlkit.py 前提:brain 要在 brief 里写出完整路径(不只是「在 xxx 目录下创建 yyy.py」)。 ⑤ 自主执行约束(v1.3.2) brief 里自动注入一段: 【执行要求】不要调用 ask_user_question —— 你没有用户可问。 遇到不确定的决策,按最合理的假设继续做,并在最终报告里说明你的假设。 必须实际写入文件,只描述代码不算完成。 实测两种失败模式: | 现象 | 兜底方式 | | hand 调 ask_user_question 后停摆 | 提示挡住(本版) | | hand 声称「已写文件」但实际没写 | 验收报「没有检测到新增/修改的 .py 文件」 | ⑦ 自动重试(v1.5) 验收发现 checked === 0(一个文件都没写)时,自动重派一次: 【重要】上一次你一个文件都没写。这次必须调用 write 工具把代码真正写到磁盘。 你确实拥有 write / edit / bash / read 工具,不要说它们不可用。 最多重试 2 次。第 2 次用「最后机会」措辞: 【最后一次机会】连续两次你都没有写入任何文件。 现在只做一件事:调用 write 工具,arguments 里给出 file_path 和 content。 不要输出解释、不要贴代码块、不要声称工具不可用。 重试发生时回复末尾带 [hand 前 N 次未写文件,已自动重试 N 次]。 实测(书生 deepseek-v4-flash,5 次连续测试): | 首次成功 | 1 次重试后 | 2 次重试后(理论) | | 40% | 80% | ~95% | 首次幻觉率实测约 60%,比预想的高。 验收是非阻断的——失败只附报告,不影响流程,由 brain 决定是否重派。 安装 bash 在你的 dsh profile 目录下 cd ~/.dsh/profiles/<your-profile> pnpm add github:TheFool-TAROT/dsh-brain-hands 或在 profile 的 package.json 的 dsh.profile.bundles 里加入 dsh-brain-hands。 配置 插件设置里配置 brain 和 hands: yaml - id: brain-hands name: dsh-brain-hands config: enabled: true primary: provider: deepseek model: deepseek-flash hands: - name: deepseekv4 provider: local model: intern-chat/deepseek-v4-flash note: "代码首选:写函数/改逻辑/修 bug/重构/写测试" - name: grok provider: local model: grok2api/grok-chat-fast note: "长文撰写、多版枚举、文档粗摘" 每个 hand 会变成一个 delegate_<name> 工具供 brain 调用。 使用 1. 建一个项目状态文件 把 templates/PROJECT_STATE.md 复制到工作目录,按实际情况填写: markdown 项目状态 项目 Flowforge —— 分布式数据管道编排引擎根目录:/path/to/your/project 目录结构(实时更新) 接口约定(所有 hand 必须遵守) - 所有类用 @dataclass(frozen=True) - 所有公开方法带类型注解 + docstring - 错误统一用 FlowforgeError - 日志用 logging.getLogger(__name__) 进度 - core/ ✅ - engine/ ✅ - sources/ ⬜ ← 待写 - operators/ ⬜ 本批任务写 sources/ 包:FileSource、HttpSource 两个类都实现 read() -> Iterator[dict] 2. 派 hand brain 侧: 先读 PROJECT_STATE.md,按其中「本批任务」完成 sources/ 包。 插件会自动补上状态文件路径,并注入到 hand 的 brief。 3. 看验收报告 hand 返回时自动附带: 【产出验收】✗ 发现问题,需修正: - flowforge/sources/__init__.py · 混入 Markdown 围栏(L2) brain 看到后修掉或重派。 实测数据 完整实验方法、原始数据、以及两次错误结论的修正过程,见 docs/EXPERIMENT.md。 这个插件怎么从「能跑但不可靠」调到「实测 3/3 全绿」的完整排查过程,见 docs/DEBUGGING.md——含 5 个诊断阶段、3 次验收误报,以及从模型拒绝话术反推根因的思路。 在真实 agent 会话中做的三组对照实验(DeepSeek V4.1-Flash 官方价:未命中 ¥1/M · 命中 ¥0.02/M · 输出 ¥4/M,空闲时段): | 任务 | Brain+Hands | 纯主模型 | 结论 | | 从零构建 2.6 MB 项目 | ¥2.01 | ¥4.78 | 用 hand 省 58% | | 分析 340 KB 代码库 | ¥0.0293 | ¥0.0334 | 用 hand 省 12% | | 分析 18.6 MB 代码库 | ¥0.0251 | ¥0.0122 | 自己干省 51% | 什么时候用 hand ✅ 大量写代码、从零构建 → 省 58%,且 docstring 覆盖率高 84% ✅ 需要并行处理 → 多个 hand 同时跑 ✅ 超长文档总结 → 主模型会截断,hand 有 1M 窗口 ❌ 批量读代码做统计 → 主模型一次 ast 就能搞定,反而省 51% ❌ 数据完整性要求高的任务 → 实测 hand 会漏扫 85% 文件且不自知 一个必须记住的坑 实验中发现:hand 处理 2011 个文件的分片任务,实际只扫了 312 个(15%),而且它自己没察觉。 所以: 在 brief 里写明总文件数 → 要求 hand 回报实际处理数 → 不匹配就重做 自动验收只能挡住语法和污染,挡不住「漏做」,这块必须 brain 主动核对。 开箱即用的三件套 templates/PROJECT_STATE.md 项目状态文件模板 verify.py 验收脚本(也可单独跑) plugin.js 插件本体(自动注入 + 自动验收) verify.py 可以脱离插件单独用: bash python3 verify.py /path/to/project --since $(date -d '5 minutes ago' +%s) python3 verify.py /path/to/project --json English summary dsh-brain-hands 是 DeepSeek Harness 的插件,实现 Brain + Hands 模式:由一个编排模型负责规划与决策,每个具名 hand 各自跑在自己的模型上(通常是自托管的免费模型池)。 v1.1 新增: - 共享项目状态注入 —— 工作目录下存在 PROJECT_STATE.md 时,它的路径会自动注入到每份 hand 简报里。实测节省:36 次派发共省下 53K token(约 ¥0.21)。 - 自动输出校验 —— 每次 hand 运行结束后,verify.py 检查生成的 Python 代码有无语法错误、多余的 Markdown 围栏、空实现和导入失败,然后把报告追加到 hand 的回复里。 在真实智能体会话上实测(DeepSeek V4.1-Flash 价格,低谷时段): | 任务 | Brain+Hands | 单模型 | 胜出 | | 构建 2.6 MB 项目 | ¥2.01 | ¥4.78 | hands 省 58% | | 分析 340 KB 代码库 | ¥0.0293 | ¥0.0334 | hands 省 12% | | 分析 18.6 MB 代码库 | ¥0.0251 | ¥0.0122 | 单模型省 51% | 经验法则: 生成类任务(写代码)用 hands,批量阅读类任务只用 brain(无论仓库多大,brain 跑一遍 ast 就能搞定)。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
TheFool-TAROT/dsh-brain-hands
主模型规划派单,多个廉价模型并行执行并自动验收产出
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1