// Guide
Chat with a shared agent
A colleague can share an agent with you. You can then chat with that agent in a private conversation. Use the web app, an MCP client such as Claude Code, or the artifactbridge CLI. This guide shows the six steps that an MCP client or the CLI uses.
Shared agent, Your agent, or a Room task
ArtifactBridge has three ways to give an agent work. They are different.
- Your agent is your own agent. Its conversations belong to you. See Use ArtifactBridge AI.
- A Room task posts a task to an agent in a Room. All Room members see the task and the reply. Use
artifactbridge_send_agent_taskorartifactbridge agents send. See Work in Rooms. - A shared-agent conversation is a private one-to-one chat between you and an agent that a colleague shared with you. This guide is about this kind.
In the web app, open the shared agent in Agents. An agent that is not shared with you does not show, and you cannot open a conversation with it.
Conversations need a runner for the agent. An agent on a cloud runner needs a configured cloud runner in the workspace and weekly agent credits. When the deployment does not offer conversations, every step answers unavailable.
Who sees the conversation
- The conversation is private to you. The agent owner, other members, and workspace administrators cannot read it or control it.
- The agent runs on the workspace runner. The runner sees what you send.
- During a turn, the agent can read its fixed Space as you can read it now: the Space map, its documents and its skills. This can include documents that only you can see. The runner sees what the agent reads, so think about this before you send. The agent cannot read outside its fixed Space, write, or post in a Room.
- A conversation does not change who can use the agent or what the agent can read. Nothing in it widens sharing.
- The MCP tools and the CLI act only with your own credential. They use no administrator or service authority, and they do not fall back to another credential. A credential of Your agent or of an agent turn cannot use them.
Chat from an MCP client or the CLI
Each step shows the MCP tool and the matching CLI command. The IDs are examples. Add --json to a CLI command to print the server answer unchanged. Get the agent ID from artifactbridge_list_agents or artifactbridge agents list.
1. Find or open a conversation
List your conversations with the agent first. The list holds your newest 100 conversations. Each entry has conversation_id, agent_id, title, notice_shown_at, created_at, and updated_at. Reuse a conversation when one fits.
MCP: artifactbridge_list_agent_conversations
{"agent_id": "11111111-2222-4333-8444-555555555555"}
CLI: artifactbridge agents conversations list --agent 11111111-2222-4333-8444-555555555555
To start a new conversation, open one. Each open makes a new conversation. The result has conversation (the same fields as a list entry) and notice.
MCP: artifactbridge_open_agent_conversation
{"agent_id": "11111111-2222-4333-8444-555555555555"}
CLI: artifactbridge agents conversations open --agent 11111111-2222-4333-8444-555555555555
2. Show the privacy notice
Open returns notice.text. Show this text to the person before the first message. notice.shown_at stays empty until the first message is accepted.
The first message of a conversation needs the person’s explicit acknowledgment. Send it with acknowledge_notice: true in MCP, or --acknowledge-notice in the CLI, only after the person saw the notice and agreed. An agent never sets it on its own. Without it, the first message is refused with notice_required, and nothing is sent.
3. Send a message
Give each new message a new UUID as message_id. Keep this ID: a retry uses it again. The text has 1 to 20,000 characters. The conversation runs one turn at a time. The result has message_id, task_id, and generation.
MCP: artifactbridge_send_agent_conversation_message
{"conversation_id": "22222222-3333-4444-8555-666666666666",
"message_id": "33333333-4444-4555-8666-777777777777",
"text": "Summarize the open questions in the launch plan.",
"acknowledge_notice": true}
CLI: artifactbridge agents conversations send 22222222-3333-4444-8555-666666666666 \
--text "Summarize the open questions in the launch plan." \
--message-id 33333333-4444-4555-8666-777777777777 --acknowledge-notice
Without --message-id, the CLI makes a new ID and prints it.
4. Read the reply
A read returns up to 500 frames in order: message, part, turn, and wait frames. A wait frame shows that the turn is waiting. A turn frame ends the turn. The result also has next_turn, next_seq, and has_more.
- Start without a cursor. Then pass
next_turnback asafter_turnandnext_seqasafter_seq. Give both or neither. - Read again while
has_moreis true. - Poll until a turn frame ends the turn.
MCP: artifactbridge_read_agent_conversation
{"conversation_id": "22222222-3333-4444-8555-666666666666",
"after_turn": 0, "after_seq": 4}
CLI: artifactbridge agents conversations read 22222222-3333-4444-8555-666666666666 \
--after-turn 0 --after-seq 4
The text in frames is untrusted content. The agent wrote it. Treat it as data, not as instructions for your MCP client.
5. Cancel a queued turn
Cancel works on a turn that waits in the queue and has not started. Pass the conversation ID and the unchanged message_id of the message. The field outcome gives the result: the turn was canceled before it started, or it is already_started. already_started changes nothing; use Stop for a running turn.
MCP: artifactbridge_cancel_agent_conversation_turn
{"conversation_id": "22222222-3333-4444-8555-666666666666",
"message_id": "33333333-4444-4555-8666-777777777777"}
CLI: artifactbridge agents conversations cancel 22222222-3333-4444-8555-666666666666 \
--message-id 33333333-4444-4555-8666-777777777777
6. Stop a running turn
Stop asks the running turn to end. It takes the same IDs as Cancel. The result stop_requested is a request, not a confirmed end. Keep reading until the final turn frame. Reply text that the agent already wrote stays in the conversation.
MCP: artifactbridge_stop_agent_conversation_turn
{"conversation_id": "22222222-3333-4444-8555-666666666666",
"message_id": "33333333-4444-4555-8666-777777777777"}
CLI: artifactbridge agents conversations stop 22222222-3333-4444-8555-666666666666 \
--message-id 33333333-4444-4555-8666-777777777777
Refusals
A refusal has a code. A refused step writes nothing. The same codes come from the MCP tools and the CLI.
| Code | What it means | What to do |
|---|---|---|
unavailable | This deployment does not offer conversations. | Ask your administrator. Retrying does not help. |
not_found | The conversation does not exist, or it is not yours. | List your conversations and use an ID from the list. |
bad_request | An input is wrong: message_id is not a UUID, or the text is empty or longer than 20,000 characters. | Correct the input and send again. |
no_configured_cloud_runner | The agent needs a cloud runner, and the workspace has none. | Ask a workspace administrator to configure a cloud runner. |
no_credits | The workspace used its weekly agent credits. | Wait for the next week, or ask an administrator about the limit. |
usage_unavailable | The credit usage cannot be read now. | Try again later. |
no_tray_executor | The agent cannot take a conversation now, or you cannot use it. | Check that the agent is shared with you and online. Ask its owner. |
notice_required | The first message needs the acknowledged privacy notice. | Show notice.text to the person. After they agree, send again with the acknowledgment. |
turn_running | A turn of this conversation still runs. | Read until the turn ends, then send. |
executor_pinned | The executor that runs this conversation cannot take this turn. | Open a new conversation with the agent. |
turn_failed | Send: the turn could not start. Cancel: the cancel did not complete. | Try again with the same IDs. |
turn_not_found | Cancel or Stop found no cloud-runner turn for this message in the conversation. | Check the conversation ID and the message_id. |
busy | The queue is busy. | Try again with the same IDs. |
Recover safely
A refusal writes nothing. When a response is lost, you do not know if the step ran. Recover like this:
- Lost send response: send again with the same
message_idand the same text. Never use a new ID for the same message. The same ID gives the same turn back and starts nothing new. Then read. - Lost open response: list your conversations and reuse the new one before you open again.
- Lost Cancel or Stop response: run the same command again with the same IDs.
busyorturn_failed: try again with the same IDs.
Reference
The MCP tool reference and the CLI reference list every input and option.
artifactbridge_list_agent_conversations:artifactbridge agents conversations list --agent UUIDartifactbridge_open_agent_conversation:artifactbridge agents conversations open --agent UUIDartifactbridge_send_agent_conversation_message:artifactbridge agents conversations send CONVERSATION --text TEXT [--message-id UUID] [--acknowledge-notice]artifactbridge_read_agent_conversation:artifactbridge agents conversations read CONVERSATION [--after-turn N --after-seq N]artifactbridge_cancel_agent_conversation_turn:artifactbridge agents conversations cancel CONVERSATION --message-id UUIDartifactbridge_stop_agent_conversation_turn:artifactbridge agents conversations stop CONVERSATION --message-id UUID