Agents that answer from the policy in force today
HR and IT answer the same forty questions all year. The answers change mid-year — and the old ones stay on the intranet, well written and highly ranked.
The wiki is a source of pages, not a source of truth
Every failure here is the same shape: two things are true, and nothing in the stack records which one is true <em>now</em>.
The superseded page still ranks first
The leave policy changed in April. The March page is still indexed, still clearly written, still the closest match for the question. Retrieval has no signal that one document replaced the other, so the agent answers confidently from the version that was withdrawn.
Right answer, wrong date
An employee asks what they were entitled to when they filed in February. The agent answers with today’s entitlement. Both facts are true; only one is responsive. Without a record of when each was in force, the question cannot even be represented.
Approval sits with whoever is covering
The named approver is on leave. The org chart says one thing; the last three approvals say another. The delegation is real, observable in the history, and written down nowhere the agent can reach.
Mostly valid time. Then three others.
Every application built on CortexDB is a different mixture of the same five memory jobs. That mixture is what makes this a different piece of software from the one next to it, even though the infrastructure underneath is identical.
Every memory carries when it was true and when you learned it
Two clocks, not one. A revision does not overwrite what it revises — it records that the earlier version stopped being in force, and when. That is what makes “as of February” a question the system can actually answer.
- Ask what was true on a date, not just what is true.
- Revisions keep their provenance instead of replacing it.
- Expired policy never reaches the agent.
One policy, every desk
What the IT agent learns about the new VPN rule, the onboarding agent already knows. Scoped by department, not duplicated per bot.
The last three approvals are evidence
Who actually signed off, and what happened after, stay attached — so the pattern of who is really covering becomes retrievable.
Similar wording is not the same policy
Selection weighs validity and state, so the withdrawn page cannot win on phrasing alone.
That is four of the five. The fifth — persistent memory, where an individual’s preferences and corrections survive the session — belongs to assistant and commerce agents. Same engine, different mixture.
Where policy actually lives
Not in one system. It lives in the handbook, the announcement thread that amended it, the ticket where the exception was granted, and the calendar that says who is out.
01 Wire the sources
Vendor connectors ship as extras on the connector package.
pip install 'cortexdb-connectors[slack,notion]'
02 Write the amendment with the date it took force
observed_at is not the time you ingested the document. It is when the thing was true — which is what makes the earlier version recoverable rather than lost.
curl -X POST http://localhost:3141/v1/experience \
-H 'Content-Type: application/json' \
-d '{
"scope": "ws:people/policy",
"modality": "observation",
"content": {
"kind": "text",
"text": "Carry-over leave cap raised from 5 to 10 days, effective for the FY26 cycle. Supersedes the FY25 cap."
},
"context": { "observed_at": "2026-08-27T09:14:00Z" },
"idempotency_key": "notion:handbook:leave-policy:v7"
}'
03 Recall the version in force
Facts and beliefs come back with the validity that was recorded alongside them, so the answer can cite which version it used.
from cortexdb.v1 import V1Client
client = V1Client(api_url="http://localhost:3141", actor="agent:people-desk")
pack = client.recall(
scope="ws:people/policy",
query=employee_question,
view="holistic",
include=["facts", "beliefs", "events"],
budgets={"max_tokens": 800},
)
reply = llm.respond(employee_question, context=pack["context_block"])
pip install cortexdbai
or npm i cortexdbai — both ship the same client.
Full endpoint reference in the
docs.
Employee records are the reason this runs on your side of the line
Salary bands, medical leave, performance notes, grievance threads. An employee-support memory accumulates the category of data that most companies will not let leave the building, and that most regulators have an opinion about.
CortexDB is a single container. It runs on your own hardware, inside your VPC, or air-gapped — with the embedding and generation calls pointed at a local model if nothing may leave at all.
docker run -d --name cortexdb -p 3141:3141 -v cortexdb-data:/data cortexdb/cortexdb:latest
Deployment options, model routing and the enterprise notes are on the download page.
The same infrastructure, a different mixture
Each of these leads with a different memory job, pulls from a different set of sources, and needs a different call. <a class="ul" href="../index.html">All of them, by job</a>.
Bring the workflow that gets it wrong.
One command starts a local instance with its own volume. The changelog carries every release behind it.