deep-research-agents
Skill2 starsChanged 4 months agoMITView on GitHub
Use Dan's paid deep-research providers as one capability: Claude Managed Agent, Gemini Deep Research, Parallel.ai, Exa, and Firecrawl Research Index. Trigger when the user asks for deep research, a research harness, multi-angle research fan-out, five angles, Workflow tool unavailable, Gemini API deep research, Claude managed agent research, Parallel.ai research, or wants the same research methodology to work across repos such as dans-brain and bogdanbaciu-dot-com.
- Reads credentials
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-coordinationSkill
- blog-image-genSkill
- bogdan-baciu-designSkill
- chat-analysisSkill
- deep-decideSkill
- grill-meSkill
- handoffSkill
- insight-lockSkill
- parallel-dispatchSkill
- quiz-meSkill
- skill-drift-scannerSkill
- table-system-migrationSkill
- weekly-updateSkill
- x-signal-researchSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 4 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 45
If preprocess fails (embed tunnel down), deep_research.py fails open to the raw question and prints WARN_DEEP_RESEARCH_PREPROCESS_SKIPPED.
- Very specific: line 51
Prefer the local dans-brain checkout when you need a repo-neutral research run.
- Very specific: line 63
When preprocess ran, manifest.json also records the local bundle under state/research-preprocess/ and token reduction stats.
- Distinctive: line 67
Before any live provider call, check local provider availability:
- Distinctive: line 79
Only run the paid call after the user confirms the provider count and expected call count.
- Very specific: line 100
Use --plan-only for a no-API check.
- Very specific: line 109
Keep secrets local: ANTHROPIC_API_KEY, GEMINI_API_KEY, and PARALLEL_API_KEY belong in untracked env/config, never in repo files.
- Distinctive: line 114
Treat provider reports as source material, not verified final truth.
- Distinctive: line 117
Use Gemini for broad landscape/source discovery, Parallel.ai for heavily cited source coverage, and Claude Managed Agent for synthesis, …
- Very specific: line 120
If running in dans-brain, check docs/capabilities/deep-research-agents.md and config/capabilities.json before inventing a new harness or …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deep Research Agents
Overview
Dan has five research backends that should be treated as one shared capability:
Claude Managed Agent, Gemini Deep Research, Parallel.ai, Exa Agent, and Firecrawl
Research Index. If a requested methodology expects a missing Workflow tool, do
not stop there; use the local provider harness or the repo-specific surface
instead.
Default Flow (local preprocess first)
For a raw research question, do not send the question straight to paid
providers. bin/deep_research.py now runs the GEX44 local preprocessor by
default: discover URLs, scrape in parallel, dedupe chunks, embed-rank, then bill
providers only on the curated prompt.
DANS_BRAIN_ROOT="${DANS_BRAIN_ROOT:-$HOME/src/dans-brain}"
cd "$DANS_BRAIN_ROOT"
# 1) No-cost: provider status + preprocess discovery + planned paid runs
uv run python bin/deep_research.py "research question" --dry-run
# 2) Live: preprocess locally, then fan out paid providers on curated prompt
uv run python bin/deep_research.py "research question"
# Escape hatches
uv run python bin/deep_research.py "research question" --no-preprocess
uv run python bin/deep_research.py --prompt-file state/research-preprocess/<bundle>/curated_prompt.md --no-preprocessPreprocessor-only (no paid calls):
cd "$DANS_BRAIN_ROOT" && uv run python bin/research_preprocess.py "research question" --dry-run
cd "$DANS_BRAIN_ROOT" && uv run python bin/research_preprocess.py "research question"If preprocess fails (embed tunnel down), deep_research.py fails open to the
raw question and prints WARN_DEEP_RESEARCH_PREPROCESS_SKIPPED. Prefer running
on the VPS with the GEX44 scheduler tunnel up (EMBED_API_BASE on :18081).
Canonical Harness
Prefer the local dans-brain checkout when you need a repo-neutral research
run. Do not assume a Linux/root home path; resolve the project root explicitly:
DANS_BRAIN_ROOT="${DANS_BRAIN_ROOT:-$HOME/src/dans-brain}"
test -f "$DANS_BRAIN_ROOT/bin/deep_research.py"
cd "$DANS_BRAIN_ROOT" && uv run python bin/deep_research.py --list-providers
cd "$DANS_BRAIN_ROOT" && uv run python bin/deep_research.py "research question" --dry-runThe harness writes provider outputs to state/deep-research/<timestamp>-<slug>/
with one markdown file per provider plus combined.md and manifest.json.
When preprocess ran, manifest.json also records the local bundle under
state/research-preprocess/ and token reduction stats. state/ is git-ignored
runtime data.
Before any live provider call, check local provider availability:
python3 /Users/danb/src/skills/deep-research-agents/scripts/check_provider_env.pyThen run a no-cost harness check:
cd "$DANS_BRAIN_ROOT" && uv run python bin/deep_research.py "research question" --dry-runOnly run the paid call after the user confirms the provider count and expected call count. ChatGPT, Claude, Gemini, or Parallel subscriptions do not imply API credits for these harness calls.
For multi-angle research, use repeated --angle flags. The harness requires
--allow-many when the plan exceeds three upstream runs because five angles
times three providers is fifteen paid calls:
cd "$DANS_BRAIN_ROOT" && uv run python bin/deep_research.py "overall question" \
--angle "market map" \
--angle "technical feasibility" \
--angle "risks and counter-evidence" \
--allow-manyRepo Surfaces
dans-brain:bin/deep_research.py(default--preprocess), local grunt work inbin/research_preprocess.py, provider plumbing inbin/deep_research_agents.py;bin/discover_sources.pyreuses that provider layer and defaults to all engines. Use--plan-onlyfor a no-API check.bogdanbaciu-dot-com: Phoenix modules underlib/bogdan/research/and the admin/admin/researchsurface.client: portal research functions underclient-portal/netlify/functions/research-*, with provider"all"fanning out to Claude, Gemini, and Parallel.ai.
Operating Rules
- Keep secrets local:
ANTHROPIC_API_KEY,GEMINI_API_KEY, andPARALLEL_API_KEYbelong in untracked env/config, never in repo files. - Confirm paid-call scope before execution: provider set, angle count, total
upstream calls, and whether
--allow-manyis required. If the user has not confirmed cost exposure, stop at--dry-run. - Treat provider reports as source material, not verified final truth. Synthesize conflicts explicitly and verify important, time-sensitive, legal, medical, or financial claims with current primary sources.
- Use Gemini for broad landscape/source discovery, Parallel.ai for heavily cited source coverage, and Claude Managed Agent for synthesis, skeptical review, and contradiction checks.
- If running in
dans-brain, checkdocs/capabilities/deep-research-agents.mdandconfig/capabilities.jsonbefore inventing a new harness or searching old transcripts for setup details.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

