Digitorn
Digitorn
← All use cases
knowledge

Build a research agent with citations in YAML

A multi-agent research bot that searches, verifies, and writes a cited synthesis.

webmemoryagent_spawn
The pattern

Coordinator-plus-specialists pattern, with a researcher that fetches sources, a fact-checker that verifies claims, and a writer that produces the final output. Citations are inline, sources are de-duplicated across domains, and the synthesis runs on a premium model while the grunt work stays cheap.

What good looks like
  • Every claim cites a source
  • No domain repeated more than 3 times
  • Synthesis under 600 words by default
  • Sub-25 turns end-to-end
Common pitfalls
  • Single-agent setup, can't verify itself
  • Letting the researcher hallucinate URLs
  • Premium model on exploration turns
  • No cap on web.fetch payload size, context blows up

The minimum YAML to ship this

app.yaml
1modules:2  web: { config: { search_backend: duckduckgo } }3  memory: { config: { working_memory: true } }45agents:6  - id: coordinator7    brain: { model: claude-sonnet-4-6 }8    workers: [researcher, fact_checker]9  - id: researcher10    modules: [{web: [search, fetch]}, memory]11    brain: { model: deepseek-chat, temperature: 0.2 }12  - id: fact_checker13    modules: [{web: [search]}]14    brain: { model: deepseek-chat, temperature: 0 }
Ship in 5 minutes

Install Digitorn and deploy this agent

# 1. install runtime
curl -sSL https://digitorn.ai/install | sh

# 2. save the YAML above to ~/.digitorn/apps/my-research-agent/app.yaml
mkdir -p ~/.digitorn/apps/my-research-agent
# paste the YAML into app.yaml

# 3. deploy
digitorn deploy my-research-agent
Read the deep dive

How we cut our coding agent's bill by 60% with model routing

Read article
Newsletter

Get the next post in your inbox.

Engineering notes from the Digitorn team. No marketing, no launch announcements, no "10 prompts that will change your life". Just the things we write that we'd want to read.

One-click unsubscribe. We never share your address. Powered by our own infrastructure, not a tracker.

Other things you can build

communicationSlack copilot/use-cases/slack-botdeveloperAutomated code reviewer/use-cases/code-reviewdeveloperDocumentation generator/use-cases/documentation-generatorcommunicationVoice assistant/use-cases/voice-assistantopsScheduled reporter/use-cases/cron-reporterdeveloperPR triager/use-cases/pr-triagerknowledgeMeeting note-taker/use-cases/meeting-notesopsEmail triager/use-cases/email-triagecreativeLive React app builder/use-cases/react-builder