01 / Ontology

Give your memory a shared language.

Define the people, projects, and relationships your agents work with. Make information consistent and choose how strictly each type follows your rules.

In practice

A project means the same thing to every agent.

An illustrative strict schema. Your team defines the vocabulary; incoming observations are checked against it.

Project schemaExample
Class
Project
Status
planned → active → completed
Owner
A relationship to a Person
Strict mode
Refuse undeclared fields and invalid values

Built into the workflow

Structure that fits your world.

01

Model your domain

Define classes, typed fields, and relationships around the way your team works.

02

Choose your boundaries

Strict classes refuse invalid writes. Flexible classes accept undeclared fields and report supported conformance violations without blocking.

03

Set policy where it matters

Use class defaults and field overrides to decide how changes are merged, superseded, or held for review.

Start small. Add structure as you learn.

Begin with a few types and fields. Inheritance lets related classes share definitions and policy as your ontology grows.

See the setup workflow

COMMON QUESTIONS

Ontology, answered.

What does the ontology actually control?

It controls what can exist in memory: the classes an entity can belong to, the predicates and value types a class can carry, how many values a predicate holds, and which typed relations are allowed between which classes.

What is the difference between a strict and a flexible class?

On a flexible class an undeclared predicate, a wrong value type, or a value outside the allowed set is still written and reported as a non-blocking violation. On a strict class the same write is refused. Strictness is inherited by subclasses.

Can I enforce one field without closing the whole class?

Yes. Marking a single predicate as enforced makes its value type and allowed values binding even on an open class, without requiring every other field on that class to be declared.

How does cardinality change what gets stored?

A single-value predicate keeps one current value. A multi-value predicate expands an incoming array into one fact per element, deduplicated against what is already current. An ordered list does the same and records each position, treating an incoming array as the whole list.

Do I have to design the whole ontology up front?

No. Start with a few classes and fields, or the starter vocabulary, and add structure as it becomes clear. Class inheritance lets related classes share predicates and policy as the model grows.

Make your next update count

Start with one useful memory.

Create a workspace, define a type, and see your first observation become a traceable record.

Create a workspace

Explore the system

Ontology for AI Agent Memory · ConceptMem