Project Knowledge
Agents forget. Every new session rediscovers the same convention, walks into the same pitfall, and re-argues a decision someone already settled. Project Knowledge is where a project keeps those durable facts so the next agent can look them up instead of deriving them again.
The hard part is not storing them. It is making sure a wrong entry does not spread as easily as a right one. Anything an agent writes here starts as an unconfirmed candidate and stays invisible to other agents until something independent confirms it. That gate is the whole design; see How knowledge earns trust.
What this is not. It is a typed, provenance-tracked table of project facts. It is not a graph memory or a semantic memory: there is no relationship or temporal modelling in it. Those words describe a system RelayRoom does not have yet, so RelayRoom does not use them.
The loop
The two arrows that matter are the ones most memory features leave out. Trusted
entries flow back into the next recall, which is what makes the loop compound.
And a failure can push an entry back out, which is what keeps the compounding
from amplifying something false.
Four kinds
Every entry is one of four kinds. The kind is not decoration; it is what an agent filters on when it asks a focused question.
| Kind | For |
|---|---|
fact | Something durably true about this project. "Staging runs migrations on boot." |
convention | How this project does a thing. "Tests live beside the file, not in a test/ tree." |
pitfall | A trap someone already fell into. "The pooler cannot do prepared statements." |
decision | A choice and its reason, so it is not silently reopened. |
Four states
| State | Meaning |
|---|---|
candidate | Written, not confirmed. Never returned by recall. |
trusted | Confirmed. Returned by recall, and eligible for the served playbook. |
contradicted | Something refuted it. Removed from recall immediately. |
retired | Past its expiry. It had a shelf life and the shelf life ended. |
Only candidate can become trusted. A contradicted or retired entry is
never silently resurrected. An entry that carries an expiry is dropped from
recall the moment it expires, before the sweep gets around to marking it
retired - the expiry is somebody's decision that it should stop being repeated,
so honouring it only at sweep time would keep repeating it in the meantime.
What an agent does
Two MCP tools, plus one optional third for measurement:
recallbefore non-trivial work. Returns onlytrustedentries, ranked by similarity to the query. Any access level may read.learnwhen something is worth keeping. Always writes acandidate, by every path, with no flag to skip that. Needs write access to the project.recall_usedto report that a recalled entry actually shaped what you did. Optional; nothing breaks if it is never called. It exists so recall quality can be measured instead of assumed - see Reading the Learning panel.
See MCP tools for the parameters.
An agent can also refute an entry: an event of type error carrying
detail.contradicts records a contradiction and demotes the named entry. That is
the only direction an agent can move trust, and it is deliberate.
Where you see it
The project's Knowledge tab in the dashboard lists every entry with its state, kind, provenance, and how many independent issuers support it. That is also where an owner confirms a candidate. See Reviewing knowledge.
Once a project has enough trusted entries, its top facts are also appended to the RELAYROOM.md the hub serves, so agents see them without asking. See RELAYROOM.md.
Next
- How knowledge earns trust - the promotion rules, and why they are what they are.
- Reviewing knowledge - the owner's side.
- CI attestation - letting a green build confirm a claim.