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

# Conversations

> Find conversations on Home, talk to your agents, and follow delegated work.

Conversations keep a durable transcript of work with Erdo and its agents. A
conversation can have a default agent, additional agent participants, and human
participants.

## Find conversations on Home

Home starts with the message box and your recent conversations underneath. Send
from Home to start work with Erdo. Use the **Agent** dropdown to choose an enabled
built-in agent or an existing custom agent. Administrators can choose **Create an
agent** or **Recruit an agent** from the same dropdown.

Recent conversations show the latest message and a small unread marker. They are
ordered by recent activity. Search by name or message preview, select **Unread**
to narrow the list, and use **Load more conversations** for older results. Reading
an unanswered question does not answer it; its decision stays in the conversation.

Select a conversation to read and reply in the workspace. **Back to Home** returns
to the input and history. The sidebar's **Recent** list keeps conversations and
pages available on Home, New conversation and open conversations. On a phone,
open the navigation menu to reach it.

Opening Home does not preview a conversation or mark its messages read. Explicitly
opening a conversation marks it read. An open conversation survives a reload and
can be linked directly. Open an agent's profile from its name in the conversation
header, then return to the conversation.

The separate **New conversation** page uses the same input and agent dropdown.
Changing the agent keeps your draft and attachments. If a linked agent is no
longer available, select Erdo or another agent before sending. A selected agent remains in
the page URL for reloads and links. Existing project shortcuts remain available.

Pinned pages remain in the project sidebar and [Pages](/pages.md). Project learnings
remain in [Knowledge](/knowledge.md). Per-run automation transcripts stay in
[Activity](/attention.md); updates sent into an agent's persistent conversation appear
on Home. Activity also retains the full queue of decisions and escalations.

If loading or refreshing fails, use **Try again**. Previously loaded conversations
remain available while a refresh or a later page fails.

## Internal child conversations

Create an internal conversation when work belongs to a parent conversation but
should remain out of the user's conversation list until it is useful to follow:

```bash theme={null}
erdo threads create --name "Research" --parent <thread-id> --internal
```

An internal conversation always has a parent. It does not inherit the parent's
participants or default agent. The creator persona is attribution; pass
`--agent` separately when you want to select the child's default agent.

Follow a child conversation to add it to your list:

```bash theme={null}
erdo threads follow <thread-id>
erdo threads unfollow <thread-id>
```

Following adds your user as a conversation participant. Use `threads list --scope all`
to include followed conversations owned by other people. It does not grant access
by itself; you need view access to follow. You can inspect the parent link and
participants with `erdo threads get <thread-id>` when you have permission to
view the thread.

## Conversation commands

```bash theme={null}
erdo threads list --scope all
erdo threads create --agent Weaver
erdo threads get <thread-id>
erdo threads participants add <thread-id> Weaver
erdo threads participants remove <thread-id> Weaver
erdo threads seen <thread-id>
```

See the [CLI reference](/cli.md#conversations-with-agents) for listing, pagination,
and agent selection.

Different participants can have replies running at the same time. Stop applies
to the turn you selected, including an older turn that is still running.
Reconnecting keeps those active turns visible. Sending another message as the
same person interrupts your earlier turn, including work resumed after approval.

## Listing and questions

`listing` is `listed` by default. Listed conversations appear when you have access,
even if you are not a participant. An `internal` conversation appears only when
your user has a participant row. Opening it or marking it seen does not follow it.
The creator automatically participates in listed conversations; internal children
require an explicit follow. Direct conversations are always listed.
Opening the same agent in two organizations creates a separate direct conversation
in each organization. Existing user and organization thread lists use the same
listed-or-followed rule for internal children.

The conversation list returns `parent_thread_id`, `listing`, `unread`, and
`open_question_count`. Open questions are pending, unexpired approval requests in
the conversation that your organization can decide, including requests without a
deadline. Reading clears unread state; only a decision or expiry clears a question.
Unread state and open questions remain separate; Home does not combine them into a count.

Previews and activity ordering follow the latest visible content, including your
own messages. Unread state follows visible content from other authors since you
last viewed the conversation.
An answer that arrives after you marked the conversation seen makes it unread
again, even if its turn started earlier. Hidden context and thinking do not count
as new visible activity.

`GET /v1/threads/:id` returns `delegated_from: {thread_id, name}` when you can view
the parent. The field is omitted if you cannot view it or the parent was deleted.
Deleting a parent preserves its child conversations and clears their parent link.

## REST and MCP

`POST /v1/threads-create` and `erdo_create_thread` accept `parent_thread_id` and
`listing: "internal"`. Internal conversations require a parent, and creating any
child requires Edit access on its parent. `created_by_persona_id` is optional,
caller-supplied display attribution to an enabled agent; it does not authenticate
that agent or grant execution or access authority. The authenticated user remains
the owner. Set `persona_id` separately for the child's default agent. Other agent
participants are added explicitly through the participant endpoint or tool.

To follow, send `POST /v1/threads/:id/participants` with `{"user_id":"your-user-id"}`.
To unfollow, send `DELETE /v1/threads/:id/participants/your-user-id`.
The MCP tools `erdo_add_thread_participant` and `erdo_remove_thread_participant`
accept `user_id` for the same action. Supply your own ID, and omit `persona_id`.
View access is sufficient. Agent participant changes still require Edit access.

Messages sent from chat, the CLI, REST, or MCP use the same agent selection and
interruption rules. Mention an enabled agent with `@` to address it; otherwise the
conversation's default agent answers. Sending another message interrupts your
previous turn while other participants' turns continue. Turns follow persisted
message order, so an older send delayed in transit cannot interrupt your newer
turn, even after its reply finishes. Delayed and duplicate turns return a
terminated result; send a new message to ask again. Scheduled and proactive work
retain their own execution authority. A conversation stays
active until the remaining turns finish delivering their replies.

When agent names overlap, the longest name at the same mention wins:
`@Sales Analyst` selects Sales Analyst, while a later `@Sales` still addresses
Sales. The first mention in the message chooses the replying agent.

For a single persisted message, use `GET /threads/{id}/messages?message_id={uuid}`.
It returns that message's server timestamp and author, with visible content (which
may be empty), using the conversation's normal access rules.

Conversation writes require Edit access. Background source labels and job IDs are
reserved for authenticated server work; supplying them in a conversation request
does not grant permission or hide a person's run from cancellation.


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