用途
past-research-search 用于为过去的 tavily-research 运行保留一份本地、可搜索的记录,使其之后可以按主题查找,而不必记住 request_id。
tavily-research 本身已支持按 ID 查询某次运行(tvly research status <request_id>、tvly research poll <request_id>),即“我有 ID,状态如何”。本技能覆盖的是另一个缺口:“我已经没有 ID 了,只记得大概问过什么”。Tavily 的 API 没有可查询的跨会话历史端点,因此这是一个本地日志约定,而不是 Tavily 的新能力。
主要能力
- 在每次 tavily-research 运行后,向本地日志追加一条记录:时间戳、查询内容、所用模型、request_id,以及输出保存位置。
- 之后通过关键词搜索该本地日志来查找历史运行,而不是尝试回忆 ID。
- 对匹配到的记录,若仍在 Tavily 的保留窗口内,可重新获取完整结果。
使用方式
运行完成后立即记录一次运行:
python3 << 'PYEOF'
import json, os
from datetime import datetime, timezone
log_path = ".tavily/runs.jsonl"
os.makedirs(os.path.dirname(log_path), exist_ok=True)
record = {
"timestamp": datetime.now(timezone.utc).isoformat(),
"query": "Competitive landscape for AI code assistants",
"model": "pro",
"request_id": "req_abc123", # from the research() response
"output_file": "reports/ai_code_assistants.md",
}
with open(log_path, "a") as f:
f.write(json.dumps(record) + "\n")
print("Logged.")
PYEOF
按关键词查找过去的运行:
python3 << 'PYEOF'
import json
with open(".tavily/runs.jsonl") as f:
records = [json.loads(line) for line in f if line.strip()]
keyword = "code assistants"
matches = [r for r in records if keyword.lower() in r["query"].lower()]
for m in matches:
print(f"[{m['timestamp']}] [{m['request_id']}] {m['query']}")
print(f" model={m['model']} output={m.get('output_file', 'n/a')}")
PYEOF
对匹配项重新获取完整结果(若仍在 Tavily 的保留窗口内):
tvly research poll req_abc123 --json
选项与注意事项
- 日志位置:项目根目录下的 .tavily/runs.jsonl 可使其与项目放在一起;若需跨项目记录,可改用主目录路径。
- 记录内容:查询文本、模型、request_id、输出文件路径,以及用户给出的简短自由文本标签(如“Q1 competitor scan”)。
- 保留期:Tavily 自身的运行检索(research poll)可能在一段时间后过期——如果用户需要永久保留实际报告,应始终在原始运行时加上 -o <file>,并在此处记录该文件路径。
提示
- 在运行当下记录,而不是事后补记。研究调用完成后追加一行成本很低;事后重建则困难得多。
- 始终在原始 tvly research 调用中搭配 -o <file>——日志应指向报告的持久本地副本,而不是仅依赖 Tavily 的托管保留。
- 这可以成为 tavily-research 内部的一个习惯,而不是单独的一步——如果某个工作流更简单,只需在每次研究调用后始终记录,而不必把它当作一次独立调用。
已知问题
研究状态/轮询目前需要 API-key 认证,而不是 OAuth。
截至 2026-08,当 CLI 通过 tvly login(OAuth)认证时,按 request_id 重新获取运行(上述最后一步)会失败——该路径经由 Tavily 的 MCP 服务器(mcp.tavily.com),而该服务器目前完全没有暴露 tavily_get_research 工具。research status 会返回 Unknown tool: 'tavily_get_research';research poll 会静默重试直到超时,而不是暴露该错误。本技能中的本地记录/查找步骤不受影响——只有“重新获取完整结果”这一步需要它。
修复方法:在使用重新获取步骤之前,改用原始 API key 认证:
tvly login --api-key tvly-YOUR_KEY
# or: export TAVILY_API_KEY=tvly-YOUR_KEY
TODO:一旦 Tavily 的 MCP 服务器暴露 tavily_get_research 工具,就移除本节——已作为缺口报告于 2026-08-28 提交跟踪。
相关
tavily-research —— 本技能为其记录运行。