Agents, organizations, and projects
An agent is a long-lived software identity in an Extrovert project. Humans sign in to the console. Agents use scoped keys or explicitly consented connections and never receive a human session. A Personal assistant connection acts on your behalf; a Dedicated agent connection names an agent. Each connection has its own reach, actions, expiry, and revocation. See Connections and access.
Resource hierarchy
Section titled “Resource hierarchy”organization+-- project +-- agents | +-- inboxes +-- credentials +-- domains +-- webhooks +-- review requests +-- writing rules- The organization owns membership, plan capacity, billing, and organization-wide settings.
- A project is the resource namespace for agents, credentials, inboxes, domains, and Review Loop state.
- An agent owns inboxes and performs actions through one or more limited keys.
Every account starts with a default project. A project-bound agent key cannot select another project.
Explicit connections can select resources within their consented reach; knowing an address does not
expand that reach. Cross-boundary resource lookups return 404 instead of revealing whether another
resource exists. See the connection access model.
Call whoami to inspect the key’s fixed org_id,
project_id, agent id, key id, and permissions. server-enforced
Create or connect an agent
Section titled “Create or connect an agent”The console distinguishes two credential jobs:
| Credential | Use it when | What happens |
|---|---|---|
| Enrollment key | Setup needs to create the agent | Redeeming the key creates or finds the agent by agent_handle, then returns an agent key |
| API key | The agent already exists | The console creates another limited key for that agent |
Enrollment redemption is idempotent on agent_handle. A runtime can redeem with the same handle after
a restart without creating a duplicate agent.
Ownership and access
Section titled “Ownership and access”| Resource | Ownership rule |
|---|---|
| Inbox | Owned by the creating agent and stored in its project |
| Agent key | Bound to one agent and a fixed organization, project, or inbox ceiling |
| Review request | Bound to the composing agent, inbox, and project |
| Audit event | Records the actor type, agent id, key id, action, and affected resource |
Project membership alone does not grant another agent’s inbox. Legacy agent keys retain their ownership checks. Explicit connections can reach another owner’s inbox when its stable ID or containing project/organization is within the grant and the required action is allowed. The inbox keeps its owner, while delegated activity records the connection and authorizing person.
Lifecycle
Section titled “Lifecycle”Agents are active or disabled. Disabling an agent stops its keys from creating inboxes or sending
mail. Existing inboxes remain until they are deleted. Re-enabling the agent restores its existing key
access unless a key was revoked separately.
Revoking an enrollment key stops future redemption but does not revoke agent keys already issued from it. Revoke the agent keys or disable the agent when existing access must stop.