dsh-openbiliclaw

48Star4Fork1Issue0Watching

把 OpenBiliClaw 本地推荐 Agent 的消费侧搬进 DSH Web 界面,左栏按钮呼出抽屉面板,并向 Agent 注册 22 个 openbiliclaw_* 工具让推荐/反馈/画像闭环。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
BSD-3-Clause
分支
main
agent-bridgedeepseek-harnessdshdsh-pluginopenbiliclaw

安装

$ dsh plugin --profile web add github:whiteguo233/dsh-openbiliclaw

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 whiteguo233/dsh-openbiliclaw:先查看仓库 https://github.com/whiteguo233/dsh-openbiliclaw.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

把本地运行的 OpenBiliClaw 个性化推荐 Agent 集成进 DSH 的 Web GUI——左侧栏点开右侧抽屉即可看到推荐/收藏/对话/画像/设置,同时向 DSH Agent 注册 22 个工具,让 Agent 也能读取推荐、回应探测、保存内容,形成"推荐 → 反馈 → 画像 → 更准的推荐"的闭环。

核心能力

  • 在 DSH 左侧栏底部追加 OpenBiliClaw 按钮,点击从右侧滑出抽屉面板(推荐/内容库/对话/画像/设置/通知)
  • 向 DSH Agent 注册 22 个 openbiliclaw_* 工具,覆盖推荐拉取、追加、换一批、提交反馈、惊喜卡片、对话、画像、保存/移除/列表、运行时状态等
  • 自动加载 openbiliclaw-adapter skill(解析仓库内 SKILL.md frontmatter),让 Agent 在需要时可作为长期指令调用 bridge
  • 通过 HTTP 调用运行中的 OpenBiliClaw 后端 serve-api/api/agent-bridge 端点(基于 agent-bridge/v2 JSON 协议),避免每次 fork Python 进程
  • 面板体验覆盖深色模式跟随、跨平台封面代理(含失败回退为文本/媒体占位)、WebSocket 实时推送、消息抽屉与「同步到平台」进度

技术实现

  • 语言: TypeScript(Node 侧 ESM)+ React 18(浏览器侧面板)
  • 关键依赖: @deepseek-ai/cordis ^4.0.1(插件挂载)、@deepseek-ai/dsh-tools ^0.1.0-rc.6(tool 注册)、@deepseek-ai/dsh-client-runtime / dsh-client-ui-slots ^0.1.0-rc.6(slot/theme 注入)、原生 fetch(与后端 HTTP 通信)
  • 架构模式: 同时声明 dsh.bundle.patch(cordis 行插入 node 半)与 dsh.client.inject(浏览器半注入 runtime + ui-slots);Node 半通过 ctx.tools.register / ctx.skills.register 注册 22 个工具与 1 个 skill;Browser 半通过 PanelLayoutController 在帧 grid 中追加一列并重写 grid-template-columns(push 中心列而非 overlay),仅侧栏按钮走 sidebar.footer.action slot
  • 入口文件: src/index.ts(node 半)/ src/client/index.ts(browser half)/ cordis.patch.yml(cordis 注入声明)

适用场景

已在本地部署 OpenBiliClaw 并希望"不离开 DSH"就完成消费侧操作的用户:在 DSH 会话中边聊需求,边通过右侧抽屉查看跨平台推荐(小红书 / B 站 / 抖音 / YouTube / X / 知乎 / Reddit / Linux.do / V2EX / 微博),处理收藏/稍后看、回复兴趣/回避探测、查看画像,Agent 也可借助注册的 22 个工具把推荐上下文纳入回答,让"我看什么 → 你怎么想 → 我再推荐"全程闭环在 DSH 内。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness(DSH)0.1.0-rc.6+插件 peer ABI 与 dsh-*@deepseek-ai/cordis ^4.0.1 对齐;README 提示不要在同 profile 混用 0.0.1 时代的工具包
OpenBiliClaw 后端启用 Agent Bridge v2默认监听 127.0.0.1:8420;本插件只做消费侧,爬取/源管理仍由主项目承担
Node未声明package.json 未声明 engines 字段
平台跨平台仅声明 dsh.client.platform: "web",无 os/cpu 限制
原生模块全部依赖为 JS/TS 包,无 node-pty / node:sqlite 等原生依赖

安装方式

dsh plugin --profile web add github:whiteguo233/dsh-openbiliclaw

配置项

