Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
DeepSeek Harness용 강화·지속 웹 검색 플러그인(다중 엔진·SQLite·LRU 캐시·플랫폼 백엔드·Playwright 렌더링)
Enhanced, persistent web search plugin for DeepSeek Harness (multi-engine search, SQLite+LRU cache, platform backends, Playwright rendering)
플러그인TypeScript · JavaScriptGitHub @anweat직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
增强型、可持久化的扩展网页搜索插件 for DeepSeek Harness(DSH)。 一个 DSH bundle 插件,把多引擎网页搜索、平台搜索、持久化缓存、受控按站增强和 Playwright 渲染打包成模型可调用的能力。常驻上下文只有 web_index / web_call 两个工具(原 11 个 web_* 工具已并入 20 个动作,见工具面)。路由控制面借鉴 Agent-Reach 的后端探测、顺序选择和失败冷却思路,核心逻辑为本项目原生 TypeScript 实现。 先确认宿主是 dsh-v0.2.0-rc.2,浏览器插件(如果装了)是 @anweat/[email protected];两者都需要作为 profile 的直接依赖。 不再支持旧线:宿主仍是 DSH 0.1.x,或浏览器插件仍是 @anweat/dsh-browser 0.1.x,请不要升级,停留在 [email protected]。只升级本插件、保留旧浏览器插件时,本插件照常工作,但所有浏览器相关能力都会返回上面的 CAPABILITY_UNAVAILABLE,sources.status 显示 browser: legacy (unsupported)。README 전문 보기 ↗
English | 中文
DeepSeek Harness(DSH)的增强型网页搜索插件:多引擎搜索、平台搜索、持久化缓存和证据包,常驻上下文只有两个工具。
search.run 一句任务目标,返回的不是结果列表,而是按需求评分后的摘录和未满足的缺口,占用的上下文少得多。opencli(用你日常 Chrome 的登录态),插件没有登录窗口,也不读 Cookie。web_index(目录)→ web_call(执行),27 个动作按需披露,约 800 字符常驻。| 项 | 范围 |
|---|---|
| dsh-web-search-pro | 0.2.3 |
| DSH 宿主(peer) | >=0.2.0-rc.2 <0.2.1-0 || >=0.2.1-rc.2 <0.2.2-0;实测 0.2.0-rc.2、0.2.1-rc.3、0.2.1-rc.4 |
| cordis(peer) | ~4.0.4 |
可选配套 @anweat/dsh-browser | ^0.2.0(0.2.1 线宿主上必须是 0.2.2 起) |
| DSH 0.1.x 宿主或 dsh-browser 0.1.x | 固定使用 [email protected],不再更新 |
历史版本的兼容表见 CHANGELOG,peer 范围的写法见 兼容范围。
DSH CLI(装完重启 profile):
# 只要搜索:
dsh plugin --profile web add [email protected]
# 还要读取渲染页 / 浏览器平台:连同可选的浏览器插件一起装(两者都必须是 profile 的直接依赖)
dsh plugin --profile web add @anweat/[email protected] [email protected]
dsh --profile web
DSH Desktop:Desktop 的 profile 由应用管理,CLI 不能操作它。打开插件页 → Add plugin,填包名(可带版本,如 [email protected],写法同上面 add 后面那段)→ Install;对话框里还能选 Registry。非官方插件升级 = 先卸载再重装;国内镜像(如 npmmirror)可能晚同步,装不到新版本时把 Registry 换成 https://registry.npmjs.org。
本地目录 / tarball(开发用):dsh plugin --profile web add ../dsh-browser ./dsh-web-search-pro。
更多(新用户第一次安装的注意事项、排障)见 安装与首次使用;升级见 CHANGELOG。
设置 → 插件 → 插件配置 → Web Search Pro。顶部的状态摘要显示实际尝试顺序的默认引擎链、已配置 Key 的来源数、DeepSeek 是否就绪、待重启项等。web_call 的 sources.status,每个来源 / 平台的就绪状态和被跳过的原因都在里面。DEEPSEEK_API_KEY 时,默认搜索会先用按请求计费的 DeepSeek 搜索;不想用就在 sources.disabled 里写 deepseek。Exa、Jina、博查、GitHub 等 Key 在设置卡片的“来源”分组里写入(存进 DSH Credentials,不读回明文)。evidence.jevMode: off,证据评分用本地规则,不调用任何模型,也不需要任何模型 Key);只有配置了博查 Key 才会使用博查。@anweat/dsh-browser(read.snapshot、read.fetch mode=playwright、搜索页类平台;有 Chrome / Edge 就直接用,不用下载 Chromium);npm i -g @jackwener/opencli 加它的 Browser Bridge 扩展(小红书 / 知乎 / Reddit / X,用你日常 Chrome 的登录态,见 平台登录态);bili、yt-dlp、gh 等 CLI 由 sources.deps 检测。模型通过 web_call({action, args}) 调用。证据包(传 task 或 profile):
{"action":"search.run","args":{"query":"node:sqlite busy timeout","task":"how to set a busy timeout in node:sqlite","profile":"docs_code"}}
搜单个平台(登录类平台走 opencli-first 的后端链):
{"action":"search.run","args":{"query":"机械键盘 轴体 推荐","task":"了解知乎上对机械键盘轴体的真实经验","profile":"experience","platform":"zhihu"}}
读页用 read.fetch(长页传 offset 续读),不知道用哪个来源就问 search.recommend。更多用法见 搜索用法与证据包。
常驻工具只有两个:web_index({group?, action?, query?}) 渐进披露目录,web_call({action, args}) 执行动作并返回统一信封。使用指引在随包的 skill dsh-web-search-pro 里。
| 组 | 动作 | 用途 |
|---|---|---|
search | run recommend | 多引擎 / 平台搜索与证据包;按任务推荐至多 3 个来源 |
read | fetch contents snapshot | 可读化抓取与续读;Exa 批量正文;浏览器快照 |
history | list replay expand export delete | 查询历史的列出、回放、展开证据块、导出、删除 |
sources | status deps install | 后端探测与诊断;外部依赖检测与安装 |
rules | list upsert remove import export | 按站点提取规则 |
cache | clear stats | 缓存清理与统计 |
config | inspect set_order set_confidence upsert_cli remove_cli reset export | agent 覆盖层:运行时调整搜索顺序、置信度、自定义 CLI |
完整参数、审批规则、输出预算与旧工具映射见 工具与动作。
写在 $DSH_HOME/settings.yaml 的 web-search-pro: 段,或用设置卡片;几乎都是热更新。
| 键 | 默认值 | 说明 |
|---|---|---|
engines | [ddg, bing, exa, seam, jina] | 通用搜索的回退顺序 |
sources.priority / sources.disabled | 空 | 提前 / 完全不用的来源 id(如 disabled: [deepseek]) |
searchMaxResults | 8 | 普通搜索的默认结果数 |
evidence.jevMode | off | 博查 Jev 评分:off | shadow | control | hybrid(付费,默认不调用) |
evidence.sourcePolicy | default | anonymous-only = 自动规划绝不用需要 Key / 账号 / 登录的来源 |
deepseekFetch | false | true = read.fetch 可用 DeepSeek Fetch API(按请求计费) |
fetchDefaultChars | 20000 | read.fetch 默认返回字符数 |
toolSurface | indexed | flat = 每个动作一个工具(仅对照与调试);需重启 |
registerProvider | false | 让宿主内置 web_search / web_fetch 经过本插件;需重启 |
需要重启插件的只有 toolSurface、registerProvider、providerId、timeoutMs、memoryCacheEntries、dbPath、verbose、playwright.snapshotDir。全部键与默认值见 配置参考。
详细文档(中文)在 docs/:
MIT。路由控制面借鉴 Agent-Reach 的后端探测、顺序选择和失败冷却思路,核心逻辑为本项目原生 TypeScript 实现。