> ## Documentation Index
> Fetch the complete documentation index at: https://docs.definable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Knowledge

> Reference for the Knowledge class.

```python theme={null}
from definable.knowledge import Knowledge
```

## Constructor

| Parameter            | Type                 | Default              | Description                                      |
| -------------------- | -------------------- | -------------------- | ------------------------------------------------ |
| `vector_db`          | `VectorDB`           | `InMemoryVectorDB()` | Vector database backend.                         |
| `embedder`           | `Embedder`           | `OpenAIEmbedder()`   | Embedding provider.                              |
| `reranker`           | `Reranker`           | `None`               | Optional reranker.                               |
| `chunker`            | `Chunker`            | `None`               | Text chunker for `add()`.                        |
| `readers`            | `List[Reader]`       | auto                 | Document readers.                                |
| `auto_detect_reader` | `bool`               | `True`               | Auto-detect reader from source.                  |
| `top_k`              | `int`                | `5`                  | Number of results per search.                    |
| `trigger`            | `str`                | `"always"`           | When to search: `"always"`, `"auto"`, `"never"`. |
| `context_format`     | `str`                | `"xml"`              | `"xml"` or `"markdown"`.                         |
| `fts_index`          | `FTSIndex`           | `None`               | Full-text search index for hybrid search.        |
| `hybrid_config`      | `HybridSearchConfig` | `None`               | Vector + text merge config.                      |
| `temporal_decay`     | `TemporalDecay`      | `None`               | Score decay by document age.                     |
| `mmr`                | `MMRConfig`          | `None`               | Diversity reranking.                             |

## Methods

| Method                   | Returns          | Description                              |
| ------------------------ | ---------------- | ---------------------------------------- |
| `add(source)`            | `List[str]`      | Add content (string, file path, or URL). |
| `aadd(source)`           | `List[str]`      | Async add.                               |
| `search(query, top_k=)`  | `List[Document]` | Search by similarity.                    |
| `asearch(query, top_k=)` | `List[Document]` | Async search.                            |
| `remove(doc_ids)`        | —                | Remove documents by ID.                  |
| `clear()`                | —                | Remove all documents.                    |
| `__len__()`              | `int`            | Document count.                          |

## Document

```python theme={null}
from definable.knowledge import Document
```

| Field             | Type          | Description                |
| ----------------- | ------------- | -------------------------- |
| `content`         | `str`         | Document text.             |
| `meta_data`       | `Dict`        | Metadata (NOT `metadata`). |
| `embedding`       | `List[float]` | Vector embedding.          |
| `reranking_score` | `float`       | Score from reranker.       |

## HybridSearchConfig

| Parameter        | Type    | Default | Description                                       |
| ---------------- | ------- | ------- | ------------------------------------------------- |
| `merge_strategy` | `str`   | `"rrf"` | `"rrf"` (reciprocal rank fusion) or `"weighted"`. |
| `vector_weight`  | `float` | `0.7`   | Weight for vector results.                        |
| `text_weight`    | `float` | `0.3`   | Weight for text results.                          |

## TemporalDecay

| Parameter            | Type    | Default | Description                       |
| -------------------- | ------- | ------- | --------------------------------- |
| `half_life_days`     | `float` | `30.0`  | Days until score halves.          |
| `evergreen_meta_key` | `str`   | `None`  | Meta key that exempts from decay. |

## MMRConfig

| Parameter      | Type    | Default | Description                      |
| -------------- | ------- | ------- | -------------------------------- |
| `lambda_param` | `float` | `0.7`   | Relevance vs diversity tradeoff. |
| `top_n`        | `int`   | `None`  | Results after MMR.               |
