Skip to main content
Help · Ask-KG

Ask the graph instead of the chat

Back to help

The chat pane has two tabs on the same project graph. Chat is for telling OpenMind about your project: what you write there becomes nodes, and its replies carry no sources. Ask the graph (Ask-KG) is for questioning your graph, and its answers come with sources. Switch between them in the tab bar at the top of the workspace's chat pane; on a phone, where the workspace shows one pane at a time, in the switch above it, next to Map. When a chat message reads like a question, the reply has a link under it, “Ask your graph instead (answers with sources)”, that opens Ask the graph with your question filled in and ready to send.

Chat vs Ask-KG — when to use which

Chat is for telling OpenMind about your project: talk through a decision, document a risk, describe a new entity. Its replies come from the model alone and carry no sources. Ask the graph is for questioning your graph ("what's our current strategy on X?", "who's responsible for the API rewrite?", "summarise the open risks"), and its answers come with sources. Switching mid-conversation is fine; Ask-KG neither reads nor adds to the conversation — its recent questions are kept in this browser.

How retrieval works

Each Ask-KG question runs a BFS subgraph walk (depth 2, capped at 40 nodes) from seed nodes: the ones most similar to your question when embeddings are available (on the hosted service that takes an OpenAI key), joined by the nodes whose name or summary contain your question’s words while some nodes of the project have no embedding yet. Without embeddings it starts from those nodes alone, and from the newest nodes if none matches. The model receives the subgraph as structured context, then answers. The answer's footer lists the nodes the answer cited, so you can check which entities the model leaned on.

What [uncertain] means in answers

Nodes extracted with confidence below 0.6 reach the model tagged [uncertain], so the answer can tell you: "I used this, but the underlying entity isn't well-formed yet — refine it in Chat if it matters." The source chips don't carry the tag; click a chip to jump to its node in the mindmap pane. To see a node's confidence, search for it in the mindmap pane and click the result.

Source-node attribution

Every Ask-KG answer ends with the source nodes it cited — only those, not everything the walk surfaced. If your graph covers only part of the question, the model is told to answer that part and say in plain words what the graph doesn't cover; that answer is still shown, with the nodes it cited. That is the auditability promise: an answer from your graph always carries its sources. One that cites nothing from your graph is not shown; you get the refusal instead, which offers a separate answer from the model's general knowledge, clearly labelled as not from your graph. The model is told to cite a node for every claim, so if a sentence isn't backed by one of the listed nodes, treat it as model knowledge, not project knowledge — usually a sign to send a Chat message that locks the claim into the graph.

When a local model answers: the claim check

Citing a node does not prove the node says what the sentence says, and small local models get this wrong more often than large cloud ones. So on a self-hosted OpenMind, an answer from Ollama or LM Studio goes back to the same model once it is complete, with each cited sentence and the nodes it cites. A sentence that is not found there is marked "not found in the cited node", and an answer none of whose cited sentences holds up is marked "could not be verified against the graph". Nothing is removed from the answer. Sentences without a citation are not checked, nor are sentences that only say what the graph does not cover. If the check fails or takes too long, the answer stays as it is and says it was not checked. The operator can turn the check on for every provider, or off (ASK_CLAIM_CHECK).

Ask-KG works best on projects with at least 20-30 nodes; below that, retrieval often finds too little to stand on, and then the answer covers only part of the question, or is a refusal rather than a guess. That is deliberate: an answer that cites nothing from your graph is never shown — if Ask-KG can't ground an answer in your graph, it says so. The one exception is an answer you ask for: under a refusal, a button gets you one from the model's general knowledge, labelled as not from your graph, without sources, and not saved. Send a few messages first, then ask.