> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oumi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# AGENTS

> Build and evaluate models that call tools and hold multi-turn conversations

An agent is a model that does more than answer a single prompt. It calls tools to look up or change information, and it holds a conversation with a user across several turns. Oumi lets you define the tools your agent can call, decide how each tool call is answered, and then generate training data and run evaluations in which your model acts as that agent.

Testing an agent against production systems is slow, costly, and risky. With Oumi, you simulate the tools and the user, so you can generate and judge thousands of realistic agent conversations in hours. You can then fine-tune a smaller model on the best conversations and serve it at a fraction of the inference cost of a frontier model.

***

## MULTI-STEP AND MULTI-TURN

Agent behavior varies along two independent axes. Your agent can use either one or both:

* **Multi-step:** The model calls tools. It may make several tool calls, reading each result, before it answers.
* **Multi-turn:** The model holds a conversation across several user turns. A model plays the user, so you do not need a person in the loop.

***

## HOW THE PIECES FIT TOGETHER

| Concept | What it does |
| - | - |
| [Tool](/guides/agents/tools) | Defines a function your model can call: its name, description, and the JSON Schema of its arguments. A tool is only a contract. |
| [Tool implementation](/guides/agents/tool-implementations) | Answers the calls to one tool. It can call your own HTTPS or MCP endpoint, pass the call to the simulated user, look up a fixed answer, or simulate the answer with an LLM. |
| [Simulated user](/guides/agents/simulated-users) | A model that plays the user in a multi-turn conversation. A persona on each dataset row steers how it behaves. |
| Agentic inference configuration | Attaches tool implementations and a simulated user to a [synthesis](/guides/synthesis/how-it-works#add-tools-and-a-simulated-user) or [evaluation](/guides/evaluations/running#add-tools-and-a-simulated-user) job. |
| [Harness](/guides/harnesses) | Runs your own agent loop and tools during an evaluation, in place of Oumi's tool implementations. In beta. |

***

## A TYPICAL WORKFLOW

**1. Define your tools**

[Create a tool](/guides/agents/tools) for each function your agent calls. Then give each tool a [tool implementation](/guides/agents/tool-implementations) and test it with a few sample calls.

**2. Assemble your prompts**

Collect the prompts your agent must handle, from your own data or from [data synthesis](/guides/synthesis). For multi-turn agents, add a varied [user persona](/guides/agents/simulated-users#steer-the-user-with-a-persona) to each row.

**3. Benchmark a teacher model**

[Run an evaluation with your tools](/guides/evaluations/running#add-tools-and-a-simulated-user) on a strong model and on your untuned candidate model. [Judge tool selection and grounding](/guides/evaluators/defining#judging-tool-use-and-conversations), not only the final answer. If you imported production traces, [score those traces](/guides/evaluations/running#score-existing-conversations) as well.

**4. Generate training conversations**

[Generate completions with your tools](/guides/synthesis/how-it-works#add-tools-and-a-simulated-user) to have the teacher model run your prompts with your tools and simulated user. Review the results and keep only the strongest conversations.

**5. Fine-tune and evaluate**

[Train](/guides/training) a model that supports tool calling on those conversations. Evaluate it against the teacher and the untuned baseline, then iterate.

***

## WHAT'S NEXT

> **[Tools](/guides/agents/tools)**
>
> Define the functions your agent can call.

> **[Tool implementations](/guides/agents/tool-implementations)**
>
> Decide how each tool call is answered.

> **[Simulated users](/guides/agents/simulated-users)**
>
> Let a model play the user across several turns.

> **[Harnesses](/guides/harnesses)**
>
> Evaluate your own agent loop. In beta.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.