When it happened
Alice joined her new team on March 1. Valid time records when that relationship applies, even if you enter it later.
A knowledge graph connects facts: who owns a project, which customer reported an issue, and how they relate. Minds keeps those connections and their history, so your agent can look beyond an isolated search result.
Knowledge graph
See who, what, and when. Follow the relationship back to the fact behind it.
Who owns the launch?
A name in a document is one detail. Connecting that name to the work makes it useful.
Alice changes teams in March, but your agent learns about it in April. Minds records both dates. Ask who managed Alice in March, or what your agent knew before the update. This is a bi-temporal graph: one timeline for the world, another for when the information arrived.
Alice joined her new team on March 1. Valid time records when that relationship applies, even if you enter it later.
The update arrived on April 3. Transaction time preserves when Minds recorded it, so you can reconstruct what was known at an earlier date.
Find a person, follow their relationships, or rank connected entities by importance. Use Cypher, a query language for graphs, to describe the connections you want to find. Named contexts, called microtheories, let you organize knowledge for a particular domain.
// Run server-side with credentials scoped to this Mind.
const endpoint = process.env.AKASHA_URL;
const capability = process.env.AKASHA_CAPABILITY;
if (!endpoint || !capability) throw new Error("Configure your Mind connection");
async function request(method: string, path: string, body?: unknown) {
const headers: Record<string, string> = {
"Content-Type": "application/json",
"x-akasha-capability": capability!,
};
if (process.env.AKASHA_TOKEN) {
headers.Authorization = "Bearer " + process.env.AKASHA_TOKEN;
}
const response = await fetch(new URL(path, endpoint), {
method, headers,
body: body === undefined ? undefined : JSON.stringify(body),
});
if (!response.ok) throw new Error("Mind request failed: " + response.status);
return response.json();
}
const { rows } = await request("POST", "/v1/graph/cypher", {
query: "MATCH (n:Person)-[r:KNOWS]->(m:Person) RETURN n.name, m.name",
});Create a cryptographic fingerprint for an imported batch and check its integrity later. Keep that check alongside source information, so your team can assess both the record and where it came from.
People, projects, and facts are nodes. The connections between them are edges. Both can carry properties and dates that describe when they apply.
Start with the people, projects, and relationships that matter to your work. Give your agent a history it can return to.