用途
deep-research 是一个由 Google Gemini 深度研究智能体驱动的深度研究技能,用于执行异步深度研究任务。它不依赖 Gemini CLI,而是通过 Gemini Interactions API 工作,并支持将本地文件上传至文件搜索存储,实现基于 RAG(检索增强生成)的答案。该技能面向需要自动化研究流程的 AI 智能体与开发者,提供命令行脚本进行任务启动、状态查询、报告保存和文件存储管理。
主要能力
- 深度研究:通过
research.py start启动研究任务,支持指定研究深度(quick 约 2-5 分钟、standard 约 5-15 分钟、deep 约 15-45 分钟)。 - RAG 接地研究:使用
--context参数自动创建临时文件搜索存储,上传本地文件或目录,使研究结果基于本地资料。 - 成本预估:使用
--dry-run在不启动研究的情况下输出 JSON 格式的成本估算。 - 报告导出:支持将报告保存为 Markdown、HTML 或 PDF(PDF 需要 weasyprint)。
- 结构化输出:使用
--output-dir可将结果保存为包含 report.md、metadata.json、interaction.json、sources.json 的目录结构。 - 文件搜索存储管理:通过
store.py创建、列出、查询和删除文件搜索存储;通过upload.py上传文件,支持--smart-sync跳过未变更文件。 - 会话状态管理:研究 ID 和存储映射缓存在
.gemini-research.json中,可通过state.py查看、清理。 - 自适应轮询:默认根据历史完成时间调整轮询间隔,也可通过
--no-adaptive-poll使用固定间隔曲线。
使用方式
前置条件
- 一个 Google API 密钥(环境变量
GOOGLE_API_KEY或GEMINI_API_KEY) - 已安装 uv
快速开始
# 运行深度研究查询
uv run {baseDir}/scripts/research.py "What are the latest advances in quantum computing?"
# 检查研究状态
uv run {baseDir}/scripts/research.py status <interaction-id>
# 保存完成的报告
uv run {baseDir}/scripts/research.py report <interaction-id> --output report.md
# 基于本地文件的研究(自动创建存储、上传、清理)
uv run {baseDir}/scripts/research.py start "How does auth work?" --context ./src --output report.md
# 导出为 HTML 或 PDF
uv run {baseDir}/scripts/research.py start "Analyze the API" --context ./src --format html --output report.html
环境变量
按优先级检查以下之一:GEMINI_DEEP_RESEARCH_API_KEY、GOOGLE_API_KEY、GEMINI_API_KEY。
可选模型配置:GEMINI_DEEP_RESEARCH_MODEL(默认 gemini-3.1-pro-preview)、GEMINI_MODEL(回退模型名)、GEMINI_DEEP_RESEARCH_AGENT(默认 deep-research-pro-preview-12-2025)。
研究命令常用参数
--report-format:输出结构(executive_summary、detailed_report、comprehensive)--store:基于文件搜索存储进行研究--follow-up ID:继续之前的研究会话--output/--output-dir:等待完成并保存报告--timeout:最大等待时间(默认 1800 秒)--context:自动创建临时存储用于 RAG 接地--context-extensions:按扩展名过滤上传文件--keep-context:研究完成后保留临时存储(默认自动删除)--dry-run:仅估算成本--format:报告格式(md/html/pdf)--prompt-template:领域特定提示前缀(typescript、python、general、auto)--depth:研究深度(quick、standard、deep)--max-cost:超过估算成本则中止--input-file:从文件读取研究查询--no-cache:跳过缓存强制新运行
注意:使用 --output 或 --output-dir 时命令会阻塞直到研究完成(2-10+ 分钟),不要用 & 后台运行。非阻塞模式(省略 --output)会立即返回 ID,之后用 status 轮询、用 report 保存。
文件搜索存储命令
uv run {baseDir}/scripts/store.py create "My Project Docs"
uv run {baseDir}/scripts/store.py list
uv run {baseDir}/scripts/store.py query <store-name> "What does the auth module do?"
uv run {baseDir}/scripts/store.py delete <store-name>
uv run {baseDir}/scripts/upload.py ./src fileSearchStores/abc123 --smart-sync
会话状态命令
uv run {baseDir}/scripts/state.py show
uv run {baseDir}/scripts/state.py research
uv run {baseDir}/scripts/state.py stores
uv run {baseDir}/scripts/state.py --json show
uv run {baseDir}/scripts/state.py clear
适用场景
- 需要基于本地代码库或文档进行深度研究并生成报告
- AI 智能体集成,通过结构化 JSON 输出获取研究结果
- 对研究成本敏感,需要预先估算
- 需要管理文件搜索存储并进行快速问答
限制与安全说明
- 凭证:需要 Google/Gemini API 密钥,仅从环境变量读取,传递给 google-genai SDK,不会记录、写入文件或传输到 Google Gemini API 以外的任何地方。
- 文件上传:
--context会将本地文件上传至 Google 的临时文件搜索存储。敏感文件自动排除(.env*、credentials.json、secrets.*、私钥、认证令牌等),二进制文件被拒绝,构建目录被跳过。临时存储在研究完成后自动删除,除非指定--keep-context。仅上传显式指向的文件,不会自动扫描父目录或主目录。 - 非交互模式:当 stdin 不是 TTY 时,确认提示自动跳过,适用于智能体和 CI,但意味着有文件系统访问权限的自主智能体可能触发上传。建议限制路径访问或使用
--dry-run和--max-cost防护。 - 本地状态:研究会话状态写入工作目录的
.gemini-research.json,包含交互 ID、存储映射和上传哈希,不含凭证或研究内容。 - 文件大小限制:每个文件 100 MB。
- MIME 类型支持:36 种文件扩展名原生支持,常见编程文件通过回退机制以 text/plain 上传。
- 成本估算:基于启发式,Gemini API 不返回 token 数或计费数据,估算结果已明确标注。
- PDF 导出:需要 weasyprint。
- 输出约定:所有脚本遵循双输出模式,stderr 为人类可读格式,stdout 为机器可读 JSON。