dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
OpenBiliClaw 是本地运行、跨平台、可调教的个性化内容推荐 Agent;本仓库是它的 DeepSeek Harness 客户端插件——DSH 左侧栏一个 OpenBiliClaw 按钮,点开右侧滑出抽屉(推荐/内容库/对话/画像/设置),并注册 22 个 Agent Bridge 工具,让 Agent 读推荐、答探测、闭环学习。
English | 中文
OpenBiliClaw 是一个本地运行、跨平台、可调教的个性化内容推荐 Agent:从你在 B 站 / 小红书 / 抖音 / YouTube / X / 知乎 / Reddit / Linux.do / Bangumi / V2EX / 微博的使用、反馈与对话里持续深化你的心理画像,再主动去这些平台为你找内容。
本仓库是它的 DeepSeek Harness(DSH)客户端插件,把「消费侧」搬进 DSH 的 Web GUI:
openbiliclaw_* 工具(Agent Bridge v2 CLI)和 openbiliclaw-adapter skill,让 DSH 里的 Agent 能读取推荐、回答探测、保存内容、和用户对话,形成「推荐 → 反馈 → 画像 → 更准的推荐」的闭环。典型场景:左边和 Agent 聊需求,点左下角的 OpenBiliClaw 按钮,右侧抽屉滑出来顺手刷两条推荐,点个「收藏」,过一会儿弹出兴趣探测,和它聊两句,画像就更懂你了——全程不离开 DSH。
边界说明:本插件只做消费侧。爬取 / 平台源管理 / 账号同步等能力仍属于主项目(后端 + 浏览器插件 / 手机版),有意不带入 DSH。
| 推荐 · 亮色 | 推荐 · 深色(跟随 DSH 主题) |
|---|---|
![]() |
![]() |
| 内容库 | 对话 | 画像 |
|---|---|---|
![]() |
![]() |
![]() |
| 设置 · 模型 | 设置 · 调度 | 设置 · 通用 |
|---|---|---|
![]() |
![]() |
![]() |
/api/image-proxy 加载,归一化小红书、YouTube 等 CDN URL;代理失败时自动回退为文本或媒体占位,不留空白卡片synced / already_synced)的条目自动从侧栏隐藏(数据保留);空态区分「已全部同步」与「还没有收藏」┌───────────────────────────── DSH Web GUI ─────────────────────────────┐
│ 左边栏 │ 会话区 │ 详情栏 │ │
│ (DSH 自带, │ (DSH 自带) │ (DSH 自带) │ ← 右侧滑出 OpenBiliClaw │
│ 底部含 │ │ │ 抽屉(推荐/内容库/ │
│ OpenBiliClaw │ │ │ 对话/画像/设置) │
│ 按钮) │ │ │ │
└─────────────────────────────┬─────────────────────────────────────────┘
│ HTTP + WebSocket (默认 http://127.0.0.1:8420)
┌─────────────────────────────▼─────────────────────────────────────────┐
│ OpenBiliClaw 后端(主项目,同一份 config.toml / SQLite / 画像)│
└────────────────────────────────────────────────────────────────────────┘
▲
DSH Agent(本插件注册的工具 + skill)── Agent Bridge v2 CLI ──┘
python -m openbiliclaw.integrations.openclaw.cli <command>),插件默认通过 <workdir>/.venv/bin/python 调用<workdir>/skills/openbiliclaw-adapter/SKILL.md(本仓库 skills/openbiliclaw-adapter/SKILL.md 附了同一份副本,方便对照)| 部分 | 说明 |
|---|---|
src/index.ts + src/tools.ts |
node 半:22 个 openbiliclaw_* 工具(bridge CLI,经 ctx.shell 执行器——新版 DSH 中 bash 更名为 shell)+ 注册 adapter skill |
src/skill.ts |
解析 SKILL.md frontmatter 并注册为 DSH skill |
src/bridge.ts |
Agent Bridge v2 CLI 调用封装(超时 / 输出上限) |
src/client/* |
browser 半:左侧栏按钮(sidebar.footer.action)+ 右侧抽屉(shell.overlay)面板(React),含推荐/内容库/对话/画像/设置/消息抽屉、WebSocket 实时流、深色模式 |
lib/ |
构建产物(lib/index.js node 半 + lib/client.js 浏览器半),可直接安装 |
插件要求 DSH 0.1.0-rc.6 或更高版本;插件的 peer ABI 已与该版本的 dsh-* 包及 @deepseek-ai/cordis ^4.0.1 对齐。请不要在同一个 profile 中混用 0.0.1 时代的 DSH 工具包。
本仓库声明了 dsh.bundle,因此可以作为完整插件包交给 dsh plugin add 或插件市场安装。bundle 会自动提供 openbiliclaw 配置行;安装后仍需按下面的配置说明,把 workdir 指向本地 OpenBiliClaw 主项目目录。
面板渲染在两个加法槽位上,无需改 DSH 源码:
sidebar.footer.action(侧边栏底部、设置旁的附加动作)shell.overlay(帧级浮层,滑出在详情/文件/变更面板之上,不占用任何列)两个槽位都是官方 DSH 自带的 list 槽(当前官方 DSH 已移除旧的 aside 列),此步直接跳过。
把本仓库放进 web profile 的依赖目录并声明插件行:
cp -r <本仓库> ~/.dsh/profiles/<profile>/node_modules/@openbiliclaw/dsh-plugin
在 ~/.dsh/profiles/<profile>/cordis.patch.yml 增加:
# DSH 0.1.0-rc.6+: 新增配置行必须放在 insert 下
- insert:
- id: openbiliclaw
name: '@openbiliclaw/dsh-plugin'
config:
workdir: '/你的/OpenBiliClaw/项目目录' # 后端项目根目录(含 .venv 与 skills/)
cordis.patch.yml 的顶层是 patch 列表;不带 insert 的 id 条目会被当作已有配置行覆盖,找不到 openbiliclaw 时会被跳过。
dsh web # 重启 DSH Web 进程,刷新页面
面板内的「设置 → 通用 → 连接」可改后端地址(默认 http://127.0.0.1:8420,面板本地保存、立即生效;地址本身不要再附加 /api)。
| 键 | 默认 | 说明 |
|---|---|---|
workdir |
(必填) | OpenBiliClaw 后端项目根目录;bridge CLI 与 SKILL.md 都从这里解析 |
pythonBin |
<workdir>/.venv/bin/python |
用于调用 bridge CLI 的 Python |
skillPath |
<workdir>/skills/openbiliclaw-adapter/SKILL.md |
adapter skill 文件 |
timeoutMs |
300000 |
单次 CLI 调用超时 |
stdoutMaxBytes |
2000000 |
CLI 输出上限 |
构建需要 DSH 源码 checkout(类型与打包 preset 都从那里解析;本仓库不是 pnpm workspace 成员):
tsc -p tsconfig.json # 先产出 lib/types
tsdown --env.DSH_BUILD_FACE client # node 半 + 浏览器半(window.__ModuleLoader__ 闭包)
tsdown.config.ts 引用了 DSH checkout 的 packages/client/tsdown.client.ts(clientBundle preset),首次构建前把该路径改成你的 checkout。
openbiliclaw_recommend / openbiliclaw_append_recommendations / openbiliclaw_reshuffle / openbiliclaw_get_delight / openbiliclaw_respond_delight / openbiliclaw_submit_feedback / openbiliclaw_get_activity_feed / openbiliclaw_chat / openbiliclaw_get_chat_history / openbiliclaw_next_probe / openbiliclaw_respond_interest_probe / openbiliclaw_next_avoidance_probe / openbiliclaw_respond_avoidance_probe / openbiliclaw_get_profile / openbiliclaw_get_profile_edit_state / openbiliclaw_edit_profile / openbiliclaw_list_saved / openbiliclaw_save_local / openbiliclaw_remove_saved / openbiliclaw_get_runtime_status / openbiliclaw_get_platform_availability / openbiliclaw_get_capabilities
A DeepSeek Harness (DSH) client plugin for OpenBiliClaw, the local-first cross-platform content-discovery agent. It adds a left-sidebar OpenBiliClaw button that opens a right-side drawer over the DSH web GUI (the sidebar.footer.action + shell.overlay seats) with the consumer side of OpenBiliClaw — recommendations with a hero delight banner, infinite scroll with prefetch, saved/history library, Socratic dialogue with interest/avoidance probes, the user profile card, and a settings surface aligned with the browser extension — and registers 22 openbiliclaw_* tools plus the openbiliclaw-adapter skill so DSH agents can drive the same backend in a closed loop. Cover images use the same backend image proxy as the browser and PC Web clients, with CDN URL normalization and a local fallback for failed loads. Crawling and source management intentionally stay in the main project. Requires DSH 0.1.0-rc.6 or newer (with the matching dsh-* ABI and @deepseek-ai/cordis ^4.0.1) plus a running OpenBiliClaw backend (Agent Bridge v2, default http://127.0.0.1:8420). When adding the plugin to cordis.patch.yml, wrap the row in a top-level insert entry; a bare id row is treated as an override and skipped when it does not already exist. See the Chinese section above for install, build and configuration details.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。