Skip to main content
Formation separates an operator’s configured agents from each agent’s observations and execution history. PostgreSQL stores both, with explicit ownership boundaries.

Agent configuration

An agent exists before it has spoken to anyone. Its configuration therefore does not require an Actor or Conversation row.

Conversation graph

How the physical schema expresses it

connectors, actors, and connector_identities carry runtime_agent_id. Conversations inherit perspective through their connector; message events inherit it through their conversation. Scoped queries validate those relationships rather than treating a caller-supplied conversation or actor ID as sufficient authority. Two agents observing the same external event have separate graph records. Within one conversation, (conversation_id, external_message_id) deduplicates connector retries without replacing the original body. A message’s engagement disposition is specific to the observing agent. Identity verification associates existing accounts at read time. It does not rewrite historical actors, memory subjects, or message authors. See identity linking.

Memory and disclosure

memory_entries holds current state; memory_entry_revisions records creates, amendments, and forgetting. Entries distinguish the subject of a fact from its source. Revision evidence and message_source_evidence retain audience and derivation restrictions. Sharing grants apply to an exact revision and audience. Memory indexes and conversation search documents are derived projections. Canonical text and current eligibility are checked in PostgreSQL before use. See versioned state and memory privacy.

Execution and background work

A run’s status and stop reason explain how one attempt ended. A commitment’s status explains the longer-lived objective; ending a run does not by itself complete that objective. worker_tasks is an internal storage foundation without an enabled executor. There are no implemented WorkGraph entity tables or DAG scheduler, and no dedicated organization-profile entity. Older design documents and reserved schema vocabulary must not be read as live product features. The authoritative schema is the applied migrations (repository), with scoped queries in db/queries (repository). For write ordering and migration practices, see persistence.