-
Notifications
You must be signed in to change notification settings - Fork 0
Landscape Survey
Reviews four open source deep research systems for patterns worth adapting: GPT Researcher, STORM, Tongyi DeepResearch, and Open Deep Research, from an early point in the project's history.
Note
Nearly every actionable idea below has since shipped. Checked directly against the current code, not assumed: only sectional drafting (STORM's second idea) is still unimplemented, Builder still writes the whole report in one call.
Parallelizes crawling instead of sequential search then fetch, and prunes HTML boilerplate before synthesis. Actionable: run WebSearcher tasks fully concurrently, and add a context pruning utility before writing fetched content to the workspace. Both shipped: orchestrator.py dispatches sibling tasks via asyncio.gather, and web.py's boilerplate stripper runs on every fetch before it reaches the workspace.
Generates 3 to 5 diverse personas before planning (avoiding consensus bias), and drafts a stable outline before any text, writing section by section. Actionable: a persona brainstorming step before write_todos, and sectional drafting instead of one massive final_report.md call that risks running out of output tokens. Persona brainstorming shipped: the Planner's own instructions now have it brainstorm from 2-3 expert perspectives via think_tool before writing slots. Sectional drafting still not implemented: Builder still writes the whole report in a single call.
Scales inference compute on complex queries, expanding into multiple search strings and fetching deeper into results. Actionable: a search_mode: "heavy" config that expands one query into three and fetches the top result of each. Shipped: search_mode: heavy is a real, live config option in web.py.
Pauses for human approval of the plan before consuming any search quota, and integrates external tools via MCP. Actionable: a human_in_the_loop gate pausing after write_todos, and a dynamic MCP tool loader. Both shipped: a human-in-the-loop gate exists in the orchestrator, and src/tools/mcp_loader.py is a real, generic MCP tool loader.
The original proposed flow, kept for the historical reasoning; every phase except the section-by-section drafting one now exists in some form in the real pipeline, just not as a single linear phase sequence the way this diagram suggests.
flowchart TD
A[User Query] --> B[Phase 1: Multi-Perspective Persona Generation]
B --> C[Phase 2: Bounded Outline Planning]
C -->|HITL Gate: User Approval| D[Phase 3: Test-Time Search Scaling / Heavy Mode]
D --> E[Phase 4: Concurrency-Optimized Scraping & Pruning]
E --> F[Phase 5: Section-by-Section Drafting & Peer Critique]
F --> G[Final Report]
History
Model Research
Reviews & Audits
Reference