research
GitHub调用 Gemini 深度研究代理执行多源网络调研,支持异步后台运行与超时监控,最终返回带引用的研究报告。
Trigger Scenarios
Install
npx skills add FradSer/dotclaude --skill research -g -y
SKILL.md
Frontmatter
{
"name": "research",
"description": "Runs a deep-research query on Google Gemini's deep-research managed agent and returns a cited report. This skill should be used when the user asks to \"deep research with Gemini\", \"run Gemini deep research\", \"have Antigravity research X\", or wants a thorough, multi-source web research report produced by a remote Gemini agent. Invoked via \"\/antigravity:research\". Supports a higher-effort max mode via \"--max\".",
"allowed-tools": [
"Bash(uv:*)",
"Monitor",
"Read"
],
"argument-hint": "<research question> [--max]",
"user-invocable": true
}
Antigravity Deep Research
Run $ARGUMENTS as a deep-research query on Gemini's deep-research managed agent,
wait for it to finish, and report the cited result. Two models are available:
deep-research-preview-04-2026 (default) and deep-research-max-preview-04-2026
(max mode — slower, higher effort), selected with --max.
The script is at ${CLAUDE_PLUGIN_ROOT}/scripts/antigravity.py. It is self-daemonizing:
research returns immediately with a run_id, a detached worker runs the research,
and a status file flips to completed / failed when done. Requires GEMINI_API_KEY
in the environment and uv on PATH. Deep research can take several minutes.
Phase 1: Frame the query
Goal: Turn $ARGUMENTS into a clear research question.
Actions:
- Use the full
$ARGUMENTStext (minus a--maxflag) as the research question. Pass--maxthrough to the script when the user wants max mode (deeper, slower). - If it is empty or too vague to research (no subject, scope, or constraints), ask the user one or two clarifying questions, then proceed.
Phase 2: Launch the run
Goal: Start the detached research worker.
Actions:
- Run the script:
uv run "${CLAUDE_PLUGIN_ROOT}/scripts/antigravity.py" research --query "<question>" [--max] - Capture
run_id,output_file, andwait_commandfrom stdout. - If stdout reports an error (for example a missing
GEMINI_API_KEY), surface it and stop.
Phase 3: Wait for completion
Goal: Block until the research finishes without busy-looping the model.
Actions:
- Start a Monitor on the captured
wait_command. It emits one line —antigravity run <id>: completed/failed/timeout— then exits:
Deep research is slow: set the Monitoruv run "${CLAUDE_PLUGIN_ROOT}/scripts/antigravity.py" wait --run <run_id> --timeout 1800timeout_msto 3600000 (60 min, 2x the wait timeout) and pass--timeout 1800to the wait command. Use a clear description like "antigravity research <run_id>". - When the Monitor event arrives, check if the line contains
: completed,: failed, or: timeout:- Contains
: completedor: failed→ proceed to Phase 4. - Contains
: timeout→ the research is still running (the worker keeps polling up to ~2h). Start the Monitor on the samewait_commandagain to keep waiting. After four consecutive timeouts (4 hours total), tell the user it is still running and give them the full command to fetch it later:
then stop. Never present auv run "${CLAUDE_PLUGIN_ROOT}/scripts/antigravity.py" status --run <run_id> --fulltimeout/ still-running state as the report.
- Contains
Phase 4: Report the result
Goal: Present the research report.
Actions:
- Fetch the full result:
Or read the rendereduv run "${CLAUDE_PLUGIN_ROOT}/scripts/antigravity.py" status --run <run_id> --fulloutput_filedirectly. - Present the report text to the user, preserving any citations and sources.
- If the status is
failed, report the recorded error and likely cause.
Notes
- This uses Gemini's managed deep-research agent; it manages its own search and browsing. No sandbox tools or network flags apply here.
- See
../delegate/references/usage.mdfor the shared API surface and limits.
Version History
- 6f2a0b2 Current 2026-08-20 10:58


