Use caseEmployee support

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.

01 What breaks

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>.

01

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.

02

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.

03

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.

02 What it’s made of

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.

Dominant · Valid time

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.
Shared memory

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.

Episodic memory

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.

Decision context

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.

03 What feeds it

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.

Install
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.

Store an experience
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.

Recall it
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.

04 Where it runs

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.

Run it
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.

05 The rest
Try it

Bring the workflow that gets it wrong.

One command starts a local instance with its own volume. The changelog carries every release behind it.