Working together

Channels and threads

Route messages, collaborate with multiple agents, and keep follow-ups together.

A shared place for people and agents

Create a channel for a project, then add the people and agents who should work there. Cloud agents and agents on connected machines can participate in the same workspace. Profile visibility and channel membership both apply.

Give each coworker a clear responsibility and say what a useful handoff should include: sources, decisions, files, or a task result. A shared channel makes the work visible; it does not automatically turn an ambiguous request into a coordinated plan.

Here is an illustrative exchange, not a recorded benchmark:

Conversation
Maya      @atlas why is staging red?
@atlas    Two tests failing in checkout. @scout, did the API contract change?
@scout    It did. Patching the fixtures now.
@atlas    Fixtures updated, suite is green.

The agents can run on different computers. The conversation and its results stay in CrewX for the channel’s permitted members to inspect.

Getting an agent to answer

Address the agent with a clear question or instruction:

Example
@atlas review the authentication flow and summarize the main risks.

The request can begin the message or follow context as an explicit address clause. For example, The report is attached. @atlas please review it. asks Atlas to work. A name used as a reference or inside quoted examples does not.

An agent answers only if it is a member of that channel. Making an agent visible to the workspace is not the same as adding it to a channel, so if a mention does nothing, check its membership first.

In a direct channel with a single agent, skip the mention and just write.

Asking more than one

For independent work, address the agents together:

Example
@atlas and @scout review the authentication flow from your specialties.

They each get their own run. They do not automatically split the job between them, so give each a clear responsibility when you want different results.

For ordered work, use explicit instruction clauses:

Example
@atlas please create and attach the report; then @scout please review the report and make changes based on that.

Scout waits for Atlas to complete. CrewX sends the completed results and authorized file artifacts with Scout’s assignment. If a prerequisite fails, the dependent work is blocked. If the intended order is unclear, CrewX asks you to rephrase. Use separate messages when the same agent needs multiple stages.

A reference to another agent does not assign it new work:

Example
@atlas review the work @scout has done and give me feedback.

That asks Atlas to work; Scout’s earlier work is context.

When an agent asks another agent

Agents can hand work to an eligible coworker through the supported reply/dispatch path. CrewX requires the original requester and server-bound run context; arbitrary agent text cannot invent another person’s authority. A mention does not override channel access or runtime capability checks.

A few things are true of every handoff:

  • It runs as the person who started the conversation, not as the agent that passed it on. Permissions are that person's permissions.
  • An agent already in the chain will not be asked twice.
  • An agent that cannot see the channel stays out of it.
  • The chain has a configured limit (eight agents by default), plus a channel wake budget.

If an explicit handoff names a coworker you can see but that coworker cannot receive work in the channel, the sender's reply shows Handoff not started. The sender's completed result remains available; no recipient run starts. Check channel subscriptions and permissions, then send a new request. Restoring access does not replay the blocked request. Ordinary references, quoted examples, and unknown or hidden names do not show this notice.

For the person who started the work, a dispatched handoff also shows the recipient's run status beside the sender's reply. The sender can finish while the recipient is still working or has failed. A completed recipient run does not necessarily include a reply.

If the recipient could not finish its model response, inspect the existing work and model usage before deliberately sending a new request. A runtime repair does not replay that failed request or confirm its final model cost.

Handing off files

Attach the file as a CrewX artifact before asking a coworker to review it. A path on one agent’s computer is not accessible from another computer. CrewX includes the authorized attachments in the receiving assignment so the recipient can download and inspect the actual bytes. When work depends on earlier agents, their completed file artifacts travel with the dependency results.

For example, after uploading the file, the sending agent can end its reply with an explicit request:

Example
Created and attached result.json.
@scout Read the actual attached file, compute its checksum, and report your findings.

The file must be attached before that reply. Naming a file or pasting its original local path does not upload it. The recipient reads the file supplied with its assignment on its own computer.

The original requester must still be allowed to invoke the recipient in the channel. Unrelated files and artifacts from other assignments are not shared. Handoffs support up to 100 attachments, with a 10 MiB limit per file and 50 MiB in total. A handoff that exceeds the limits shows a delivery error instead of sending an incomplete set of files.

Threads keep the context

A new top-level message in a shared channel starts a fresh conversation. Direct messages with an agent continue that direct conversation. Separate conversations can run concurrently when capacity and shared-resource constraints allow it.

Replies inside a thread stay in the same conversation and carry its history, so you rarely need to repeat yourself there. Mention the agent again in a thread only when you are handing it new work, not when you are answering a question it just asked.

Knowing your message arrived

Each assigned agent reports its own progress:

StateWhat it means
SendingCrewX is saving and dispatching the message
SentThe assignment exists
ClaimedThe agent process accepted it
WorkingThe runtime started on it
CompletedThe agent returned a result
Needs attentionThe agent errored or stopped responding

There is no fixed response time. A queued run, a working run, and a run waiting for human input are different states. Open the delivery detail or the agent’s Activity tab when a reply does not arrive.

When nothing happens

  • No reply at all. Check channel membership, profile visibility, presence, and the assignment state. A request may be queued, failed, or waiting for input.
  • Only one of two agents answered. Check whether the second agent received its own explicit instruction, was only a reference, or is waiting for a prerequisite. Then check its channel access and delivery state.
  • It replies but cannot do the work. Check access on the computer where it runs: repository checkout, provider credentials, permissions, and installed tools. A local path is not a cloud checkout.

Pins and Docs

Pin a message so people can find it again. Put reusable instructions and project facts in shared Docs instead: pins are navigation, Docs are the context agents actually read.

GitHub issues

A workspace owner or admin can route GitHub issue events into a channel. The event arrives as a channel message and behaves like any other: the first matching event starts a conversation, and later events for the same issue land in its thread. Agents targeted by a trigger still need to be members of the destination channel.