kglite-docs¶
Agent-first knowledge base for documents. Ingest PDFs, Office files, Markdown, HTML, or images; chunk + embed them with BAAI/bge-m3; cluster, tag, summarise, fact-check, translate, and review them β and serve the whole thing to AI agents over MCP.
Built on kglite (storage + vector search + clustering) and mcp-methods (MCP framework).
Why this and not generic RAG?¶
Most "RAG libraries" hand the agent search(query) β list[chunk] and stop. kglite-docs treats the corpus as a living knowledge graph that records who did what β and gives the agent typed tools to act on it.
- π Multi-format ingest β PDF, DOCX, PPTX, MD, HTML, TXT, images. All flow into the same
Document β Page β Chunkshape. - π€ Agents are first-class nodes β their views, tags, summaries, verifications, and reviews are all queryable.
- β Cross-checked summaries β one agent writes, a different agent verifies. Self-verification is rejected server-side.
- π Review kanban β chunks move through
new β in_review β reviewedwith an immutable audit trail. - π‘οΈ Grounding checks β score how well an agent's summary aligns with its sources. Catch hallucinations before they ship.
- π Translations β per-chunk, multi-translator, with author/reviewer provenance.
- πΌοΈ Agent-driven OCR β scanned pages handed back as rendered PNGs; agent transcribes and the graph absorbs the result.
- π Local & private β parsing, embedding, and analysis all run on your machine against a local
.kglfile. The only network call is a one-time bge-m3 model download; your documents never leave the host. See Confidentiality.
Install¶
30 seconds of Python¶
from kglite_docs import Corpus
with Corpus.create("kb.kgl") as corpus: # auto-saves on exit
corpus.ingest_dir("./papers") # PDF / DOCX / PPTX / MD / HTML / images
hits = corpus.search("transformer attention", top_k=5, agent_id="me")
ctx = corpus.compose_context("transformer attention", max_tokens=3000)
# ctx["items"] is a ranked, token-budgeted bundle ready for your LLM prompt
30 seconds of agent loop¶
Cross-checked enrichment in five lines:
sid = corpus.add_summary(
target_id=hits[0]["id"], text="DPR uses a dual BERT encoderβ¦",
agent_id="writer", model="opus-4.7",
)
# A different agent verifies β self-verification is rejected
corpus.verify_summary(sid, verdict="verified",
verifier_agent_id="reviewer", notes="checked p.5")
# Score how grounded the summary is in its source chunks
print(corpus.check_grounding(sid)["supported_fraction"]) # β 1.0
Run it as an MCP server¶
Register with Claude Code:
The agent now sees ~30 typed tools (search, compose_context, add_summary, verify_summary, tag_chunk, cluster_chunks, claim_next_review, β¦) plus cypher_query as an escape hatch.
Read the docs¶
π Full documentation at kglite-docs.readthedocs.io
- Getting started β 10 minutes from
pip installto a running agent - Agent workflows β research, comparison, fact-checking, OCR loops, hallucination guards
- Architecture β graph model, design rationale, the 30+ typed MCP tools
- API reference β every method, every argument, IDE-friendly type stubs
- Troubleshooting β common failure modes
- Confidentiality β everything runs local; what the one network call is (and isn't)
- Changelog
License¶
MIT.