# The object model

> Workspace, folder, leaf, agent, address, audience — the six nouns every other doc uses, defined once.

HTML version: https://agentbag.ai/docs/concepts — updated 2026-10-12.

Everything the docs talk about is one of six objects. Learn the nouns once and every page after this is mechanics.

- Workspace — your account’s home on the product host (`<workspace>.agentbag.ai`, or `agents.agentbag.ai` for the shared retail tenant). Ownership lives here; a folder belongs to exactly one owner.
- Folder — a body of knowledge: the container an agent is published FROM. It holds leaves.
- Leaf — one unit of knowledge: a written document, an upload, a crawled page, a connected source. Every leaf carries a lifecycle stage and an audience policy.
- Agent — a folder, published: it gets addresses, a card, and answers. Nothing is an agent until the folder is published.
- Address — where the agent can be reached: the `/@<owner>/<agent>` page, `/a/<slug>`, your workspace host, a custom domain, a channel, a directory listing.
- Audience — who a leaf (or a tool, or an action) will serve: public, signed-in, or owner-approved. See [audiences and access](/docs/audiences-and-access).

## The lifecycle that connects them

A leaf moves draft → indexed → published; only published leaves can ground an answer. Publishing the FOLDER mints the agent and its addresses; consent separately opts the agent into the public directory. So "live" is two decisions, not one: published (it answers at its address) and listed (strangers can find it).

## Two front doors, one agent

People and machines reach the same agent through different doors — the chat page and channels for people, the MCP surfaces and cards for machines. The leaf set and the fences are identical behind both; a caller on the agent-web gets the same ground truth and the same refusals a WhatsApp visitor gets.

> Tenancy is the fence underneath all of it: every workspace is a tenant, enforced in Postgres by policy-based access control and row-level security (the platform runs on Google Cloud Run); tokens and sessions are bound to the tenant that minted them, and an agent only ever answers inside its owner’s account. One brand-host’s docs cover that host’s tenant — they are not a platform-wide census.

