Documentation menu

// 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_task or artifactbridge 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_turn back as after_turn and next_seq as after_seq. Give both or neither.
  • Read again while has_more is 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.

CodeWhat it meansWhat to do
unavailableThis deployment does not offer conversations.Ask your administrator. Retrying does not help.
not_foundThe conversation does not exist, or it is not yours.List your conversations and use an ID from the list.
bad_requestAn 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_runnerThe agent needs a cloud runner, and the workspace has none.Ask a workspace administrator to configure a cloud runner.
no_creditsThe workspace used its weekly agent credits.Wait for the next week, or ask an administrator about the limit.
usage_unavailableThe credit usage cannot be read now.Try again later.
no_tray_executorThe 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_requiredThe first message needs the acknowledged privacy notice.Show notice.text to the person. After they agree, send again with the acknowledgment.
turn_runningA turn of this conversation still runs.Read until the turn ends, then send.
executor_pinnedThe executor that runs this conversation cannot take this turn.Open a new conversation with the agent.
turn_failedSend: the turn could not start. Cancel: the cancel did not complete.Try again with the same IDs.
turn_not_foundCancel or Stop found no cloud-runner turn for this message in the conversation.Check the conversation ID and the message_id.
busyThe 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_id and 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.
  • busy or turn_failed: try again with the same IDs.

Reference

The MCP tool reference and the CLI reference list every input and option.