STEP 3 OF 8
Brain
Brain & Council (/brain in the sidebar) is a RAG chat interface over the entire Customer
Knowledge Graph you built in Step 2. It has three tabs: Ask, Council, and Insights.
Ask
Type a question and Company Brain embeds it, semantically searches CKG nodes, retrieves the
matching context, and calls Claude with a Company Brain system prompt. The response is grounded —
every answer carries sources back from the graph, not a free-floating claim.
curl -X POST https://your-control-plane-host/api/v1/brain/chat \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"message": "What vendors have SOC 2 findings open?"}'
The response shape (app/services/company_brain.py::chat):
{
"answer": "...",
"sources": [ /* CKG nodes/edges the answer drew on */ ],
"conversation_id": "...",
"context_nodes": 12,
"context_edges": 8,
"lane": "...",
"route": "...",
"trace_id": "..."
}
If the graph has nothing relevant yet, the answer says so explicitly rather than guessing — "I don't have enough knowledge graph data to answer that question. Try extracting more documents through the Connector Sync or uploading documents to the Vault." This is the loop back to Steps 1 and 2: an empty or thin answer here means go connect and ingest more.
There's also a scoped variant, Ask the Company (POST /api/v1/brain/ask-the-company), which
routes the question to the narrowest relevant domain instead of the whole graph — the answer comes
back "as Finance" or "as IT," citing only nodes inside that domain's sub-graph scope.
Council
The Council tab runs multi-persona deliberation: several named perspectives (seeded, or your
own via POST /api/v1/brain/council/personas) argue a question and converge on a recommendation
with a rationale, instead of a single model voice.
curl -X POST https://your-control-plane-host/api/v1/brain/council \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"question": "Should we migrate the primary database to Snowflake?"}'
Pass the conversation_id the first response returns on follow-up calls in the same session to
keep the deliberation "in council mode" rather than degrading to a single answer.
Insights
The Insights tab (GET /api/v1/brain/insights) is automated, not a chat — growth trends,
confidence distribution across the graph, anomalies, drift events, and review-queue depth. It's
the fastest way to see whether your knowledge graph is healthy without asking it anything.
Brain answers are citation-grounded only when there's something in the graph to cite. An agent's
own /api/v1/agents/{agent_id}/chat endpoint (see
Getting Started) is different: it answers from the
model and the agent's stored system prompt alone, with no CKG retrieval. Use Brain — not a plain
agent chat — for anything that needs to cite ingested knowledge.
What's next
Step 4 — Agents: the workforce roster, and how a healthy knowledge graph starts suggesting pre-built agents for you.