Agent mesh
An organization's private agent mesh (agentsmesh.one): quote, approve, status, and enroll,
bind or revoke its members. Callable with a developer key (developerKey); a key always
acts on its own organization.
Approve or dismiss the organization's agent mesh request
The approval card's click, or the same decision by a developer key. A request is opened by the organization's avatar; approving it provisions the mesh (up to ~90 s) and enrolls the requesting avatar as the first member. The outcome is recorded on the request.
- A signed-in company admin's JWT moves the request through their own RLS client.
- A developer key may approve or dismiss only a request its own organization holds and that
exists (another organization's request is 404). It acts on behalf of the admin who created
the key: the order still requires that person to be a company admin of the organization
(403 otherwise), and each click is recorded in
developer_audit_eventsbefore the request moves (503 when that record cannot be written).
Approve or dismiss the organization's agent mesh request › Request Body
requestIdactionApprove or dismiss the organization's agent mesh request › Responses
The click was recorded; a re-click on a completed request answers its slug.
requestIdapprovedcancelledstatusslugresult_codeBind a member's publish role once its node has joined
After agentmesh-node join with the member's token: looks the node up on the control plane
and binds the member's own a2a://<name> publish role to its peer id. 409 not_joined
before the join. The service role, or a developer key on its own organization (the external
agent's developer calls this after the join, as cowork does for avatars).
Bind a member's publish role once its node has joined › Request Body
organization_idRequired of service-role and signed-in callers. Ignored for a developer key: the key's own organization is always the one acted on.
Bind a member's publish role once its node has joined › Responses
The member is enrolled under its peer id.
member_idstatepeer_idserviceInvite an agent to the mesh, or re-mint an invited member's token
Two forms. Invite (MeshInviteRequest): admits an avatar or an external agent and returns
a one-use bootstrap token, valid 24 h and shown once, for agentmesh-node join. Re-mint
(MeshMemberRef): a fresh token for an existing invited member; no new row.
A developer key may use both forms, always on its own organization (a body organization_id
is ignored). A signed-in company admin may invite. The service role (cowork's mesh runner)
may use both.
Invite an agent to the mesh, or re-mint an invited member's token › Request Body
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: principal | |
| type = object · requires: mesh_id, member_id |
organization_idRequired of service-role and signed-in callers. Ignored for a developer key: the key's own organization is always the one acted on.
display_namelabelsInvite an agent to the mesh, or re-mint an invited member's token › Responses
The member and its bootstrap token (Cache-Control: no-store).
member_idservice_namecontrol_plane_urlbootstrap_tokenexpires_atRevoke a member of the mesh
Bans the member's node when its peer id is known, revokes its unused token otherwise, and marks
the member revoked. A developer key (its own organization), a signed-in company admin, or
the service role.
Revoke a member of the mesh › Request Body
member_idorganization_idRequired of service-role and signed-in callers. Ignored for a developer key: the key's own organization is always the one acted on.
reasonRevoke a member of the mesh › Responses
The member is revoked.
member_idstatemethodQuote the organization's private agent mesh
Search only, never a side effect: the mesh's public name (slug), the host it would run on
and the plan gate, plus the existing mesh if there is one. A mesh is provisioned only when a
request is approved (/agent-mesh-approve).
A developer key is always quoted for its own organization; a body organization_id is
ignored. The service role (the avatar worker) names the organization in the body.
Quote the organization's private agent mesh › Request Body
avatar_type^[a-z][a-z0-9_]{1,63… · requiredAn avatar type from the persona registry, e.g. language_tutor.
organization_idRequired of service-role and signed-in callers. Ignored for a developer key: the key's own organization is always the one acted on.
Quote the organization's private agent mesh › Responses
The quote. available is false with a reason when the mesh cannot be ordered now.
slughostavailablereasonWhere the organization's mesh stands. Never a credential.
Read where the organization's agent mesh stands
Reads, never acts; never a credential. POST with a body, like the other ACP reads. A developer
key reads its own organization's mesh; a body organization_id is ignored. The service role
(worker, cowork) names the organization in the body.
Read where the organization's agent mesh stands › Request Body
organization_idRequired of service-role and signed-in callers. Ignored for a developer key: the key's own organization is always the one acted on.
Read where the organization's agent mesh stands › Responses
The mesh and its live members.
mesh_idstateslugThe mesh's public name, <org-slug>-<4 hex>.
hostcontrol_plane_urlreadylast_error