Recipes · Research

A research agent that searches the web and cites.

Search, fetch, summarise — with citation metadata returned by the Web voice on every result.

Chihab · · Beginner · 5 min read

The Web voice ships three tools: web_search (Brave/Serper/DuckDuckGo, auto-selected by available API keys), fetch_url, and fetch_sitemap. Every result includes citation metadata so the agent can attribute claims back to a source URL. Results are LRU-cached to keep cost bounded.

Score file
import { defineScore, AnthropicProvider } from '@tuttiai/core'
import { WebVoice } from '@tuttiai/web'

export default defineScore({
  provider: new AnthropicProvider(),
  agents: {
    researcher: {
      name: 'researcher',
      model: 'claude-sonnet-4-6',
      system_prompt:
        'You answer research questions with citations. Use web_search to find sources, fetch_url to read them, and quote the source URL alongside every claim.',
      voices: [new WebVoice()],
      permissions: ['network'],
    },
  },
})
How to run it
  1. 01 Scaffold a project: npx tutti-ai init my-web-research
  2. 02 Install voices: npm i @tuttiai/web
  3. 03 Drop the score above into tutti.score.ts, set the env vars in .env, and run tutti-ai run.
Why this is safe
  • cite every claim
  • rate-limit web_search via voice config

Start conducting.

One install. Your first agent running in 60 seconds. No signup. No telemetry.