Search · Fetch · Cross-check

搜索给广度,垂直库给精度

一个命令行入口接两层数据来源:DeepSeek 搜索与抓取负责全网召回和整页转 Markdown,11 个免 key 垂直源负责把论文、漏洞、财报、药品的原始字段直接取回来。附一个在线功能:输入一个名字,出一份可打印成 PDF 的简报。

13/13
验收全部通过
0.37s
一次搜索的耗时
18s
生成一份简报
11
免 key 垂直源
01 / 两层结构

为什么不只用搜索

搜索能告诉你「哪里有」,但说不准「具体是多少」。写进报告的数字要能核对,所以这两层都留着。

DeepSeek需 key

搜索 + 抓取

  • POST /v1/tools/searchquery · count 1–50
  • POST /v1/tools/fetch整页转 Markdown
  • 返回字段authority · rerank_score
  • 算符site: lang: after: "…"

每条结果自带站点、日期、权威度(0–4)与相关度(0–3),不用自己猜来源可不可信。抓取直接给 Markdown,标题层级和代码块都保留。

公开接口免 key

11 个垂直源

  • 论文arXiv · OpenAlex · Crossref
  • 漏洞OSV + NVD 双源并列
  • 医学Europe PMC
  • 财报 / 药品SEC EDGAR · openFDA
  • 代码 / 问答GitHub · Stack Overflow

这些是一手库,返回的就是该领域真正有权威性的字段:被引量、CVSS、原始报送文件、说明书适应症。不消耗任何额度。

02 / 在线简报

输入一个名字,出一份 A4 简报

这是这套东西里唯一带界面的部分。前端只发一个名字,服务端并发检索三个角度、去重、按权威度排序,再把材料交给模型写成结构化简报,回到浏览器排版。

key 不出服务器。搜索和归纳都在服务端完成,浏览器拿到的只有最终报告。限流:单 IP 每小时 3 份,全站每天 60 份 —— 公开页面上的接口,不加限制会被人当成免费额度刷。
生成的简报
真实生成的一份。输入「宇树科技」,服务端检索到 24 条结果,写成 10 条事实、3 个章节、6 条时间线、3 条风险,末尾列 19 个来源。每个事实后面都有角标,点开原文可以核对。点「下载 PDF」直接走浏览器打印,A4 排版,实测 4 页。

去试一份 → 看全部存档 →

每份生成完都会自动存档,页面上给一条永久链接。存档页公开、不需要登录:别人拿到链接能看,从 /report/archive/ 也能翻到全部。同一个名字只留最新一份,不堆垃圾。

03 / 效果

图里的每个数字都是跑出来的

先用 run_tests.py 打一遍真实请求、把 JSON 存下来,再由 make_shots.py 用这批数据渲染成画面。图里的条数、耗时、标题、来源域名,一个字没改。

一次真实搜索的返回
搜索结果自带可信度。站点、日期、权威度(4 = 高权威)、相关度(2.4 以上属高质量)一次给全。这条查询 0.37 秒返回 5 条。
13 项验收
13 项验收,全部通过。搜索、抓取、11 个垂直源各打一次真实请求,逐个校验返回字段是否齐全。总耗时 64.8 秒,慢的是生物医学源(34 秒)。
三个领域
三套完全不同的字段。左边论文带被引量与开放获取链接,中间漏洞带 CVSS 与影响包,右边美股带原始报送文件。调用方式是同一个。
命令与真实耗时
每条命令后面的条数和耗时都来自同一次运行。配好 key 之后 web 与 fetch 就能用;不配也能用下面这些垂直源。
04 / 命令

一个脚本,全部动作

# 配一次 key,写进本地 .env(不进代码、不进包)
echo 'DEEPSEEK_API_KEY=你的key' > ~/.workbuddy/skills/deep-search/.env

DS=~/.workbuddy/skills/deep-search/scripts/ds.py

python $DS doctor                       # 自检:13 项逐个探活
python $DS web "宁德时代 2026 三季报" -n 5   # 搜索
python $DS web "query" --content        # 搜索并带正文
python $DS fetch <url>                # 整页转 Markdown
python $DS ask "GLM-5.3 上下文窗口多大"   # 改写 → 检索 → 归纳

# 免 key 的垂直源
python $DS papers  "retrieval augmented generation"
python $DS vuln    CVE-2021-44228
python $DS filings AAPL
python $DS bio     "GLP-1 obesity"

检索算符写在 query 里,直接透传

算符例子作用
site:DeepSeek site:github.com限定站点,多个用 OR 连
-site:DeepSeek -site:example.com排除站点
"…"DeepSeek "exact phrase"精确短语
-DeepSeek -advertisement排除含该词的页
lang:DeepSeek lang:zh,en限定语言
after: / before:DeepSeek after:2025-01-01限定发布时间
05 / 成本

钱花在哪,怎么省

搜索和抓取都按成功调用计费,失败、空结果、超时不计。垂直源全部免费。

动作消耗单次成本
web / fetch1 次成功调用(每千次 5 元)约 0.005 元
生成一份简报3 次搜索 + 1 次模型归纳约 0.03 元
论文 / 漏洞 / 财报等不产生费用0
省额度的办法:能判断领域就别用 web,直接走垂直子命令。查 CVE 用 vuln、查论文用 papers,返回的字段更准,还不要钱。
06 / 踩过的坑

三个真实问题,都写进代码了

一、模型只吐推理过程,正文是空的

这两个可用模型(deepseek-flash、deepseek-v4-pro)都是推理模型,会先花 token 写 reasoning_content。第一次生成简报时 max_tokens 设了 2600,结果预算全被推理吃掉,content 回来是空字符串,解析 JSON 自然失败。

现在预算提到 8000,并且在代码里区分「没内容」和「有推理没正文」两种情况 —— 后者会明确告诉你预算不够,而不是假装成功。

二、连续角标会黏成一串数字

把 [18][34] 转成上标后,视觉上变成「1834」,还有孤零零一个「14」掉到下一行。换成带浅底的小标签,并在句读前保持同行,问题才消掉。

三、表格加了「不跨页」反而更难看

给事实表格设 break-inside:avoid 之后,整块跳到第二页,第一页留下半页空白。改成打印时三列紧凑排布、允许自然分页,A4 才是 4 页而不是 5 页带窟窿。

07 / 边界

做不到的事,写在前面

没有登录态。付费墙、企业内部系统、需要 cookie 的社区,都拿不到。

不是爬虫。每次调用只发 1–3 个请求,没有队列、没有并发抓取设计。

不读扫描件。fetch 处理的是页面正文,PDF 里的图片和公式拿不到。

简报会漏。材料不足时它会标 insufficient 并说明搜到了什么,而不是编一段补上 —— 但这也意味着冷门名字的简报会很薄。

没有实时行情。股价、航班、天气这类接口没接,搜索到的也是二手报道。
08 / 包里有什么

八个文件,零第三方依赖

只用 Python 标准库。下载包不含任何凭据,打包脚本会解包复扫 sk- 串、key 赋值、Bearer 头,命中就删包中止。

装到本地

# 解压到技能目录
unzip deep-search-skill.zip -d ~/.workbuddy/skills/deep-search

# 填自己的 key(不填也能用免 key 的垂直源)
echo 'DEEPSEEK_API_KEY=你的key' > ~/.workbuddy/skills/deep-search/.env

# 自检
python ~/.workbuddy/skills/deep-search/scripts/ds.py doctor