Semantic Memory
Standing facts that float free of time: repo layout, project rules, user preferences, name-to-ID mappings. The agent just knows.
Think about how you know your team uses pnpm. You don't replay the pull request where that got decided — you just know it. That's semantic memory: standing knowledge that floats free of when it was learned.
What the agent just knows
Episodic memory is always pinned to a moment. Semantic memory is where the durable facts live — for our league-app example:
fact store
──────────────────────────────────────────────
project.root = ~/projects/cricket
app.meteor_root = meteor/league/
work.allowed_paths = [imports/api/, imports/ui/]
user "Buddy" → github: buddy-b
policy.implement = requires approval comment on the issue
These are the facts the agent should not have to rediscover: repo layout, project rules, the mapping from a human-friendly name to a GitHub assignee, the approval policy itself. This is exactly what your CLAUDE.md / AGENTS.md / memory files hold — standing facts and rules, true across many sessions rather than a record of one event.
Semantic memory can be a key-value store, a set of markdown notes, a profile database, a knowledge graph. As with episodic memory, the mechanism matters less than the job: user facts, project conventions, and current state — stored where the harness can inject them at the right moment.
One of those mechanisms is different in kind. Write the facts as a typed graph — entities, the relationships between them, and constraints on both — and the store stops being only something to retrieve from. It becomes something the harness can check a proposed action against: an order has at most one refund, a status is one of three values, a customer and a support rep are never the same party. That is the verification layer's reasoner, and semantic memory is what it reads. Facts you can only recall protect nothing; facts with a shape can refuse.
The maintenance problem
Semantic memory creates the most insidious failure mode in the stack, because facts look timeless and aren't.
Files move. Policies change. A stale fact isn't neutral — it's a plausible wrong answer sitting exactly where the right answer should be. So semantic memory comes with standing maintenance questions: what should be saved? updated? retired?
Even with the facts right, though, something is still missing. The agent knows the approval rule exists. Knowing a rule is not the same as knowing how to run the workflow that honors it.