# Agent core concepts

Operade separates editable work from immutable history so teams can test changes without silently replacing what an agent is using.

## Agent, branch, draft, and version

- An **agent** owns its identity, branches, versions, and active version pointer.
- A **branch** has a tip version. Every new agent has a Main branch.
- A **draft** is the editable configuration for one user on one branch. It is not a version.
- A **version** is an immutable configuration snapshot created by publishing or another history operation.

Publishing advances the selected branch tip. Publishing Main also updates the agent's active version. Publishing another branch does not silently make that branch the active Main configuration.

If the branch tip changes after a draft starts, publishing reports a stale-draft conflict instead of overwriting the newer work. The dashboard can reset to the latest version or reconcile the draft.

## Configuration and conversations

The agent configuration contains behavior such as the prompt, first message, model, language, conversation settings, tools, and knowledge references. An open conversation uses the configuration snapshot selected when that conversation starts. Editing a draft does not rewrite an already-open conversation.

Use [test chat](/docs/agents/test-chat) to try a branch tip or your current draft. Test conversations are recorded as test-chat traffic and excluded from the agent's customer conversation statistics.

## Workspace knowledge

Knowledge documents belong to a workspace, not to one agent. An agent configuration stores references to selected documents. Publishing rejects a reference that is missing or not ready.

In automatic retrieval mode, Operade selects relevant chunks for each turn. In prompt mode, it includes the selected document content directly instead of performing per-turn retrieval. See [attach and retrieve](/docs/knowledge/attach-and-retrieve) for the operational differences.

Deleting knowledge updates current branch tips and drafts so they stop referencing the deleted document. Historical versions and conversation snapshots stay immutable. Read [manage and delete knowledge](/docs/knowledge/manage-and-delete) before a permanent deletion.
