---
title: "Conversations"
description: "Continue a job with a follow-up message. Each turn is a new durable, metered job that gets the earlier turns."
canonical_url: "https://docs.oz0.ai/agents/conversations"
---
# Conversations

> Continue a job with a follow-up message. Each turn is a new durable, metered job that gets the earlier turns.

For: people running and reviewing agents.

Start a conversation when an agent needs the context of earlier turns. Each message starts a new job, so you can inspect a turn, continue it or fork from it without replacing the earlier record.

A job answers once. To ask a follow-up, continue it: the next turn is a new job of its own, started like any other, that gets the conversation so far with your message. Because every turn is a job:

- it is **durable** and has a trace, like every job;
- it is **metered**: its cost, earlier turns included in its input tokens, is on its job;
- it runs under the tenant's **quotas, budgets and kill switches**, and the agent's contract.

A conversation is an ID its turns share. The trace, the job page and `job get` link each turn to the one before and after it.

## From the CLI

```bash
oz0 run weather "What is the weather in Stockholm?"
# job job-1f0c… started (agent weather)
# continue with: oz0 run --continue job-1f0c… "..."

oz0 run --continue job-1f0c… "And in Paris?"
# job job-77ab… started (agent weather), turn 2 of conversation conv-5e1d…

oz0 run --conversation conv-5e1d… "Which is warmer?"
```

With `--continue` or `--conversation`, the agent may be left out: the agent of the latest turn answers. Name one to hand the conversation over (see below).

`--conversation ID` also starts a conversation under an ID you choose, when it has no turn yet: `run weather --conversation trip-2026 "..."`. IDs are letters, digits and `._:@-`, at most 200 characters.

`chat` does the same in a loop, one message per line, until `/exit` or the end of its input:

```bash
oz0 chat weather
# Talking with weather. One message per line; /exit ends.
# you> What is the weather in Stockholm?
# ...
```

Answers go to stdout and what the agents do to stderr (`--quiet` stops that), so `printf 'one\ntwo\n' | oz0 chat weather` works in a script. `chat --continue JOB` and `chat --conversation ID` go on with one you had.

## Forks

Continue a turn that is not its conversation's latest, and the job **forks** it: it starts a new conversation that goes on from that turn, with the turns up to it and none after, and the conversation you forked stays as it was.

```bash
oz0 run --continue job-77ab… "What about Lyon instead?"
# job job-a3c9… started (agent weather), turn 3 of conversation conv-9b20…
oz0 conversation get conv-9b20…
# Forked from:  conv-5e1d…, at job job-77ab…
```

The fork's first turn links back to the turn it continued (its trace's previous turn), its turns are numbered on from there, and `conversation get` of the original lists its forks. Name the fork with `--conversation new-id` together with `--continue`. Continuing an earlier turn with the original conversation's own ID is refused, since a conversation has one line of turns. In the console, **Fork from here** on a turn of the Conversation tab does the same.

Read conversations:

```bash
oz0 conversation list --agent weather
oz0 conversation get conv-5e1d…      # or any of its jobs
oz0 job search conversation:conv-5e1d…
```

## In the console

- The chat drawer, on every page (**⌘J**, **Ctrl J**), lists your chats with what each is doing, follows several at once, and continues, forks, stops and hands over a chat in place; a new chat starts from a picker of the agents you may start. See [the chat drawer](https://docs.oz0.ai/getting-started/web-ui/chats#the-chat-drawer). It reads only your own list (`ListMyConversations`), and someone else's chat, opened by its address, asks for a reason as below.
- The job page has a **Conversation** tab: the turns with what was said and answered, and a message box. **Continue** starts the next turn and opens it. On a job that is no conversation's turn yet, Continue starts a conversation: the job becomes turn 1.
- Run it again on a failed turn's page starts the conversation's next turn with the same message and the same earlier turns.
- The Run panel on the Agents page offers your own chats with the agent and those shared with you, never anyone else's: pick one, and the job you start is its next turn. A new conversation there is a new chat of yours.
- A chat's page (the Conversation tab of its turns) shows its title, whose it is, Pin, Archive, Rename and Share for its owner, who it is shared with, who read it through the audited access, and **Remove from my list**, which says what happens to the turns.
- The overview counts conversations, and the ⌘K search finds a conversation's turns by its ID.

Each answer carries the tenant's [AI label](https://docs.oz0.ai/govern/ai-labels), a badge in the tenant's words and the browser's language.

## Related tasks and reference

- [Conversation access and history](https://docs.oz0.ai/agents/conversations/access-and-history)
- [Use conversations from an app](https://docs.oz0.ai/agents/conversations/apps)
- [Hand off a conversation and use Ask](https://docs.oz0.ai/agents/conversations/handoffs-and-ask)

<legacy-sections>
<span id="ask-one-chat-that-finds-the-right-agent">

ask one chat that finds the right agent

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/handoffs-and-ask#ask-one-chat-that-finds-the-right-agent).

<span id="chats-yours-private-by-default">

chats yours private by default

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/access-and-history#chats-yours-private-by-default).

<span id="handing-a-conversation-to-another-agent">

handing a conversation to another agent

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/handoffs-and-ask#handing-a-conversation-to-another-agent).

<span id="how-much-of-the-conversation-a-turn-gets">

how much of the conversation a turn gets

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/access-and-history#how-much-of-the-conversation-a-turn-gets).

<span id="over-a2a-and-mcp">

over a2a and mcp

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/apps#over-a2a-and-mcp).

<span id="personal-data-retention-and-erasure">

personal data retention and erasure

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/access-and-history#personal-data-retention-and-erasure).

<span id="through-the-api">

through the api

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/apps#through-the-api).

<span id="what-is-refused">

what is refused

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/access-and-history#what-is-refused).

<span id="which-agents-take-part">

which agents take part

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations/access-and-history#which-agents-take-part).

<span id="in-the-web-ui">

in the web ui

</span>

: [Read the section](https://docs.oz0.ai/agents/conversations#in-the-console).

</legacy-sections>


## Sitemap

See the full [sitemap](https://docs.oz0.ai/sitemap.md) for all pages.
