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.