openKMS¶
Open Knowledge Management System — one governed knowledge network for people and agents.
Teams retrieve, contribute, and govern the same corpus—so answers stay sourced and permission-aware, not trapped in private chat or stale files.
Repository on GitHub :material-github: Quickstart
Why openKMS?¶
Most organizations already have files, wikis, and AI chat. The gap is one place where:
- Frontline staff can find answers with sources they dare use in real work.
- Experts can contribute without a separate publishing project.
- The organization can govern who sees what, what is still valid, and what must be reviewed.
- Agents can discover, retrieve, answer, and cite in-bounds content—not only a model with no corpus.
openKMS treats those as one network, not separate “KM for humans” and “RAG for bots.” If governance exists but nobody uses the system—or if search works but answers cannot be trusted for compliance—both sides fail.
North star: Goals — Frontline confidence · Expert contribution · Organizational governance · Agent readiness.
What you build in openKMS¶
Content lives in channel trees (like folder hierarchies). Typical surfaces:
| Surface | Role |
|---|---|
| Documents | Upload PDFs and office files; parse to editable Markdown (PaddleOCR-VL via a separate VLM server); versions and policy lifecycle. |
| Articles | Markdown CMS with channels, attachments, and relationships (supersedes, amends, see_also, …). |
| Wiki spaces | Path-based notes, vault import, page graph, semantic page search. |
| Knowledge bases | Hybrid search and Q&A with provenance (chunks, sources, optional QA Agent service). |
| Knowledge map & ontology | Terms linked to channels/spaces; optional structured data and graph explore. |
Under the hood: operation permissions + resource ACL (admin does not imply read-all data), evaluations for retrieval and wiki coverage, and development plan for what is shipped vs next.
Where to start¶
| If you want to… | Read |
|---|---|
| Understand why openKMS exists (vision & business problems) | Goals & vision |
| Try it locally with Docker or on the host | Quickstart |
| Learn ontology by building a mini Kanban | Tutorial: Understanding the ontology (Kanban lab) |
| DIY a Tushare → Stock → Function case study | Tutorial: Tushare market ontology |
| Understand the system | Architecture · Functionalities |
| Find a specific feature or API | Functionalities → features/*.md |
| HTTP or schema reference | API reference · Data models |
| Knowledge artifact types | Knowledge types |
| Sharing and resource ACL | Data security |
| Use openKMS from an agent (skill + CLI) | openkms-skill |
| Set up a dev environment | Developer setup |
| Deploy with Docker | Operations · Docker |
| Review security design (principles) | Security · Data security · Console & auth |
| See what's planned next | Roadmap · Development plan |
| Compare openKMS to other stacks or read KM frameworks | Research (below) |
| Edit the docs (human or AI agent) | Doc conventions for AI agents |
Research¶
Notes for architecture and product decisions (not shipped feature specs):
| Topic | Document |
|---|---|
| RAG engine vs openKMS | RAGFlow vs openKMS |
| Confluence AI (Rovo) vs openKMS | Confluence AI vs openKMS |
| LLM wiki (llm_wiki) vs wiki spaces | LLM wiki vs openKMS |
| Measuring KM outcomes (OKF dimension) | Operational Knowledge Fitness |
| Evaluating articles & wiki text | Text content evaluation |
At a glance¶
flowchart LR
User([Browser]) -->|Vite 5173 / nginx 8082| FE[React SPA]
FE -->|/api| BE[FastAPI · 8102]
BE --> PG[(PostgreSQL + pgvector)]
BE --> S3[(S3 / MinIO)]
BE --> WK[Procrastinate worker]
WK --> CLI[openkms-cli]
CLI --> VLM[mlx-vlm · 8101]
BE -. /ask .-> QA[QA Agent]
QA -. retrieve .-> BE
| Service | Default port |
|---|---|
| Backend (FastAPI) | 8102 |
| Frontend (Vite dev) | 5173 |
| Frontend (Docker, nginx) | 8082 |
| VLM server (mlx-vlm) | 8101 |
Project layout¶
| Path | What's inside |
|---|---|
backend/ |
FastAPI service, async SQLAlchemy, Alembic migrations |
frontend/ |
React 19 + Vite SPA |
openkms-cli/ |
Document parsing / pipeline CLI used by the worker |
openkms-skill/ |
Optional SKILL + CLI for agents (Bearer personal API key; not in Docker) |
vlm-server/ |
mlx-vlm HTTP server (PaddleOCR-VL backend) |
docker/ |
Dockerfiles and docker-compose.yml |
docs/ |
This site |