Research Mission DAG
The directed acyclic graph of phases governing Research Agent mission execution — dependencies, parallelism, and what each phase produces.
Purpose
This page documents the current phase dependency graph (DAG) for research missions. The DAG is the Research Agent's domain-specific execution graph, operating inside the broader OpenClaw mission runtime — it defines the concrete research phases that run within each OpenClaw mission step. The DAG defines which phases must complete before others can start, which phases can run concurrently, and what each phase produces.
Status: Implemented (current DAG operational)
Phase dependency graph
Phase descriptions
F0: Init
Depends on: nothing (entry point)
Sets up the mission run directory, reads the task definition from task.json, validates the input, and initializes state.json to track progress. No external requests are made at this phase.
F1: Candidates
Depends on: F0
Performs the primary discovery search. Given the task definition, queries configured search adapters and produces a list of candidate items stored as candidates.json. All subsequent phases depend on its output — this is the bottleneck phase.
F2: Reviews (parallel group)
Depends on: F1
Retrieves user reviews, ratings, and critical assessments for each candidate. Results are written as reviews.jsonl — one entry per candidate.
F4: Price Analysis (parallel group)
Depends on: F1
Queries pricing and availability information for each candidate. Results are written as price_analysis.json.
Y1: YouTube URLs (parallel group)
Depends on: F1
Discovers relevant YouTube content (trailers, reviews, coverage) for each candidate. Only collects URLs at this stage — no downloading or transcription.
Y2: Transcript Extract
Depends on: Y1
Retrieves transcripts for the YouTube URLs discovered in Y1. Results are written as youtube_transcripts.json. Sequential because it depends on Y1's output.
F6: Final Report
Depends on: F2, F4, Y2
Aggregates all available artifacts from the parallel group and Y2 into a structured Markdown report (final_report.md). If any upstream phase failed partially, F6 reports on what is available and notes any gaps.
Parallelism
F2, F4, and Y1 are independent of each other and can execute concurrently after F1 completes. The current implementation treats them as a parallel group. Y2 must wait for Y1; F6 must wait for F2, F4, and Y2.
Dependency summary
| Phase | Depends on | Produces |
|---|---|---|
| F0 | — | state.json initialized |
| F1 | F0 | candidates.json |
| F2 | F1 | reviews.jsonl |
| F4 | F1 | price_analysis.json |
| Y1 | F1 | YouTube URLs (tracked in state) |
| Y2 | Y1 | youtube_transcripts.json |
| F6 | F2, F4, Y2 | final_report.md |
A current limitation
The current DAG is designed for structured discovery research (candidates, reviews, pricing, transcripts). It does not yet support research domains requiring different phase structures — academic literature review, technical documentation scraping, structured database queries, or multi-hop reasoning chains. Extending the DAG to support configurable domain-specific phase graphs is planned.
Related pages
→ OpenClaw Framework Overview — the mission runtime this DAG runs inside
→ Research Framework — full pipeline and component overview
→ Research Artifacts — artifact files and lifecycle
→ Research Agent — agent overview