跳到主要内容

dsh-baode

已验证

dsh-baode · v1.1.2 · MIT · Web 界面

把「不着急但需要 agent 能力」的活外包给豆包工作桌面端:任务卡 + 契约 + 台账 + 技能沉淀,省 DSH 的 token。运行时依赖只有 schemastery(宿主自带,用于设置页 schema)。

安装

dsh plugin add dsh-baode

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

发布到 npm 但没有公开仓库。安装前请检查包内容。

标签

作者

说明文档

dsh-baode

把不着急但需要 agent 能力的活,外包给「豆包工作」桌面端 —— 用任务卡 + 契约 + 台账把交付物要回来,省 DSH 自己的 token。

状态:P0–P4 已完成;P5(发布准备)就绪 —— npm pack 干跑通过,且已验证"解到空目录、只靠包内容完成 bootstrap"。 规划与决策见仓库内 _plugin-prep/DSH-BAODE-PLUGIN-PLAN.md,v2 清单见 docs/V2-BACKLOG.md。


前置依赖(少一条就是红的)

# 前置 为什么
1 Windows CDP 启动器(.lnk + explorer.exe)、PowerShell 脚本、%LOCALAPPDATA% 路径
2 Node >=22.19 需要内置 WebSocket + fetch 才能零依赖直连 CDP
3 豆包工作桌面版已安装且已登录 没登录,连上 CDP 也拿不到输入框
4 豆包必须以调试端口启动 —— --remote-debugging-port=9222 --remote-allow-origins=* 否则 CDP 不通,baode doctor 会红在这一条(本包的快捷方式会自动带上这两个参数)
5 回环 9222 未被占用 端口冲突会连到别的进程
6 能写豆包的 .user_skills 技能要装进豆包那一侧它才会用;受限沙箱下会被拒
7 Python 3 豆包执行 verify_*.py 验收脚本、以及本包 baode audit 调用 scripts/audit-extract.py(装在跑豆包的那台机器上)
8 DSH ≥ 0.1.5-rc.2 本插件依赖的装配行为在这个版本上验证过

运行时依赖:只有 schemastery(DSH 宿主自带,用于「设置 → 插件 → 插件配置」那张卡片的 schema)。除它以外只用 node:* 内置模块。

若是 link: 开发安装,schemastery 可能因 Node 按真实路径解析而找不到 —— 此时设置卡片会静默不出现,插件其余功能不受影响(baode doctor 里不会因此报红)。

首次安装三步

# 1) 用命令看缺什么、去哪儿补(首跑会生成数据目录与调试快捷方式)
baode doctor          # 期望:只剩「豆包未以调试端口启动」这一条
baode bootstrap       # 探测豆包 + 生成快捷方式 + 渲染技能到数据目录

# 2) 用该快捷方式启动豆包并登录,再确认
baode doctor          # 期望 healthy: true

# 3) 把技能装进豆包
baode install

豆包没开、或者"开了但 CDP 不通"

baode wake(工具面是 baode_wake)先判明是四种现场里的哪一种,再决定做什么:

现场 判据 动作
running-with-cdp 有进程 + CDP 可达 + 有聊天页 什么都不做,直接可用
not-running 没有 Doubao.exe + CDP 不通 自动唤醒:用快捷方式启动,然后轮询到出现聊天页(默认等 60s)。超时 ≠ 失败 —— 启动慢或需要你登录都会这样,再跑一次即可
running-without-cdp 有进程,但 CDP 不通 默认拒绝动手。Chromium 是单实例:这个实例没带调试端口时,再按带端口的快捷方式只会把它唤到前台(参数被丢弃、新进程直接退出)—— 这也是"我明明用快捷方式启动的"最常见的原因。唯一解法是"完全退出豆包 → 用快捷方式启动";要 baode 替你重启,必须显式 restart=true + consent=true(会关掉你正在用的窗口,未发出的内容会丢)
port-foreign 9222 有人应答,但没有聊天页 不启动(启动也没用)—— 是别的进程占了 9222;换端口(CDP_URL / cdpUrl)或查清占用者

安全约定:没有显式同意,baode 绝不结束任何进程;即使同意,也只结束可执行路径确实在豆包目录下的进程(路径读不到就拒绝,绝不盲杀)。baode doctor 在 CDP 不通时会把现场与下一步直接打出来;CDP 正常时不额外花时间探测。


安装

# 本机开发目录(link:改代码只需重启,不必重装)
dsh plugin --profile web add file:E:/workplace/dsh-baode

# 发布后
dsh plugin --profile web add dsh-baode

装完必须验证(只看 node_modules 或市场 UI 会骗你):

dsh --profile web --dump-config    # 抓 `- id: baode`

配置

项 默认 覆盖方式
数据目录 $DSH_HOME/.dsh-baode 环境变量 BAODE_DATA_DIR、包内 .local.json、插件 patch 行的 config.dataDir
豆包 .user_skills 自动探测 %LOCALAPPDATA% config.json 的 userSkills、环境变量 DOUBAO_USER_SKILLS
CDP 地址 http://127.0.0.1:9222 config.json 的 cdpUrl、环境变量 CDP_URL
监视调参(采样间隔 / 冻结判据 / 期限公式…) config.json 的 watch 段 设置 → 插件 → 插件配置 → 「豆包委派(baode)」卡片(写入 settings.yaml,优先级最高)

代码进包、数据留机器(.local.json 记录本机数据目录,按设计不随包发布):

<包>(随 npm 发布)              数据目录/(留在机器上)
├── lib/  bin/  assets/          ├── jobs/  ledger.jsonl  captures/
├── scripts/audit-extract.py     ├── audits/  proposals/  reports/
├── cordis.patch.yml             ├── config.json
├── README.md  LICENSE           ├── skills-rendered/
└── package.json                 └── launch-doubao-debug.lnk

test/、docs/、scripts/install-skills.ps1 只存在于仓库,不随包发布(自检脚本请在本仓库里跑)。


CLI

baode doctor      环境自检(跨工具)
baode bootstrap   首跑准备:探测豆包 + 生成调试快捷方式 + 渲染技能
baode wake        把豆包推进到 CDP 可用(唤醒/诊断;重启需 --restart --yes)
baode probe       CDP 与输入框可用性
baode route       描述 + 输入 → 任务卡(过 G1–G4 四道闸)
baode submit      提交任务卡
baode distill     从成功委派蒸馏候选技能
baode attach      把证据并入已有食谱
baode review      重放审核报告
baode regress     历史证据回归重放
baode audit       产物内容抽检
baode validate    校验任务卡规范 C1–C8
baode recipes     列食谱 + 台账统计
baode repair      台账字段修复
baode install     安装技能 → 豆包 .user_skills

自检(在仓库里跑,不随 npm 包发布):

node test/verify-static.mjs        # S1–S7:出口结构、patch 合法性、id 冲突、!!js 红线
node test/verify-settings.mjs      # P4:设置页命名空间 + 浏览器卡片(含离线跑 bundle)
node test/verify-wake.mjs          # v1.1:四种现场 + 未同意绝不杀 + 超时≠失败
node test/verify-pack.mjs          # P5:npm pack 干跑 → 解到空目录 → bootstrap → audit 脚本冒烟

License

MIT(见 LICENSE)