<!-- Generated from run-ai-agents.md. Do not edit by hand. -->

> Markdown twin of https://conduitllm.com/run-ai-agents.html
> Define AI agents once, each with its own model and tools, then hand them work from chat, watch them work side by side, have their work reviewed and run them on a schedule.

---
Tutorial

# How to run AI agents side by side in Conduit

Updated 24 October 2026

One chat with one model is fine for a question. A real task has parts: look three things up, compare them, check the result. Agents in [Conduit](https://conduitllm.com/), a free, open-source desktop AI app, let you split that work between specialists, each with its own instructions, model and tools, and watch them do it at the same time.

## Introduction

An agent in Conduit is a model with a job description. You give it a name, instructions, a model, the tools it may use and a token limit, once, on the **Agents** page. From then on you can ask it directly in a chat, let the assistant hand it work, add it to a workflow, or give it a task to do on a schedule. When you change the agent, everything that uses it changes too.

In this tutorial, you will make an agent that looks up Rust crates, and use it to compare three HTTP clients for a small command-line tool: [reqwest](https://crates.io/crates/reqwest), [ureq](https://crates.io/crates/ureq) and [hyper](https://crates.io/crates/hyper). The assistant will hand one crate to each of three copies of your agent at the same time, then pass their findings to the Writer agent for a one-page comparison. You will open one of the helpers while it works and redirect it, have the finished comparison checked by the Reviewer agent, teach your agent your project's constraints, and put it on a schedule so it tells you when one of the crates releases something that matters.

Every agent in this tutorial runs on GLM 5.3 Flash, a fast, low-cost model. The comparison took about two minutes and cost about two cents. You can follow along with any topic; only the instructions change.

## Key takeaways

- An agent is defined once, with its own instructions, model, tools and token limit, and used everywhere: in chat with `@`, as a helper the assistant hands work to, in workflows and on a schedule.
- Helpers work side by side, up to three at once by default, each on its own model. Helpers whose tools change things work one at a time.
- Each hand-off is one line in the reply with its status, tokens, cost and time. Open it to watch the agent work, stop it, or give it a new instruction.
- The Reviewer agent can check a document against what you asked for, and the chat revises the same document with what it finds.
- An agent can keep its own notes between runs and search the document collections you choose.
- A routine is one of your agents doing a task on a schedule or when something new arrives, with what it may do approved in advance.

## Prerequisites

To follow this tutorial, you will need:

- **Conduit installed** on Windows, macOS or Linux. Download the latest release from the [releases page](https://github.com/runningpixels/conduit/releases).
- **A model provider set up in Conduit** with your own API key. This tutorial runs the agents on GLM 5.3 Flash through OpenRouter, but any provider works, including a local model. To set one up, follow one of the [provider guides](https://conduitllm.com/providers.html), such as [Use OpenRouter in a desktop app](https://conduitllm.com/providers/openrouter.html).
- **Web search set up**, so the agents can look things up. Conduit uses Exa by default; see [How to do deep research with Conduit and Exa](https://conduitllm.com/research-with-exa.html) for the options.

## Step 1 — Meeting the starter agents

Conduit comes with four agents you can use as they are or change. In this step, you will look at them and point two of them at an inexpensive model.

Choose **Agents** in the side rail, or press Ctrl+8 (⌘8 on macOS). Under **Your agents** are four cards:

- **Researcher** — searches the web, reads the most relevant pages, and answers with the facts it found, each with the page it came from.
- **Writer** — writes what it is asked for from the material it is given, without adding facts that aren't in it. It has no tools.
- **Reviewer** — checks work against what was asked for and lists what is wrong or missing, most important first, without rewriting it.
- **Data analyst** — works through numbers with a calculator and shows each calculation.

Each card shows the agent's model and tools, its tasks, failures and tokens over the last 30 days, and its routines. The buttons on a card are **Ask**, **Edit**, **Duplicate** and **Delete**.

The starters use the default model, the one you last picked in a chat. For this tutorial, choose **Edit** on **Writer**. Under **Model**, choose **OpenRouter** and then **Z.ai: GLM 5.3 Flash**, and choose **Save**. Do the same for **Reviewer**. The cards now show `z-ai/glm-5.3-flash` instead of **Default model**.

**Note:** Deleting a starter agent is permanent; Conduit doesn't add it back. Any workflow that used it keeps its own copy, so nothing that depends on it breaks.

Next, you will make an agent of your own.

## Step 2 — Making your own agent

The Researcher answers anything. An agent for one kind of question can be told exactly where to look and what to report. In this step, you will make one for Rust crates.

On the Agents page, choose **New agent**. The editor has two columns: **The agent** on the left and **What it can use** on the right. Fill in the left column:

1. **Name** — `Crate scout`.
2. **Instructions** — paste the following:

```
You look up Rust crates. For the crate you are given, find on crates.io, docs.rs
and its repository: the latest version and its release date, the minimum supported
Rust version, the default features and whether it needs OpenSSL, roughly how many
downloads it has, and anything in the last two releases that could break an
existing project. Answer as a short list, with the page each fact came from.
If you can't find something, say so instead of guessing.
```

1. **Model** — **OpenRouter**, then **Z.ai: GLM 5.3 Flash**.
2. **Token limit (optional)** — leave it empty to use the default of 120,000 tokens. A task can use from 1,000 to 300,000.

In the right column, under **Tools it may use**, tick **search the web** and **read any web page it chooses**. Leave **Use the computer** and the connector tools off, and leave **Can hand work to** empty; this agent only reads.

The editor checks the agent as you type and lists anything that needs fixing in its footer, such as a missing name or instructions. Choose **Add agent**. The new card appears under **Your agents**.

**Note:** Conduit gives the agent an id made from its name, here `crate_scout`. Workflows refer to the agent by this id, so you can rename it later without breaking them.

Next, you will ask it something.

## Step 3 — Asking an agent directly

The quickest way to use an agent is to send it a message. In this step, you will ask Crate scout about one crate from a chat.

On Crate scout's card, choose **Ask**. Conduit opens a new chat with a **Crate scout** chip in the message box. In any chat, you can do the same by typing `@` and choosing the agent from the list.

Type the following and send it:

```
ureq
```

That one word is enough, because the instructions say what to look for. The message keeps the **Crate scout** chip, and the reply comes from Crate scout, on its own model and with only its own tools. In the run shown here, it read the crates.io API, the docs.rs page and the ureq changelog, and answered in about 15 seconds for less than a cent.

Check a fact or two against the pages it cites. If the answer misses something you care about, edit the instructions now; every later step uses them.

Asking one agent is useful on its own. Next, you will let the assistant split a bigger job between several.

## Step 4 — Letting the assistant hand out the work

The assistant in an ordinary chat can hand tasks to your agents, but only to the ones you allow. In this step, you will allow two, and give it a job that needs both.

Open **Settings**, choose **Chat defaults**, and scroll to **Agent**. Under **Agents the assistant can hand work to**, tick **Crate scout** and **Writer**. Each one you tick becomes a tool the assistant can call, and each works on its own model with its own tools. Just above, **Helpers working at once** sets how many helpers can work on a task at the same time: 1 to 4, and 3 by default. Settings save automatically.

Start a new chat, without picking an agent, and send:

```
I'm choosing an HTTP client for a small Rust command-line tool. Hand each of
reqwest, ureq and hyper to Crate scout, then give their findings to Writer
for a one-page comparison with a recommendation, and save it as a document.
```

The assistant writes three tasks for Crate scout and hands them out in one go. While they work, the reply shows **Waiting for 3 agents**, with one line per hand-off: the agent, its task, its status (**Working**, **Done**, **Failed** or **Stopped**), and its tokens, cost and time so far.

The three work at the same time, so the wait is as long as the slowest crate, not the three added together: in this run, reqwest took 16 seconds, ureq 27 and hyper 32. Then the assistant handed the findings to Writer, which wrote the comparison in 22 seconds, and the document opened beside the chat. The whole turn took about two and a quarter minutes, most of it the assistant planning.

Under the reply, **Helpers** totals the tokens and cost of every hand-off, by model: here 148,707 tokens and $0.0186, plus less than half a cent for the assistant itself. The time the assistant spends waiting for its helpers doesn't count against its own time limit, but the whole turn stops after 15 minutes.

**Note:** Helpers whose tools change things, such as using your computer or a connector tool that sends or posts, work one at a time, so two of them never act at once. Tick **Can work alongside other agents** in an agent's editor if you know it is safe.

Next, you will look inside one of the hand-offs.

## Step 5 — Watching, stopping and redirecting a helper

Each hand-off can be opened while it works. In this step, you will open one and change what it is doing.

Send the request from Step 4 again in a new chat, and while the helpers are still **Working**, choose the line for **hyper**. Be quick: with a fast model, a lookup like this takes under half a minute. The chat is replaced by that agent's own view. The breadcrumb reads **Chat ›** followed by the agent and its task, the header shows its provider, model, status, tokens, cost and time with a **Stop** button, and below is its task and everything it has done so far: its thinking, each page it read, and its answer as it writes it. A strip at the bottom shows what the main chat is doing, such as **Main chat: waiting for 1 agent**, with **Back to chat**.

The hyper crate is mostly used through a higher-level client, and the comparison is about clients. While the view is open, the message box reads **Tell Crate scout what to do…** and sends to that agent, not to the chat. Type the following and press Enter:

```
Look at hyper-util's legacy Client instead of hyper on its own.
```

Your instruction appears in the transcript as **You:** followed by your text, and the agent carries on with it. In the run shown here, Crate scout finished its hyper report and added a section headed *hyper-util client::legacy (per your redirect)*, with that crate's version, minimum Rust version and recent changes.

**Stop** ends this helper only. The assistant is told **Stopped by you.** and carries on with what the others found. To go back, choose **Back**, the **Chat** breadcrumb, **Back to chat**, or press Esc.

You don't have to watch. When a helper finishes, a notice such as **Crate scout finished:** followed by its task appears with an **Open** button, and a desktop notification is sent if Conduit's window is in the background. The **Agents** button in the rail counts the agents that are running, and the Agents page lists them under **Running now**.

Next, you will have the comparison checked.

## Step 6 — Having the result reviewed

A model that writes a comparison rarely checks it against its sources. In this step, you will have the Reviewer do that.

In the document panel showing the comparison from Step 4, open the **⋯** menu and choose **Have it reviewed**. Conduit sends the document and your original request to the Reviewer, and the menu item reads **Reviewing…** while it works. The starter Reviewer can search the web and read pages, so it checks facts against their sources; in this run, the review took two minutes and cost about two cents.

If the Reviewer finds nothing to change, a notice says so and nothing else happens. If it finds problems, the chat sends a note such as **Reviewer found 3 things to fix in** followed by the document's title, and the assistant revises the same document. Choose the note to see exactly what was sent: the Reviewer's list of problems, each with the change it suggests, and an instruction to skip any point that is wrong and keep every limit of your original request.

In this run, the Reviewer found three things. The document said ureq 3.5.0 had two changes marked "technically breaking" when the changelog marks one. It called a package size "source size". And two claims had no source it could check. The assistant checked each against the sources, fixed the document in place in about a minute and a half, and the table now reads "marks one change (technically breaking)".

Review works on web pages, Markdown and text documents in a chat, and the Reviewer lists at most ten problems at a time.

Next, you will give Crate scout something to remember.

## Step 7 — Giving an agent memory and documents

An agent starts every task from its instructions. In this step, you will let Crate scout keep notes between tasks, so it knows your project without being told each time.

Choose **Edit** on Crate scout's card. In the right column, under **Memory**, tick **Remembers between runs**. The agent then keeps short notes and reads them at the start of every run. Choose **Save**.

Now choose **Ask** on its card and send:

```
Remember: our tool must build on Rust 1.80 and must not depend on OpenSSL.
```

The agent saves a note with its `remember` tool and says how it will use it. Open its editor again, and the note is listed under **Memory**, marked **From a chat**. You can edit or delete it there, or add one yourself with **Add a note**. Its card now reads **Remembers · 1 note**.

From now on, every Crate scout task, in a chat, a workflow or on a schedule, starts with that note, so it checks the minimum Rust version and the OpenSSL dependency against your limits without being asked. The agent can also add notes as it works, up to 50, kept separate from the memory you keep for chats.

Under **What it can read**, you can also tick up to ten of your document collections, such as your project's design notes. The agent can then search them, the same way a chat searches your [Documents](https://conduitllm.com/docs.html#documents).

Next, you will put Crate scout to work on a schedule.

## Step 8 — Putting an agent on a schedule

A **routine** is one of your agents doing the same task on a schedule. In this step, you will have Crate scout check the crates every weekday morning.

On Crate scout's card, under **Routines**, choose **+ Run on a schedule…**. Fill in the form:

1. **What to do each time** — paste the following:

```
Check whether reqwest, ureq or hyper-util released a new version since yesterday.
If one did, say what changed and whether it affects our tool. If none did, say
"No new releases."
```

1. **Name** — `HTTP crate watch`.
2. **When** — **On weekdays**, **At** 9:00. The other choices are **Every day**, **Every few hours**, **When a file arrives in a folder** and **When a feed has a new post**.
3. **Each result** — **Save as a document in Results**, and tick **Also notify me**.

Choose **Save**. Nobody watches a scheduled run, so the dialog asks **Let it run on its own?** and lists everything the routine will be allowed to do: send text to your provider, save documents, and let Crate scout read web pages and search the web. Choose **Allow and turn on**.

The card now lists **HTTP crate watch** with its schedule and next run, such as **Weekdays at 09:00 · next Mon, Oct 26, 9:00 AM**, and **Pause** and **Open** buttons. **Open** shows the routine on the Workflows page, where **Run now** runs it once without waiting for the schedule.

In this run, the first result took 36 seconds and was saved to **Results** as *HTTP crate watch — 2026-10-24*. It found no new releases since yesterday, but because Crate scout remembered your limits, it also pointed out that all three crates now need Rust 1.85, above your 1.80, and kept a note of the versions it checked for the next run.

**Note:** A routine is stored as a workflow with one agent step. On the Workflows page, routines are behind **Show routines**, and **Turn into a workflow** turns one into an ordinary workflow you can add steps to.

You can also start a routine from a chat: a reply from an agent you asked with `@` has **Schedule this…**, which opens the same form with your message as the task.

## Going further: agents in workflows

Your agents work in [workflows](https://conduitllm.com/automate-with-workflows.html) too. In the workflow editor's **Helpers** section, **Add from your agents** adds one as a helper that an agent step can hand tasks to, and an agent step can run as one of your agents, with its instructions, model, tools and token limit. The workflow keeps a reference, so editing the agent changes the workflow too. **Make a copy here** turns a reference into a copy that belongs to that workflow alone, and **Save to your agents** does the opposite.

In a workflow run, each step's agents show as a tree with the same status, tokens and cost, totals by model, and **Stop** and **Redirect** controls for each helper.

## Agent limits at a glance

| Setting | Limit |
| --- | --- |
| Token limit per task | 1,000 to 300,000; 120,000 by default. At three quarters of it, the agent is told to answer with what it has. |
| Helpers working at once | 1 to 4; 3 by default. Helpers whose tools change things work one at a time. |
| Hand-offs | An agent can hand work to up to five of your agents, one level deep. No circles. |
| Tasks handed out at once | Up to 12 per turn or workflow step. |
| Agents the assistant can hand work to | Up to 20. |
| Chat turn | Stops after 15 minutes, helpers included. |
| Notes per agent | Up to 50, each up to 2,000 characters. |
| Document collections per agent | Up to 10. |
| Review | Web pages, Markdown and text documents in a chat; up to ten problems per review. |

## Questions

**What does it cost to run several agents?**

Conduit is free. Each agent's model calls are billed by its provider, to your own key, like any chat message. In this tutorial, with GLM 5.3 Flash, the three-crate comparison cost about two cents and the review about two cents more. Every hand-off shows its tokens and cost, **Helpers** under the reply totals them by model, and every call is recorded in **Settings → Usage & Cost**. An agent stops at its token limit (120,000 unless you change it), and a chat turn stops after 15 minutes, so a helper can't run up a bill unnoticed.

**Can agents use local models?**

Yes. Pick Ollama or LM Studio and a model in an agent's **Model** field. A local server answers one request at a time, so helpers on the same local model take turns instead of working side by side; helpers on different providers still work at the same time.

**Can an agent change things on my computer or in my other apps?**

Only with tools you give it, and with your approval. The tools in this tutorial only read: searching the web and reading pages. An agent can also be given connector tools and, with **Settings → Computer** turned on, commands and file changes in a folder you choose. A tool that sends, posts or edits something asks before it acts, and agents with tools like these work one at a time unless you tick **Can work alongside other agents**.

**Can agents hand work to other agents?**

Yes, one level down. An agent can hand work to up to five of your agents, but those agents can't hand it on again, and agents that would hand work to each other in a circle can't be saved. This keeps every task at most two hand-offs from you, so you can always see who did what.

**Does a scheduled agent run when Conduit is closed?**

No. A routine is a workflow, and scheduled runs happen while Conduit is running. To keep them going with the window closed, turn on **Keep running in the tray when the window is closed** in a workflow's **Schedule** section. A run missed while Conduit was closed happens once, the next time it starts.

## Conclusion

In this tutorial, you made an agent for one kind of question, asked it directly, and let the assistant hand it three crates at once and a comparison to the Writer. You watched one helper work and redirected it, had the comparison checked by the Reviewer, gave the agent notes it keeps between runs, and put it on a weekday schedule.

The same pattern of narrow agents on a cheap model doing the legwork, with a writer and a reviewer finishing the job, fits many tasks: comparing libraries, vendors or papers, briefing yourself on a topic, or checking a draft before you send it. To go further, explore these guides:

- [How to automate tasks with Conduit Workflows](https://conduitllm.com/automate-with-workflows.html), to build fixed-step workflows that use your agents.
- [How to do deep research with Conduit and Exa](https://conduitllm.com/research-with-exa.html), for long, cited research reports.
- [The provider guides](https://conduitllm.com/providers.html), to choose the models your agents run on.

[Download Conduit](https://github.com/runningpixels/conduit/releases)

Conduit details match the latest release and are checkable in [the documentation](https://conduitllm.com/docs.html) and [the source](https://github.com/runningpixels/conduit). Found an error? [Tell us](https://github.com/runningpixels/conduit/discussions) and we will fix it.

## Related

- [How to do deep research with Conduit and Exa](https://conduitllm.com/research-with-exa.html) — Turn on Exa search, write a research brief and read a cited report in Conduit, with solar cell research as the worked example. No Exa key needed.
- [How to automate tasks with Conduit Workflows](https://conduitllm.com/automate-with-workflows.html) — Build a Conduit workflow that watches a project's releases, summarizes each with a low-cost model, saves the summary and alerts you only to breaking changes.
- [API pricing vs a monthly subscription](https://conduitllm.com/api-vs-subscription.html) — How many messages a day before pay-per-token beats a $20 subscription? A calculator, plus why conversation length moves the answer more than volume does.
- [How to demo an MCP server to a customer](https://conduitllm.com/mcp-distribution.html) — Hosting an MCP server is not a customer demo. Compare a hosted chat, Claude Desktop with an extension, and your own client — and what you can ship today.
