Skip to main content
Knowledge persists to an absolute, per-project Chroma store so unrelated projects never share one on-disk database.

Quick Start

1

Use the default location

Pass sources and let the store persist under the per-project default.
Data lands at <project>/.praisonai/knowledge/chroma.
2

Choose your own location

Set vector_store.config.path to store data anywhere you like.

Where Is My Data Stored?

Omit path and Knowledge persists to an absolute directory derived from your project root. The default is absolute and per-project, so two projects — or a test harness that changes directories — never write to the same sqlite file.
Earlier releases defaulted to the cwd-relative string "knowledge_db", which let unrelated projects collide. Upgrade to the release built from PraisonAI PR #4422 for the isolated default.

How to Change It

Point path at any directory via the Agent config or a standalone Knowledge instance.
An explicitly configured path always wins over the default.

What If the Store Is Corrupt?

A corrupt, locked, or version-mismatched Chroma store now raises a RuntimeError instead of crashing the interpreter.
ChromaDB’s rust bindings can raise a PanicException (a BaseException, not Exception) that previously unwound through Agent.start and killed Python — on Windows this showed up as a SIGSEGV or hang (issue #4376). The SDK now catches it and re-raises an actionable Python error, while KeyboardInterrupt still propagates so Ctrl-C keeps working. Directory indexing behaves the same: a backend panic on one file surfaces as RuntimeError: Knowledge indexing backend crashed on <file> rather than terminating the process. Recovery: delete the persist directory and re-index, or point path at a fresh directory.

Configuration Options

Chroma persistence is controlled by a single option under vector_store.config.

Best Practices

Leave path unset and rely on the per-project default. Each project keeps its own isolated store with zero configuration.
Point path at a stable, absolute directory when multiple services must read the same knowledge base, or when deploying where the working directory changes.
A RuntimeError: Chroma persist failed ... means the store is corrupt or locked. Delete the directory or switch to a fresh path — re-running against the same broken store repeats the failure.
Use distinct paths for development, test, and production so an experiment never corrupts a shared index.

Knowledge

Add documents and query them from an agent

Knowledge Backends

Pick and configure a vector store