Categories › AI & Agents › Agent memory & context
Long-term memory for AI agents: a bitemporal knowledge graph with cited answers.
Remote server: your requests and data go to brain.inite.ai. Claude Code: claude mcp add --transport http inite-brain https://brain.inite.ai/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
about_brain — What this server is and what it can do, before you connect, and whether the server's own models (embeddings, chat) are currently available. how_to_connect — The two ways to authenticate, and what each is for. Reads nothing and stores nothing.search_knowledge — Semantic search over the company knowledge graph: the facts the query is about, the links between their entities and what was left out. Applsearch_multi_hop — Planner-LLM decomposes the query into ≤ maxHops anchored sub-queries; later hops are anchored to the running entity set. Built for questionsgraph_retrieve — Resolves the named entities by canonical name, walks their 1-hop neighbourhood over knowledge_edge, and returns facts across seeds ∪ neighbosynthesize — Runs hybrid search then feeds the retrieved facts to a generator LLM that produces a citation-bearing answer (each claim ends with [factId])memory_diff — Returns everything brain learned, unlearned, or replaced between two ISO 8601 cursors [from, to). createdFacts = new active facts; retractedget_entity_profile — One entity: canonical name, type and what brain holds about it now; detail "full" adds externalRefs, the ids of its records in the originatiget_entity_timeline — Chronological audit of all facts brain has learned about this entity, including retracted ones. Useful for "what did we know when" investigasummarize_entity — Returns a short one-line briefing about the entity — name, type, the most-confident active facts, external refs — suitable for dropping intoget_competing_facts — Returns facts in COMPETING status — those the conflict resolver couldn't auto-supersede because two same-predicate bitemporal facts overlap detect_contradiction — Dry-run preflight against fn::resolve_fact. Answers "if I were to record this fact right now, what would the resolver decide?" without writiget_fact — Read a single fact as stored — predicate (aspect), object (statement), confidence, validity window, source attribution (vertical / recorder get_fact_provenance — Return the grounding provenance behind one fact: the verbatim conversation turns it was derived from (episodes, chronological, with char-spafind_related_entities — Get entities connected to the given one via the knowledge graph.match_procedure — Cosine-matches procedural memory (curated 'how to' patterns the operator recorded) against a free-text context query. Returns top-K procedurlist_procedures — Paginated listing of procedural memory for admin/review UIs. Sorted by priority ASC, createdAt DESC. Set includeRetired=true to see soft-delsearch_communities — Cosine-matches the query against topic-community summaries — the coarse retrieval scope. A community is a cluster of related entities (labellist_communities — Paginated listing of topic communities, largest first. Each row carries a label, a rolled-up summary, and the member count. Gives the knowlefind_entity_communities — Returns the topic communities a given entity is a member of. Places an entity in its broader context — which clusters / themes it participatwhy — Return the design decisions, rationale, invariants and gotchas recorded against a code anchor — the non-derivable engineering "why" a parserrecall_decisions — Find recorded design decisions / rationale / invariants / gotchas by NL topic ("why do we resolve facts through one gateway?"), across ALL cget_source_reputation — Return everything brain knows ABOUT a source (not its facts): the operator-declared identity (type, authLevel — authority in conflict resoluworkspace_status — The tenant this credential writes to (companyId, its display name, whether it is a personal workspace), what is already in its memory (entitrecord_fact — Records one fact about an entity directly; the memory settles it against the facts it holds (INSERTED / SUPERSEDED / COMPETING). Most facts link_entities — Insert an edge between two entities. `kind` is the edge type — `identity_of` merges the `from` entity into `to` (cross-vertical identity recretract_fact — Mark a fact as no longer believed. Cascades to facts derived from this one. Does not delete; the row remains for audit.record_procedure — Record a 'how to' pattern that is surfaced when a similar context appears later. trigger = the context phrase the rule should match against retire_procedure — Mark a procedural memory row as retired (sets retiredAt). A retired procedure is no longer matched or listed by default. For a rule that no record_decision — Capture the non-derivable engineering "why" about a code location: a design decision, its rationale, an invariant that must hold, or a gotchtake_memory_work — Returns the next batch of work the memory left for a connected model, in this order: predicate_semantics (new attributes: one value at a timsubmit_memory_work — Stores a model's JSON reply to a batch of memory work, with its work token. The server applies it with its own code: extraction replies are Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.