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

# Conversations

> Work with Agent Canvas conversations, including branching from previous messages.

A conversation is a single agent session on the active backend. It has its own message history, tool calls, file changes, selected agent profile, and conversation-specific plugins.

## Branch From a Message

Use `Branch from here` on a message when you want to explore a different path without changing the original conversation.

Branching creates a new conversation from the selected point in the current conversation. The original conversation remains available in the sidebar.

<Note>
  Conversation branching is available on local agent-server backends that support conversation forks.
</Note>

## Branching User Messages

Branching from one of your own messages works like edit-and-resend:

1. Hover over the message.
2. Select `Branch from here`.
3. Agent Canvas opens a new branched conversation.
4. The selected message appears in the composer so you can edit it before sending.

The new branch starts from the parent of that message. This lets you rewrite the prompt and continue from the earlier state.

## Branching Assistant Messages

Branching from an assistant message creates a new conversation that includes history through that assistant response.

Use this when the agent reached a useful point and you want to try a different next step without changing the original thread.

## What Branching Preserves

The branch keeps the relevant conversation history, agent configuration, workspace context, and backend-managed state needed to continue from the branch point.

The branch is independent after creation:

* messages you send in the branch do not modify the original conversation
* the original conversation stays in the sidebar
* branches can be branched again
* the branch gets its own conversation title

## Branching vs Starting Fresh

Start a fresh conversation when you want no prior context.

Branch a conversation when you want the agent to remember what happened up to a specific message, but you want to test a different instruction, correction, or follow-up.

## Run a Goal

Use the `/goal` command when you want the agent to keep working until a specific objective is complete or the goal reaches its iteration limit.

```text theme={null}
/goal [--max N] <objective>
```

For example:

```text theme={null}
/goal --max 3 add unit tests for the parser and verify they pass
```

When you start a goal, Agent Canvas runs the agent and uses a judge LLM to check whether the objective is complete after each round. If the judge finds missing work, Agent Canvas sends that feedback back to the agent and continues until the goal is complete or the maximum number of rounds is reached.

While a goal is running, Agent Canvas shows a status banner with the objective, current round, status, judge score, and any missing work. When the goal finishes, the final status appears inline in the conversation history.

Goal statuses include:

| Status        | Meaning                                           |
| ------------- | ------------------------------------------------- |
| `running`     | The goal loop is active                           |
| `complete`    | The judge confirmed the objective is done         |
| `capped`      | The goal reached its maximum number of rounds     |
| `interrupted` | A normal user message interrupted the active goal |

Sending a normal message while a goal is running interrupts the goal and gives control back to you.

<Note>
  The `/goal` command requires a backend that supports conversation goal routes. It uses both the agent LLM and a judge LLM, so goal runs may make additional model calls beyond the agent's normal work.
</Note>

## Related Guides

* [Fork a Conversation](/sdk/guides/convo-fork)
* [Goal Completion Loop](/sdk/guides/convo-goal)
* [Agent Profiles](/openhands/usage/agent-canvas/agent-profiles)
* [Plugins in Agent Canvas](/openhands/usage/agent-canvas/plugins)
