Nous.Plugins.KnowledgeBase (nous v0.15.4)

View Source

Plugin 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:

Optional — store:

  • :store_opts - Options passed to store.init/1
  • :kb_id - Namespace for this knowledge base

Optional — embedding:

  • :embedding - Embedding provider module (reuses Nous.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)