Nous.Plugins.KnowledgeBase (nous v0.15.7)
View SourcePlugin for LLM-compiled knowledge base with wiki-style entries.
Provides tools for agents to ingest documents, compile wiki entries, search and query the knowledge base, and run health checks.
Usage
# Minimal — ETS store
agent = Agent.new("openai:gpt-4",
plugins: [Nous.Plugins.KnowledgeBase],
deps: %{kb_config: %{store: Nous.KnowledgeBase.Store.ETS, kb_id: "my_kb"}}
)
# With embeddings for semantic search
agent = Agent.new("openai:gpt-4",
plugins: [Nous.Plugins.KnowledgeBase],
deps: %{
kb_config: %{
store: Nous.KnowledgeBase.Store.ETS,
kb_id: "my_kb",
embedding: Nous.Memory.Embedding.OpenAI,
embedding_opts: %{api_key: "sk-..."}
}
}
)Composition with Memory Plugin
The KB plugin composes cleanly with Nous.Plugins.Memory:
agent = Agent.new("openai:gpt-4",
plugins: [Nous.Plugins.Memory, Nous.Plugins.KnowledgeBase],
deps: %{
memory_config: %{store: Nous.Memory.Store.ETS},
kb_config: %{store: Nous.KnowledgeBase.Store.ETS, kb_id: "my_kb"}
}
)Configuration (via deps[:kb_config])
Required:
:store- Store backend module (e.g.Nous.KnowledgeBase.Store.ETS)
Optional — store:
:store_opts- Options passed tostore.init/1:kb_id- Namespace for this knowledge base
Optional — embedding:
:embedding- Embedding provider module (reusesNous.Memory.Embedding.*):embedding_opts- Options passed to embedding provider
Optional — auto-injection:
:auto_inject- Auto-inject relevant KB entries before each request (default: true):inject_strategy-:first_only(default) or:every_iteration:inject_limit- Max entries to inject (default: 3):inject_min_score- Minimum score for injection (default: 0.3)
Optional — compilation:
:compiler_model- Model string for compilation LLM calls:auto_compile- Auto-compile pending documents after runs (default: false)