---
title: "Knowledge sources"
url: "/knowledge"
description: "Ground your agent's answers in your own documents — creating sources, uploading files, and choosing how content is retrieved."
productArea: knowledge
audience: ["business-user"]
tags: ["knowledge", "rag"]
lastReviewed: 2026-08-25
---

# Knowledge sources (/knowledge)





A knowledge source is a collection of content your agent can retrieve from. When someone sends
a message, KlicForge searches the attached sources, pulls the most relevant passages, and gives
them to the model before it answers.

This is what makes an agent answer from *your* content rather than from what the model happens
to know.

## Creating a knowledge source [#creating-a-knowledge-source]

Select **Knowledge Library** in the sidebar, then **New Knowledge Source**. You can either:

* **Write or paste content** directly in the dashboard. It is stored in the database and is
  available to agents immediately.
* **Upload a file** and let KlicForge extract and index it.

Attach it to an agent when you [create the agent](/agents/creation-wizard), or ask the
[in-dashboard assistant](/troubleshooting/support#in-dashboard-assistant) to attach it to an
existing one — "add the Returns Policy source to this agent." A source that is not attached to
an agent is never retrieved.

## Source types [#source-types]

| Type         | Description                                                         |
| ------------ | ------------------------------------------------------------------- |
| `db-content` | Content stored in the database, written and edited in the dashboard |
| `file-docs`  | Content stored as files on the platform, read-only in the dashboard |

Both use the same retrieval interface and can be mixed on one agent.

## Retrieval modes [#retrieval-modes]

Each source has a retrieval mode that decides how content is matched to a question.

| Mode         | How it works                                                      | Best for                                                     |
| ------------ | ----------------------------------------------------------------- | ------------------------------------------------------------ |
| **Keyword**  | Scores passages by word overlap with the question                 | Small collections, straightforward FAQ content               |
| **Semantic** | Uses embeddings to find related meaning even when wording differs | Larger collections, synonym-heavy content, nuanced questions |
| **Hybrid**   | Combines both and merges the results                              | Production use where precision and recall both matter        |

Sources created in the dashboard start on keyword search and move to hybrid automatically once
their content finishes processing. A source still processing answers from keywords alone.

Whichever mode a source uses, passages that are only weakly related to the question are dropped
before the agent sees them. Retrieving nothing is better than retrieving something off-topic — an
agent given an unrelated passage tends to answer from it.

## Granting access [#granting-access]

An agent retrieves only from the sources it has been granted, chosen at creation or added
afterward by asking the assistant. You can grant them individually, by category, or all at once —
an agent granted a whole category picks up sources added to that category later, without
revisiting the agent.

When a search covers several sources, results come back from each of them rather than filling up
on whichever source scores highest.

## Uploading files [#uploading-files]

### Supported file types [#supported-file-types]

| Category     | Types                                                  |
| ------------ | ------------------------------------------------------ |
| Documents    | PDF                                                    |
| Text         | `.txt`, `.md`                                          |
| Spreadsheets | CSV, Excel (`.xlsx`, `.xls`) — rendered as tables      |
| Images       | JPEG, PNG, GIF, WebP — text extracted by OCR or vision |

**File size limit:** 30 MB per file. Your plan's limits on number of sources and total storage
are checked before an upload is accepted.

### How upload works [#how-upload-works]

1. Choose **Upload a file** when creating a source.
2. The file uploads directly to secure storage.
3. An ingestion job runs automatically; the source shows a live status.
4. When status reaches **completed**, it is ready to attach to an agent.

### The ingestion pipeline [#the-ingestion-pipeline]

Each file goes through **detect → extract → clean → chunk → embed**:

* **Detect** — classifies the document and picks an extraction strategy.
* **Extract** — PDFs use text extraction, with OCR for scanned pages; visual-heavy PDFs use
  vision extraction. Spreadsheets become tables. Images use OCR or vision.
* **Clean** — removes OCR noise. Already-structured formats skip this.
* **Chunk and embed** — content is split and indexed for retrieval.

### Limits worth knowing [#limits-worth-knowing]

* **Vision page cap** — vision extraction processes the first 50 pages by default; later pages
  are skipped with a warning.
* **Empty extraction is rejected** — if no text can be pulled out, the upload fails rather than
  creating an empty source.
* **Ingestion uses tokens** — cleanup and vision extraction consume tokens recorded against
  your workspace's usage.

You can reprocess an uploaded source from its detail view, which is useful if you want to force
a different extraction strategy.

## Contact-scoped knowledge [#contact-scoped-knowledge]

A knowledge source can be classified so that it belongs to a single contact rather than the
whole workspace. A contact-owned source is only retrievable in conversations with that
contact, which is how you give one customer access to their own documents without exposing them
to everyone.

<Callout type="warn">
  Classification controls retrieval. Review it before uploading anything containing personal or
  customer-specific information.
</Callout>

## Troubleshooting retrieval [#troubleshooting-retrieval]

| Symptom                                                            | Likely cause                                                                                                         |
| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| Agent says it does not know something in your document             | Source not attached to the agent, or still processing                                                                |
| A keyword source finds nothing for a question your document covers | The question shares no distinctive words with the source — switch it to hybrid so wording differences stop mattering |
| Answers cite the wrong passage                                     | Try hybrid retrieval, or split a large document into focused sources                                                 |
| Upload rejected                                                    | Unsupported file type, over 30 MB, or no extractable text                                                            |
| Scanned PDF returns nothing useful                                 | Reprocess and force vision extraction                                                                                |
| Agent ignores knowledge entirely                                   | Check [answer mode](/guardrails/answer-modes) is not `tools_only`                                                    |

## Related pages [#related-pages]

* [Agents overview](/agents)
* [Guardrails](/guardrails)
* [Troubleshooting](/troubleshooting)
* [Import a website](/knowledge/import-a-website)
* [Assets](/knowledge/assets)
