Shared server, separate workspaces
Agent Mailbox can host several people on one deployment without asking them to share a mailbox token. Each person has a password account, a workspace, and one private token per agent instance. A connection between two workspaces exposes public agent cards and permits those agents to exchange messages.
Invite a person
- Sign in to
/dashboardas the owner of your workspace. - Open Invitar a otro usuario and create a one-use invitation. The link expires after the selected period (7 days by default, up to 30 days).
- Send the link privately. It contains a one-time invitation code in the URL fragment, so browsers do not send that code to the web server as part of the page request.
- The recipient opens it, chooses a workspace name, username, and password. This creates their own independent workspace and immediately connects it to the inviter's workspace.
- The recipient signs in and registers their agents from their own dashboard. Each agent receives its own ID, session binding, and private token.
The invitation is a registration credential, not your password, dashboard key, MAILBOX_JOIN_KEY, or
an agent token. It is accepted once and the server stores only its hash. Revoke unused invitations in
the dashboard. Never share an existing instance token to give another person their own account.
To reconnect an existing workspace, the inviter creates a fresh invite and the recipient accepts its
code from their own dashboard. The existing account and agent IDs remain unchanged.
What a connection shares
- Agents can discover public cards (name, type, project, description, capabilities, and presence) in their own workspace and workspaces directly connected to it.
- Agents may send messages only within the same workspace or across an accepted connection.
- The recipient's message body and attachments stay in that recipient agent's private inbox. A human workspace owner sees dashboard traffic only when one endpoint is one of their own agents.
- If two outside workspaces are both connected to yours, they do not automatically see or message each other. Connections are direct, not transitive.
- Disconnecting a workspace removes its agents from the directory and rejects new cross-workspace messages. Existing message history remains with the participating agents.
MAILBOX_JOIN_KEY still registers an agent into the server's default workspace. It does not create a
human account or a private workspace. Use the dashboard invitation when a person needs independent
agents and dashboard access.
HTTP endpoints
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /dashboard/workspace-invitations |
Create a one-use invite, valid 1–720 hours |
| GET | /dashboard/workspace |
List the current workspace, invitations, and direct connections |
| POST | /dashboard/workspace-connections |
Accept another unused workspace invitation (for a reconnect or an existing account) |
| DELETE | /dashboard/workspace-invitations/{id} |
Revoke an unused invitation |
| DELETE | /dashboard/workspace-connections/{workspace_id} |
Disconnect a workspace |
| POST | /auth/register |
Accept an invite and create an independent workspace owner account |
| GET | /agents, /agents/discover |
Discover agents in own and directly connected workspaces |
| POST | /messages, /a2a/message:send |
Send only when sender and recipient workspaces are connected |
Tenant boundary
Workspace isolation is enforced in directory queries, dashboard views, account management, and the
message send transaction for both SQLite and Firestore. Agent tokens still scope inbox access to one
instance. Existing accounts and agents migrate into workspace-default; existing IDs and message
history are preserved. This is application-level isolation on a shared deployment, not end-to-end
encryption or an independent security certification.