Build a Multi-Agent Research Team · 40 min · Python · LangGraph · Anthropic Python SDK
Synthesizer + Report Generation
Three specialists that quietly disagree with each other is a research team problem the Synthesizer exists to catch -- not paper over.
Hiring signal: Resolving conflicting findings from independent sources into one coherent, cited report is the actual value a research team delivers over just asking one model a question directly.
What you will learn
- Build a Synthesizer that explicitly handles conflicting specialist findings
- Deduplicate citations across specialists who may have cited the same source
- Run the complete 5-agent system end to end on a real research question
The Capstone Project
All 3 specialists run in parallel and produce real, cited findings. Today's Synthesizer replaces Lesson 5's stub — the one node in this whole graph that sees everything at once, and the only one that can catch specialists quietly disagreeing with each other.
Synthesis prompting: explicitly ask for conflict-handling
SYNTHESIS_PROMPT = """You are synthesizing research from 3 specialists into one report.
Research question: {question}
Web Researcher findings:
{web_findings}
Technical Analyst findings:
{technical_findings}
Market Analyst findings:
{market_findings}
Write a structured Markdown report. IMPORTANT:
- If specialists disagree on a factual point, note the disagreement explicitly
rather than silently picking one version
- Deduplicate overlapping information -- don't repeat the same fact 3 times
because 3 specialists happened to find it
- Structure: Executive Summary, then a section per relevant specialist angle,
then Sources
- Every claim should be traceable to a citation number from the inputs above
"""
The explicit instruction to surface disagreements rather than silently resolve them is the difference between a Synthesizer that's actually useful and one that just concatenates 3 reports into 1 — if the Web Researcher and Market Analyst found conflicting adoption numbers from different sources, the honest output says so, rather than confidently picking whichever number sounds more authoritative.
Silent conflict resolution is worse than no synthesis at all
A Synthesizer that picks one specialist's version of a disputed fact without flagging the disagreement produces a report that LOOKS more authoritative than any individual specialist's raw output, while actually being less trustworthy -- it's hidden the exact uncertainty a reader needs to know about. This is the multi-agent-research equivalent of Course 06's "test-driven fix loop beats trusting the model's own claim" principle: don't let synthesis quietly discard information a careful human synthesizer would have flagged.
Unlock the full lesson
You've read the first 2 sections. The rest of this lesson covers Citation deduplication, Ship it — plus a hands-on lab, quiz, and project artifact.
Create a free account to unlock Phase 0 and Phase 1 of every course — no credit card.
Browse all courses · View pricing · DeVenture Academy