TL;DR: LightOn Console handles the entire knowledge layer (hierarchical parsing, hybrid retrieval, reranker, workspace RBAC, connectors). Idun Agent Platform handles the agent runtime (LangGraph + Google ADK, MCP discovery, prompt versioning, observability, SSO). A 9-tool MCP server bridges the two. We built a working RAG agent on French HR documents in under 300 lines of Python. Code and architecture below.
Building a RAG agent is not the hard part anymore. The hard part is everything around it. Picking a vector database, writing a document parser that does not destroy tables, tuning a chunker, adding a reranker, then building workspace isolation and access control on top. Then doing it all again for the agent side. API endpoints, prompt versioning, observability, authentication. By the time you are done, the actual agent logic is a fraction of the codebase.
We built a RAG agent to show how LightOn Console and Idun Agent Platform take those problems off the table.
Source code is on GitHub.
LightOn Console is the entire knowledge layer as a platform. You upload documents, Console does the rest: parsing, chunking, embedding, hybrid retrieval, reranking, and access control. The pieces a RAG project usually has to build itself are already there.
Upload files directly: PDF, DOCX, PPTX, TXT, Markdown, HTML, XLSX, CSV, and others. Or connect data sources. Console has connectors for Google Drive, SharePoint, Teams, ServiceNow, and web scraping. Connectors sync on a schedule, so your knowledge base stays current without anyone touching it.
When a document arrives, Console puts it through a full indexing pipeline. A hierarchical parser (v2.2.1 in the current release) converts it to structured text while preserving the document's own organization: headings, sections, nested lists, tables. A separate vision pipeline processes visual content. Charts, graphs, scanned pages, handwritten notes. There is a VLM-based OCR endpoint that converts these to Markdown while keeping spatial layout. Files track both a text processing status and a vision processing status, so you know when everything is ready.
After parsing, a hierarchical chunker splits the content following the document's structure rather than fixed token windows. The processing pipeline is thorough: each chunk carries rich metadata including page numbers, coordinates on the page, parser version, token count, and content hashes.
When you query, the platform runs embedding search and keyword search in parallel, fuses the candidates, then reranks them. Each chunk comes back with four scores: vector distance, lexical score, combined score, and reranker certainty. You pick how many candidates go into reranking (top_k, up to 100) and how many results come out (top_n, up to 50).
In our testing with French HR documents, where the language switches between conversational French and formal legal terminology, the retrieval consistently found the right sections. That is not a given with hybrid search on mixed-language content.
Documents live in workspaces. Company workspaces are visible to everyone. Custom workspaces are restricted to specific teams or groups. Personal workspaces are single-user. Only users with the Document manager role can upload or delete files. When you query, results are scoped to the workspaces you have access to. RBAC that works without you writing a single line.