From scattered information to connected answers.
Clarionn builds a knowledge graph from your documents and keeps it up to date. So answers hidden across files become easy to find.
Benchmarked
90%
Search accuracy across different domains.
Medical · Legal · Literature · Finance
Evaluated on academic benchmarks including GraphRAG-Bench, HotpotQA, and T²-RAGBench.
- Plug and play. Builds the graph from your documents.
- No maintenance. Edits, deletions and duplicates handled.
- Backed by evidence. Every answer links to its sources.
Building the graph is just the beginning. Maintaining it is the challenge.
Build it yourself
16 components to build and maintain
6 prone to breaking in production
From files to answers in five steps.
1Upload
Send your knowledge base.
Clarionn reads them, pulls out the facts and adds them to the graph.
# export CLARIONN_API_KEY=cln_sk_... from clarionn import Clarionn cl = Clarionn(workspace_id="ws_7c31a0") files = ["company_openai.md", "person_mira_murati.md"] for path in files: report = cl.files.upload(path) cl.files.wait(report.id)

2Ask
Ask a question that spans multiple files.
This answer joins three companies and five founders from different documents.
answer = cl.query( "Who founded Anthropic, Safe " "Superintelligence and Thinking " "Machines Lab, and what roles did " "each founder hold at OpenAI before?" ) print(answer.text)
3Check
See the evidence behind it.
Each answer carries its source passages. Or send the ranked passages to your own model.
for c in answer.citations: print((c.content or "")[:80]) # or just the ranked passages hits = cl.retrieve( "Who founded SSI?", k=3) for p in hits: print(p.score, p.content[:80])

4Explore
Use the graph directly.
Find an entity, walk its connections, or ask how two entities link.
murati = cl.entities.search( "Mira Murati").data[0] openai = cl.entities.search( "OpenAI").data[0] around = cl.entities.connections( murati.id, hops=2) links = cl.relationships.paths( murati.id, openai.id)
5Inspect
A data model you never have to design.
Clarionn works out the kinds of things your documents describe, and it updates them as new files arrive.
tree = cl.ontologies.list() for cls in tree.walk(): print(cls.class_type, cls.name)

Works with the tools you already use.
Python SDK
Available on request. Sync and async clients.
from clarionn import AsyncClarionn answer = await AsyncClarionn().query(q)
LangChain and LlamaIndex
Drop-in retrievers for both frameworks.
from clarionn.integrations.langchain \ import ClarionnRetriever docs = ClarionnRetriever(k=8).invoke(q)
MCP server
Give your agents the graph as a tool.
# point your agent runtime at:
python -m clarionn.mcpnetworkx export
Take the graph out and analyse it yourself.
g = cl.graph.fetch(limit=500).to_networkx()
nx.degree_centrality(g)