dsh-zhihu-search

dsh-zhihu-search:给 DSH 装上知乎搜索

赋予 DeepSeek Harness 检索知乎社区的能力

Empowering DeepSeek Harness with Zhihu Insights

知乎开放平台官方 API DeepSeek Harness Plugin

CI npm MIT 许可证 SLSA Build L2

简体中文 · English

--- > [!NOTE] > **基于知乎开放平台官方 API 构建**,非爬虫抓取。所有检索结果均附带可引用的原始链接,知乎站内结果另附点赞数,让模型的每一次回答都有据可查。搜索结果为文字摘要,不含正文图片。 搜索不幻觉,引用有出处。给 DSH 装上知乎:站内检索、全网检索与直答三个工具,返回可引用的来源列表,而不是一段无法核对的摘要。

插件配置页中的「知乎搜索」卡片
设置 → 插件 → 插件配置 中与其他插件并排,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` - Node `>= 20` ### 从源码安装 ```bash 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 安装 ```bash dsh plugin --profile web add dsh-zhihu-search ``` ### 发现与安装 - **npm**:[`dsh-zhihu-search`](https://www.npmjs.com/package/dsh-zhihu-search) - **GitHub**:[`zlZayn/dsh-zhihu-search`](https://github.com/zlZayn/dsh-zhihu-search) 仓库带有 GitHub topic [`dsh-plugin`](https://github.com/topics/dsh-plugin),插件市场据此自动发现插件。 ## 配置 ### 在设置界面填写 打开 **设置 → 插件 → 插件配置 → 知乎搜索**,填入 Access Secret 并保存。保存后立即生效,无需重启 DSH。 Access Secret 在[知乎开放平台个人中心](https://developer.zhihu.com/profile)获取;设置卡片里有同一个链接。 ### 用环境变量代替 不想把密钥存在设置里时,改用环境变量 `ZHIHU_ACCESS_SECRET`;或在卡片的「凭据引用名」里填别的名字,指向另一个环境变量或凭据记录。 ### 进阶:超时与限额 插件配置项以 [src/index.ts](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](LICENSE)。 ## 贡献 设计取向:工具参数与返回文本首先是**给模型用的 API**,其次才是给人读的文档 —— 写法规范见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 的「工具描述约定」与「模型可见文本的诚实性」。 维护者文档地图见 [AGENTS.md](AGENTS.md);不变的设计约束见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md);发布流程见 [docs/PUBLISHING.md](docs/PUBLISHING.md)。