问题背景
在使用 Tavily 做新闻检索、信息收集时,我们一开始遇到了三个典型问题:
- 默认不限制时间,容易搜出一年前的旧闻,信息过时
- 单一搜索源覆盖不全,国际新闻多但国内热点缺失
- 拿回一堆结果再筛选,浪费 token 降低效率
核心优化:O(1) 检索原则
源头过滤 > 事后筛选——从 API 参数或 Prompt 层面直接卡死约束,不拿回无效结果再处理,追求时间复杂度 O(1),从根源减少无效 token 消耗。
📐 具体规则
- 新闻检索默认限制最近一个月:超过一个月的旧闻除非你明确要求,否则直接过滤
- Tavily 用 API 参数
time_range=month原生卡死时间,不需要后端再筛选 - 火山搜索用 Prompt 约束:"只返回最近一个月的新闻",源头搞定
- 一次搜索就拿到准确结果,不重复搜,不浪费 token
双搜索互补策略
单一搜索源总有覆盖盲区,分工协作覆盖更全面:
| 搜索源 | 主力场景 | 时间约束方式 |
|---|---|---|
| Tavily | 国际新闻、科技财经、英文资讯 | API 参数 time_range=month |
| 火山引擎搜索 | 国内热点、中文资讯、本地新闻 | Prompt 层面约束"只返回最近一个月" |
💡 配额兜底
Tavily 免费版有 1000 次/月限制,配额用尽自动切火山搜索,双备份不中断服务。
实际效果对比
❌ 优化前
- 新旧新闻混在一起
- 国内热点常搜不到
- 拿回一堆过期结果再筛选
- token 浪费 30% 以上
✅ 优化后
- 全是最近一个月新鲜内容
- 国际+国内全覆盖
- 源头过滤,不需要二次筛选
- token 节省,效率提升
和 Agent 工作流结合
这套策略完美适配 OpenClaw 龙虾工作流:
- 任务开局先搜信息,源头干净,后续推理少踩坑
- token 用在刀刃上,长程任务不容易上下文爆炸
- 双备份机制保证服务不中断
🎯 一句话总结
让专业的干专业的,源头把好关,比事后补救效率高一个数量级。
代码示例
Tavily API 调用
# Tavily 搜索:使用 API 参数限制时间范围
result = tavily_search(
query="AI Agent 最新进展",
time_range="month", # 只搜索最近一个月
search_depth="advanced",
max_results=10
)
火山引擎搜索 Prompt
# 火山搜索:通过 Prompt 约束
prompt = """
请搜索最近一个月内关于 {topic} 的新闻。
只返回新鲜的、有价值的信息。
过滤掉超过一个月的旧闻。
"""
Token 消耗对比
| 方式 | Token 消耗 | 准确率 |
|---|---|---|
| 无限制搜索 | 高(需要二次筛选) | 低(噪音多) |
| API 参数过滤 | 中(只拿需要的) | 高(源头干净) |
| Prompt + API 双保险 | 低(精准命中) | 最高(双重约束) |
写在最后
搜索是 AI Agent 的眼睛,眼睛看不清,脑子再好也白搭。
从一开始就设置好约束,比事后补救效率高一个数量级。这就是 O(1) 检索原则的核心思想。
整理于 2026-03-21,OpenClaw 版本
2026.3.13实测通过。