How balechen/mr-dre works
Mr Dre evaluates deep-research reports and simulates iterative revision: a dataset question is sent to a research agent, its report can be evaluated, feedback is generated and used for a later turn, and reports can be scored across checklist, citation, and presentation dimensions. The graph includes the documented generation and evaluation branches plus sampled revision, feedback, and citation-crawling internals. Some orchestration source was not sampled, so uncertain call wiring is omitted.
Main entry points: call_dra.py Generation Orchestrator · evaluate_report.py Evaluation Orchestrator · main.py Revision Agent · oai.py OpenAI Research Agent
Components 22
Generation and Revision
- Benchmark Datasets
data - Generation Orchestrator
call_dra.py - Feedback Synthesis
feedback.py - Turn Preparation
call_dra.py
Research Engines
- Revision Agent
engine/reviser_agent/main.py - Web Search Tool
engine/reviser_agent/tools.py - OpenAI Research Agent
engine/oai.py - Perplexity Research Agent
engine/perplexity.py
Report Evaluation
- Evaluation Orchestrator
evaluate_report.py - Checklist Scoring
dr_eval/checklist_eval.py - Citation Scoring
dr_eval/citation_eval.py - Rubric Scoring
dr_eval/rubric_eval.py
Evaluation Support
- Evaluation Prompts
dr_eval/eval_prompts.py - URL Crawler
dr_eval/crawler/jina.py - Crawler Cache
dr_eval/crawler/cache.py - API Cache
engine/cache.py
Other components
- Researcher
- vLLM Service
- Serper Search
- OpenAI API
- Perplexity API
- Jina Reader API
Connections 25
- Researcher → Generation Orchestrator: requests report
- Benchmark Datasets → Generation Orchestrator: supplies questions
- Generation Orchestrator → OpenAI Research Agent: dispatches generation
- Generation Orchestrator → Perplexity Research Agent: dispatches generation
- Generation Orchestrator → Revision Agent: dispatches revision
- Revision Agent → vLLM Service: requests completion
- Revision Agent → Web Search Tool: executes tools
- Web Search Tool → Serper Search: searches web
- OpenAI Research Agent → OpenAI API: creates and polls
- Perplexity Research Agent → Perplexity API: submits and polls
- Generation Orchestrator → Feedback Synthesis: generates feedback
- Feedback Synthesis → Turn Preparation: provides feedback
- Turn Preparation → Generation Orchestrator: prepares next turn
- Generation Orchestrator → Evaluation Orchestrator: evaluates prior report
- Researcher → Evaluation Orchestrator: submits report
- Benchmark Datasets → Evaluation Orchestrator: supplies criteria
- Evaluation Orchestrator → Checklist Scoring: runs checklist mode
- Evaluation Orchestrator → Citation Scoring: runs citation mode
- Evaluation Orchestrator → Rubric Scoring: runs rubric mode
- Checklist Scoring → Evaluation Prompts: uses criteria prompts
- Citation Scoring → Evaluation Prompts: uses claim prompts
- Citation Scoring → URL Crawler: fetches cited URLs
- URL Crawler → Crawler Cache: reads and writes
- URL Crawler → Jina Reader API: fetches webpage
- OpenAI Research Agent → API Cache: caches API calls