# Build a research agent with Parallel and Agno on Railway

> In this quick tutorial, learn how to build a simple Research Agent with Agno and Parallel then deploy to Railway.

- Published: 2025-12-12
- Author: Ashpreet Bedi
- Category: Engineering
- Canonical: https://agno-com-nine.vercel.app/articles/build-a-research-agent-with-parallel-and-agno-on-railway
- Markdown: https://agno-com-nine.vercel.app/articles/build-a-research-agent-with-parallel-and-agno-on-railway.md

You’re asked to build a Research Agent for your company and now you need to learn about search tools, harness engineering, output control, and production deployments.

Here's how to impress leadership by shipping something real using [Parallel](https://parallel.ai/) and Agno on [Railway](https://railway.com/).

## First, start with a basic research agent

Keep the first version simple:

- build an Agent with clear behavior and output
- add search and extract tools using Parallel
- add short-term and long-term memory backed by a database

Run it a few times and validate the outputs.

```python
from textwrap import dedent
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.tools.parallel import ParallelTools
from db.demo_db import demo_db

instructions = dedent("""
You are a Research Agent that helps users explore topics in depth.

1. First, restate the user's question to clarify the research objective.
2. Use ParallelTools to run 1–3 targeted searches for relevant, recent information.
3. Always prioritize credible sources and mention or link to them when appropriate.

Output format:
- Give only the final answer, no other text.
- Start with a brief, executive summary (2–4 bullet points).
- Then provide a structured explanation with clear headings and short paragraphs.
- Avoid unnecessary jargon. Explain any technical terms in simple language.
- Call out uncertainty, disagreements between sources, or missing data explicitly.
- Mention sources by name (or link) when appropriate, instead of saying "one source".
""")

research_agent = Agent(
    name="Research Agent",
    model=Claude(id="claude-sonnet-4-5"),
    tools=[ParallelTools(enable_search=True, enable_extract=True)],
    instructions=instructions,
    add_history_to_context=True,
    add_datetime_to_context=True,
    enable_agentic_memory=True,
    markdown=True,
    db=demo_db,
)
```

## Next, place everything in a clean codebase

I'm sharing a template you can clone and use right away. Clone this [agentos-railway repo](https://github.com/agno-agi/agentos-railway).

Run it locally: docker compose up --build -d

Connect it to the AgentOS UI, here's how it looks:

[Connect UI Local](https://www.youtube.com/embed/Fed9IpQ6BHM)

But this is too basic. If you share this you'll be laughed out of the room.

A real Research Agent should work the problem, search iteratively, reason over results, and build a coherent thesis. It needs to think about the question and analyze the results before it answers.

## Upgrade your Research Agent by giving it a thinking scratchpad

Use Agno ReasoningTools and see the quality of your output jump.

One line of code, significant improvement in structure, depth, and accuracy. Look at this go now!!

[reasoning research agent](https://www.youtube.com/embed/gnltijXSe98)

## Then, deploy your code to production on Railway

The repo includes a deployment script.

Just run `railway login` and then `./scripts/railway\_up.sh` and your services should be live within a few minutes.

[deploy to railway](https://www.youtube.com/embed/YKv6VK0WH-k)

## Connect the AgentOS UI to your production service

Chat with your Reasoning Agents, inspect sessions, view traces, manage memories and metrics. All in one place.

Invite your team, gather feedback and improve.

_If you enjoyed this blog, follow @ashpreetbedi on Twitter for more! And make sure to check out_ [_Agno on GitHub_](https://github.com/agno-agi/agno) _and give it a star._
