Agent 的眼睛与手:DeepSeek 自研搜索接口精读
DeepSeek 上线了两个原始 JSON 接口:Search(自研搜索引擎)与 Fetch(网页转 Markdown)。读完文档再对照自己接搜索代理的踩坑史,我的结论是:这套接口的价值不在单次搜索质量,而在于字段语义、计费规则和输出格式三件事,全都是按"模型直接消费"设计的。
一、先说结论:这是给 Agent 用的,不是给人用的
普通搜索 API 的结果字段是给人看的:标题、链接、摘要,完事。DeepSeek 这套的结果字段分成两组,文档自己写明了用途——
snippet:100~200 字符,"适用于前端展现"(给人)summary:600~800 字符,"适用于给模型阅读"(给模型)
同一份结果里预备了两种摘要,这是把"人看的一屏"和"模型读的 context"当作两个不同的渲染目标来设计的。除此之外还有两个带判定线的质量字段:
rerank_score:0~3 分,"大于等于 1.5 为优质结果"authority:0~4,"大于等于 3 为极权威结果"
别小看这两条判定线。自己写搜索代理时,最费劲的一步是"哪些结果值得塞进 context、哪些该扔"。通常的做法是拿模型再筛一遍,多一轮调用、多一份延迟。现在接口直接把排序分和权威性拍在结果里,还给了阈值——筛选这一步可以退化成一行 if。
另一个很 Agent 化的细节:请求里有个可选的 ori_question 字段,说明是"触发搜索的用户原始问题"。搜索词是压缩后的,原始问题才是完整意图——接口愿意多收一份上下文来对齐意图,这个姿态是给程序化调用方准备的。
二、计费规则:对 Agent 友好到罕见
原文只有两行,值得抄进来:
只有返回 HTTP 200 且产生结果的请求才会计费(Search 的 results 必须非空,Fetch 必须返回网页正文)。请求失败、搜索无结果或超时不计费。
这是按成功计费。对比 Bing/Google 那类"请求发出就扣钱"的模式,对自动化场景是天壤之别:
- Agent 可以做试探式搜索——先粗搜确认有没有货,空结果不花钱,命中了再深读;
- 429 限流、5xx、超时都可以无脑重试,不产生成本;
- 按次计费、
count不影响单价,意味着一次请求拉满count=50不比count=5贵。
价格本身也摆出了姿态:Search 与 Fetch 都是 5 元 / 1000 次成功请求,一次半分钱。对照 Bing API 约 3 美元/千次、Tavily 约 8 美元/千次的量级,这是把定价定到了"可以随便用"的水平。
三、Search 与 Fetch:发现与深读的分工
两个接口是成对设计的:
- Search 负责发现——按 query 找出哪些 URL 值得读;
- Fetch 负责深读——抓单页,直接返回 Markdown 正文。
有意思的是 Search 自带 need_content 开关:为 true 时结果里直接带回网页正文,不加价。于是可以按成本分层调用:
- 第一层:
need_content=false,只拿 summary 判断相关性(最便宜); - 第二层:对值得读的少数结果
need_content=true或单独 Fetch 拿全文; - Fetch 拿到的就是干净 Markdown,省掉 trafilatura/readability 那一层 HTML 清洗。
对一个自建 RAG 或 agent 工具链来说,"网页 → 可直接入库的结构化正文"这个转换器通常是脏活重灾区,现在被接口包掉了。
四、搜索语法直接透传
query 支持一组操作符,原样传给搜索服务:
| 操作符 | 作用 |
|---|---|
site: / -site: |
限定 / 排除站点(多站点用 OR 连接) |
"…" / - / -“…” |
精确短语 / 排除词 / 排除短语 |
lang:zh,en |
语言过滤 |
after: / before: |
时间窗(日期或年份) |
单看平平无奇,组合起来是自建 RAG 里最值钱的能力——收窄召回。例如盯一个产品动态:
{"query": "DeepSeek 模型 site:github.com OR site:huggingface.co lang:zh after:2025", "count": 10}
站点、语言、时间窗一次限死,回来基本都是可用的。以前这类过滤要么靠模型二次筛,要么靠自建代理预过滤,现在查询里写一句话的事。
五、自研引擎意味着什么
文档里"该接口由 DeepSeek 自研搜索引擎提供支持"这句轻描淡写,实际分量不轻。
给 Agent 挂搜索的既往做法,是在 Bing API、Serper、Tavily 这类中间层里挑一个。自研引擎意味着三件事:
- 排序策略自己定——
rerank_score和authority这两个自家口径,后续会随模型生态一起迭代; - 中文内容覆盖值得期待——自研引擎通常对本土内容池更上心;
- 不再有第三方依赖的断供风险。
反过来说,最大的未知数也在自研:英文与技术长尾站点的覆盖质量需要实测。中文技术圈讨论热、权威站收录好,我预期表现不错;但小众英文文档站能不能被召回,得跑了才知道。
六、成本账,和一个埋得很深的日期
成本前面算过:半分钱一次,一天搜 100 次五毛钱。对个人用户等于免费。
但文档结尾有一句很容易被划过去的话,值得圈出来:
当前用户在 DeepSeek Harness / Claude Code / Codex 中通过 Server 端工具调用访问的 Search/Fetch 接口目前未计费,将于 2026-11-01 00:00 起按次收取调用费用。
也就是说:现在在各类 agent harness 里"免费联网"的那部分调用,两周后开始走账——半分钱一次,日常无感,但如果哪天写了个循环搜索的自动化任务,记得它是会计费的。QPS 5 的上限 × 按次计费,这两个数放在一起,就是在提醒:这是给 Agent 用的水龙头,不是给爬虫用的消防栓。
七、能做什么:几个立刻能落的场景
写作:选题期用 Search 找一手信源(after: 限近期、site: 限权威站),Fetch 抓全文转 Markdown,顺手丢进知识库归档。信息面比单一社区搜索宽得多。
Agent 工具链:包成一个几十行的 skill / MCP server,让会话里的 agent 天生带"搜索 + 抓全文"。现有搜索链路里绕得最远的那一层(多轮循环、结果清洗)可以整段退役。
监控:定时任务跑 Search(after: 限定当天),命中关键词推微信——盯产品发布、CVE、政策文件都行。空结果不计费,天天跑也不心疼。
数据交叉验证:authority ≥ 3 的当权威源、低分的当参考源,自动化报告按分级引用,避免"把论坛帖当公告"。
八、几个坑,提前记下
- QPS 5 是账号级,与 API Key 无关、与模型并发独立。多个 agent 并行搜索会互相挤,需要客户端自己排队。
- Fetch 另有目标域名级限速——批量抓同一个站会撞 429,这是防爬虫的姿态,别硬刚。
- 404 不计费但不可盲目重试:URL 挂了、被站点策略拦、页面没有可提取正文,都归 404。重试前先确认是不是请求本身的问题。
localization传的是 IP 地址用于本地化排序,国内场景基本用不上,做区域性监控时才有价值。- 文档明确"请求体中的未知字段会被忽略"——向前兼容做得体面,但也意味着传错字段名不会报错,调试时别指望它帮你发现手误。
结语
这套接口的本质,是把"联网"从 Agent 的外挂变成模型厂商的原生能力,并且把三件事一次做齐:字段语义按模型消费设计、计费对失败友好、输出 Markdown 直出。
接它的边际成本趋近于零——一个函数、一次 POST。真正值得花时间的是想清楚把它接在哪:是替换现有搜索链路里最绕的那一层,还是先做成一个低成本的旁路通道跑两周对比质量。我的建议是后者:11 月 1 日计费切换是个天然的对比窗口,切换前后各跑一段时间,用真实查询测出它的中文覆盖与长尾召回,再决定要不要把主力搜索迁过去。