AutoResearch is an agentic research system for complex technical work. It is built to take a high-level research objective, decompose it into tractable questions, retrieve evidence from papers and the web, synthesize a structured brief, and keep the execution trace inspectable.
The current repository is the Phase 1 MVP: a working end-to-end research loop with an API, async worker, browser UI, memory layer, retrieval connectors, evidence extraction, and report generation.
- Accepts a research topic and optional goal
- Builds a research plan with questions, search queries, and report sections
- Searches web and scholar sources
- Fetches documents and extracts structured evidence cards
- Synthesizes a cited markdown report
- Tracks task events, sources, and outputs through a single task record
Most "research agents" either stop at search + summarization or rely on brittle prompt chains that drift off-topic on long, noisy tasks. AutoResearch is being built to support a stronger workflow:
- broad exploration across multiple directions
- system-level optimization thinking
- explicit evidence grounding
- continuous iteration and trajectory tracking
- production-oriented engineering constraints
The long-term goal is a competition-grade AutoResearch system that can support serious algorithmic and systems optimization work, not just generate surface-level summaries.
flowchart LR
A["Research Task"] --> B["Planner"]
B --> C["Retrieval"]
C --> D["Document Fetch + Normalize"]
D --> E["Evidence Extraction"]
E --> F["Section Drafting"]
F --> G["Critic / Final Report"]
G --> H["Task Bundle"]
I["Codex exec / GPT"] -.-> B
I -.-> E
I -.-> F
I -.-> G
J["SQLite Memory"] --- B
J --- C
J --- E
J --- G
packages/agent-core: planning, orchestration, LLM routing, task understandingpackages/connectors: web search, scholar search, content fetchpackages/memory: persistence, normalization, repository layerpackages/paper-rag: evidence extraction and citation preparationpackages/report-engine: outline generation, draft assembly, critic passapps/api: FastAPI serviceservices/worker: async research workerapps/web: Next.js control paneltests/evals: end-to-end and regression tests
apps/
api/
web/
docs/
infra/
packages/
agent-core/
connectors/
memory/
paper-rag/
report-engine/
shared-schemas/
services/
worker/
tests/
evals/
AutoResearch currently supports three execution modes:
codex execusing your logged-in ChatGPT / Codex allowance- OpenAI Responses API
- heuristic fallback pipeline
The default priority is:
Codex exec -> OpenAI API -> heuristic fallback
This means the system can already run a real LLM-backed research loop even if you only want to use ChatGPT Pro / Codex quota first.
Phase 1 is intentionally narrow. It focuses on one outcome:
Given a technical topic, produce a structured, evidence-backed, traceable research brief.
Phase 1 does not yet include:
- autonomous experiment execution
- leaderboard submission agents
- long-horizon memory over many research cycles
- multi-user permissions and team workflows
- online learning or automated production rollout
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -U pip
.\.venv\Scripts\python.exe -m pip install -e .[dev].\.venv\Scripts\python.exe -m uvicorn autoresearch.api.main:app --host 127.0.0.1 --port 8000.\.venv\Scripts\python.exe -m autoresearch.worker.main --poll-interval 1Set-Location apps\web
npm install
npm run dev- API: http://127.0.0.1:8000
- Web UI: http://127.0.0.1:3000
codex --version
codex login statusIf codex login status shows a valid login, AutoResearch will prefer codex exec automatically.
$env:OPENAI_API_KEY='your-api-key'
$env:AUTORESEARCH_OPENAI_FAST_MODEL='gpt-5.4-mini'
$env:AUTORESEARCH_OPENAI_QUALITY_MODEL='gpt-5.4'$env:AUTORESEARCH_DISABLE_CODEX_EXEC='1'Additional environment examples are available in .env.example.
GET /healthPOST /tasks
Content-Type: application/json{
"topic": "Optimize a large-scale recommender ranking system under strict production constraints",
"goal": "Produce a decision-ready research brief with hypotheses and experiment roadmap."
}GET /tasks/{task_id}Returns:
- task status and current stage
- research plan
- event timeline
- source list
- final report
GET /tasks/{task_id}/events/stream- Submit a topic from the UI or API
- Worker claims the queued task
- Planner builds questions and search queries
- Retrieval gathers sources from web and scholar connectors
- Evidence extraction produces evidence cards and citations
- Report engine drafts and critiques the final markdown report
- UI shows events, sources, and report preview
.\.venv\Scripts\python.exe -m pytest -qCurrent eval coverage includes:
- end-to-end pipeline execution
- LLM path smoke coverage
- complex task normalization
- off-domain retrieval filtering regression
Run the complex-task suite:
.\.venv\Scripts\python.exe tests\evals\run_complex_suite.pyIt saves timestamped summaries to data/evals/.../summary.json so each iteration can be compared against the previous baseline.
Implemented:
- FastAPI backend
- worker-driven task execution
- SQLite-backed task memory
- web and scholar retrieval connectors
- Codex / GPT-backed planning and synthesis path
- structured report generation
- regression tests for task normalization and source filtering
In progress:
- stronger source quality policy
- cleaner content extraction from noisy webpages
- higher-quality hypothesis portfolio and experiment roadmap generation
- trajectory tracking across repeated research cycles
- Phase 1.5: better source ranking, stronger report templates, richer evals
- Phase 2: experiment planning, exploit/explore tracking, hypothesis portfolio management
- Phase 3: implementation agents, experiment runners, trajectory memory, competition loop
- The repo currently targets local development on Windows first, but the Python backend is structured to be portable.
data/, virtual environments, and generated artifacts are intentionally excluded from version control.- No license file has been added yet.