配置类型说明默认值
apiUrlstringOpenBiliClaw 后端 serve-api 的根地址;node 半的所有 bridge 工具走 <apiUrl>/api/agent-bridge。地址末尾不要带 /apihttp://127.0.0.1:8420
workdirstring(必填)OpenBiliClaw 主项目根目录;用于解析 config.toml / data/ 与读取 SKILL.md/Users/white/workspace/OpenBiliClaw
skillPathstringadapter skill 文件绝对路径;找不到时只打 warn 不报错,工具仍可工作但 DSH 中无 skill 元数据。<workdir>/skills/openbiliclaw-adapter/SKILL.md
timeoutMsnumber单次 bridge HTTP 调用超时(毫秒),应用到所有 22 个工具。300000(5 分钟)

面板内的"设置 → 通用 → 连接"可改后端地址(保存到 localStorage,立即生效);该地址用于浏览器侧的 /api/* 直接调用,与上表 apiUrl(Node 侧)是两套配置。

常见问题

Q: 这个插件和官方 DSH 的设置面板冲突吗?

A: 不冲突。插件只新增内容:在侧栏底部加按钮、在帧 grid 追加最右侧一列(推开中心列,不覆盖),不改动 DSH 自带的列布局。面板挂载失败时只 console.error,不影响 DSH 主流程。

Q: 22 个工具是 Agent 自动会用,还是要我在对话里点名?

A: DSH Agent 会按需调用。openbiliclaw_recommend / openbiliclaw_chat / openbiliclaw_get_profile 等可在需要时被 LLM 选为工具调用;要严格控范围也可在对话里显式点名。

Q: requestId 是必须的吗?

A: 仅对写操作类工具强制要求(openbiliclaw_submit_feedback / openbiliclaw_respond_delight)。重试同一动作必须复用同一个 requestId(最长 400 字符),不同动作之间不要复用——这是后端的幂等键,复用错了会丢反馈或写错条目。

Q: 怎么看到"惊喜推荐"(proactive delight)?

A: 两种方式:面板会在 WebSocket 推送里收到 delight.candidate 事件并直接渲染在抽屉顶部;Agent 侧可调用 openbiliclaw_get_delight 拉取当前待处理卡,或调用 openbiliclaw_respond_delightview/like/dislike/dismiss/chat 应答(dismiss 会将该条永久从推荐中剔除)。

Q: 兴趣/回避探测会主动弹给我吗?

A: 后端会通过 WebSocket 推送 interest.probe / avoidance.probe 事件,面板用乐观状态机立即反馈;Agent 侧也能调用 openbiliclaw_next_probe / openbiliclaw_next_avoidance_probe 取下一个待回答问题,并用 openbiliclaw_respond_interest_probe / openbiliclaw_respond_avoidance_probe 答复(confirm/reject/defer/chat,reject 兴趣会有 30 天冷却)。

Q: 收藏的内容会同步到 B 站账号吗?

A: openbiliclaw_save_local / openbiliclaw_remove_saved / openbiliclaw_list_saved 全部只写本地 SQLite,不会同步到外部账号。面板里的"同步到平台"按钮走主项目的同步接口,需要登录 B 站账号才会成功;非 B 站平台条目标注为"仅本地保存"。

上手难度

入门 — 把 workdir 填对、确保 OpenBiliClaw 后端开启 Agent Bridge v2,其他配置都有合理默认值,开箱即可使用面板与 Agent 工具。

已知问题与限制

  • README 列出的配置项 pythonBin / stdoutMaxBytes 在源码中不存在:当前实现走 HTTP(src/bridge.ts:74-99),不调用 Python 子进程,也无输出字节上限;按 README 写配置不会生效也不会报错。
  • 插件消费侧有意包含爬取、平台源管理、账号同步、sync-saved 等写副作用能力(src/index.ts:7-10 注释明示),这些仍需在主项目 / 浏览器扩展 / 手机版内操作。
  • skillPath 指向的文件读不到时,DSH skill 注册会静默跳过(仅打 warn),工具可工作但 LLM 看不到 skill 元数据;workdir 配错会触发该分支。
  • README 与 package.json 均未声明 Node 版本要求;若 DSH 主机 Node 版本过低,可能影响其他 dsh-* 同级依赖;建议遵循 DSH 文档推荐的 Node 版本。
  • 浏览器面板采用 DOM 层扩展帧 grid(PanelLayoutController 改写 grid-template-columns),不依赖官方 aside slot;如果未来 DSH 帧结构变化,可能需调整 panel.module.css / layout.ts(源码注释 src/client/index.ts:4-7 已注明此风险)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/whiteguo233/dsh-openbiliclaw)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录