dsh-zhihu-search
zlzayn/dsh-zhihu-search
DSH用のZhihuツール3つ — サイト内検索、ドメインや日付フィルタ付きのZhihuグローバルウェブインデックス、知乎直答(Zhida)回答 — ネイティブの設定カードと出典付きの結果に対応。
インストール
dsh plugin --profile web add github:zlzayn/dsh-zhihu-searchREADME
dsh-zhihu-search
[!NOTE] 基于知乎开放平台官方 API 构建,非爬虫抓取。所有检索结果均附带可引用的原始链接,知乎站内结果另附点赞数,让模型的每一次回答都有据可查。搜索结果为文字摘要,不含正文图片。
搜索不幻觉,引用有出处。给 DSH 装上知乎:站内检索、全网检索与直答三个工具,返回可引用的来源列表,而不是一段无法核对的摘要。
在侧边栏 插件(Plugins) →「已安装(Installed)」组的本插件详情页里,Access Secret 就地填写、立即生效。
工具一览
装上后模型多出三个工具:
| 工具 | 一句话说明 | 适用场景 |
|---|---|---|
zhihu_search | 知乎站内问答与文章搜索,支持按点赞/评论/时间排序 | 中文经验、产品评测、行业讨论、技术实践 |
zhihu_global_search | 知乎全网索引搜索,可按域名和时间过滤;结果会混入知乎站内内容 | 查找特定网站上的公开资料 |
zhihu_zhida | 知乎直答,成体系的综合性回答 | 需要「先检索再总结」的复杂中文问题 |
下面三个小节是每个工具的完整参数与能力边界。模型只看到下表中的语义化参数——知乎原生的字符串查询语法由插件内部编译,模型接触不到,也就不可能写错。
zhihu_search —— 站内检索
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
query | string | 必填 | 搜索关键词,中文效果最好。 |
count | integer | 5 | 返回条数,1–10。 |
sortField | enum | default | default 沿用相关性排序;voteUpCount 点赞数 · commentCount 评论数 · editTime 时间(发布或最后编辑)。 |
order | enum | desc | desc 降序 · asc 升序。仅在指定了 sortField 时生效。 |
minValue | number | — | 排序字段的下限(含),必须配合 sortField,取非负整数。只筛本次检索到的候选:达标项少时返回条数会少于 count,不代表知乎没有高赞内容。 |
publishedAfter | string | — | 只要该日期之后发布的内容,格式 YYYY-MM-DD。 |
publishedBefore | string | — | 只要该日期之前发布的内容,格式 YYYY-MM-DD。 |
边界:不支持按站点域名过滤——站内结果本来就全来自知乎,要按站点找资料请用 zhihu_global_search。minValue 与非默认 order 必须配合 sortField,否则会被拒绝并提示改法。没有翻页:要更多结果请换关键词或换排序。下限是候选内筛选:筛少时结果里会说明,空结果不代表知乎没有高赞内容。
zhihu_global_search —— 全网索引检索
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
query | string | 必填 | 搜索关键词。 |
count | integer | 8 | 返回条数,1–20,比站内宽。 |
site | string | — | 只搜该域名,例如 github.com。传完整 URL 会被剥成主机名并去掉开头的 www.。 |
publishedAfter | string | — | 只要该日期之后发布的内容,格式 YYYY-MM-DD。 |
publishedBefore | string | — | 只要该日期之前发布的内容,格式 YYYY-MM-DD。 |
searchDb | enum | all | all 全部 · realtime 偏最新 · static 偏长期收录。 |
边界:域名是精确匹配,子站要单独写(qq.com 取不到 news.qq.com 的页面),且不接受知乎域名。没有排序参数(该端点忽略排序),也没有翻页参数。结果里会混入知乎站内内容;要专搜知乎的问答和文章,用 zhihu_search。
zhihu_zhida —— 直答
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
question | string | 必填 | 要提问的问题,中文描述越具体越好。 |
mode | enum | thinking | fast 快速回答 · thinking 深度思考 · agent 智能体多步检索。 |
includeReasoning | boolean | false | 是否把推理过程一并返回。默认关闭以节省上下文,核对答案可靠性时可打开。 |
边界:它不是搜索——返回的是一段生成回答,不是来源列表。答案由知乎生成,可能有误,重要结论请自行核对。思维链默认不返回。
能力
- 三个工具职责不重叠:站内捞经验、全网捞资料、直答做综合,模型按问题类型自行选择。
- 搜索返回结构化来源条目(标题 / 链接 / 摘要 / 作者 / 点赞数 / 评论数 / 时间),每条都带 URL,可直接引用核对。
- 结果文本自带边界说明:返回条数触达单次上限、来源里混有外站页面、筛选条件筛掉多数候选时,都会在正文里写明 —— 不把工具的边界说成结果的边界。
- 结果同时渲染为来源卡片与纯 Markdown,任何界面都能读。
安装
前置
- DSH
0.1.5-rc.2或更高,且低于0.2.0—— 即 package.json 的peerDependencies声明的范围;engines.dsh另记我们实际测试过的宿主版本。 - Node
>= 20
装宿主时要显式指定版本线:本家族的 latest 标签不可靠(多数 @deepseek-ai/dsh-* 包上它指向很早的版本),按默认方式装可能落在声明范围之外 —— 现查 npm view @deepseek-ai/dsh dist-tags。
npm install -g @deepseek-ai/dsh@next # 本插件承诺支持的线
兼容性不是推断出来的:每周由 compat.yml 对 next 与 alpha 两条线换包实跑一遍现有测试。当前结论与红了怎么办见 docs/PUBLISHING.md 的「兼容性」。
从源码安装
git clone https://github.com/zlZayn/dsh-zhihu-search.git
cd dsh-zhihu-search
npm install && npm run build
dsh plugin --profile web add "$PWD"
dsh plugin 会把本包装进 profile 并挂进 dsh.profile.bundles。重启 dsh --profile web 后生效。
从 npm 安装
dsh plugin --profile web add dsh-zhihu-search
发现与安装
- npm:
dsh-zhihu-search - GitHub:
zlZayn/dsh-zhihu-search
仓库带有 GitHub topic dsh-plugin,插件市场据此自动发现插件。
版本兼容
配置界面注册在宿主的 plugins.bundle.config 槽,该槽由 package.json 的 engines.dsh 所声明的下限版本引入 —— 那份声明是唯一事实来源,本文件不抄版本号。
- 槽在的宿主:插件页的本插件详情页里出现配置区,密钥与开关都在那里改。
- 槽不在的更早宿主:三个工具照常工作,插件页里不会出现配置区 —— 静默,不报错。这就是分水岭;浏览器控制台会留一条 WARN 级英文提示说明这件事。
- 需要就地配置:把宿主升到
engines.dsh声明的版本或更高 —— 那个版本目前只在alpha线上,装法npm install -g @deepseek-ai/dsh@alpha;哪条线指向哪个版本现查npm view @deepseek-ai/dsh dist-tags。
宿主版本线怎么装见安装 → 前置;每周的实测结论与红了怎么办见 docs/PUBLISHING.md 的「兼容性」。
配置
配置界面挂在宿主的 plugins.bundle.config 槽上;该槽在不在、不在时会发生什么,见版本兼容。
在插件页填写
打开侧边栏 插件(Plugins) →「已安装(Installed)」组的 dsh-zhihu-search 详情页,填入 Access Secret 并保存。保存后立即生效,无需重启 DSH。
密钥写进 DSH 的凭据存储(~/.dsh/.credentials.yaml),不写进设置文件 —— settings.yaml 里只有引用名,可以安全地截图或分享。
Access Secret 在知乎开放平台个人中心获取;配置卡片里有同一个链接。
每日额度
额度按自然日结算,各接口的配额读数都在知乎开放平台个人中心 —— 与取 Access Secret 是同一个地方。下图是那个面板:
改用别的凭据来源
卡片的「凭据引用名」默认是 ZHIHU_ACCESS_SECRET。填别的名字即可指向另一处。
密钥按 DSH 的分层解析,优先级从高到低:
- 进程环境变量(
export ZHIHU_ACCESS_SECRET=…) - 凭据存储(
~/.dsh/.credentials.yaml) - 项目目录下的
.env ~/.dsh/.env
由只读来源(环境变量)提供时,卡片会禁用输入框并说明原因 —— 那里的值覆盖不了。
进阶:超时与限额
插件配置项以 src/index.ts 的 Config 为唯一来源(改 cordis.patch.yml 里的插件配置即可)。两个超时项值得知道:
timeoutMs(默认 15 秒):搜索类请求的单次预算。streamTimeoutMs(默认 55 秒):直答整轮读取的预算,直答工具的超时自动跟着它走。调大请求超时不会缩小它(取两者较大者),所以调大它才有效。
只用知乎检索
卡片里的「隐藏原生网页搜索(web_search / web_fetch)」开关默认关闭 —— 插件不擅自削宿主能力。打开并保存后,模型看不到 DSH 原生的 web_search 与 web_fetch,只用知乎的三个工具。
- 从下一次模型请求起生效,无需重启、无需新窗口。
- 该 agent 派生的子 agent 一并遵守同一套规则。
- 只控制模型可见性:tool-web 插件本身照常加载,关掉开关即恢复。
安全与边界
- Access Secret 只在配置卡片、凭据域与环境变量之间流转:不写日志、不以明文进入缓存键、不进仓库。
- 返回内容按外部不可信数据处理:摘要剥离 HTML 标签,链接剥离跟踪参数。
- 只访问
developer.zhihu.com,不代理、不转发其他流量。
许可
MIT。
贡献
外部贡献入口(报 bug 带什么、提功能前先翻什么、提 PR 前做什么)→ CONTRIBUTING.md。
设计取向:工具参数与返回文本首先是给模型用的 API,其次才是给人读的文档 —— 写法规范见 docs/ARCHITECTURE.md 的「工具描述约定」与「模型可见文本的诚实性」。
维护者文档地图见 AGENTS.md;不变的设计约束见 docs/ARCHITECTURE.md;发布流程见 docs/PUBLISHING.md。