Sources
Sources are the backbone of answer quality. If the agent cannot retrieve the right material, no prompt tweak will save it.
Sources
Sources are the backbone of answer quality. If the agent cannot retrieve the right material, no prompt tweak will save it.
What You Can Add
The Sources page supports:
- website URLs
- sitemaps
- file uploads
- image uploads
- ZIP archives for bulk upload
Which Source Type Should You Choose?
| Source type | Best when you have | Avoid it when |
|---|---|---|
| URL | a single page or a small section to crawl | the site is large enough that you really need a sitemap |
| Sitemap | a help center or docs site with many stable pages | the sitemap is noisy or full of irrelevant URLs |
| File | PDFs, docs, or exports that should stay exactly as written | the same content already exists as clean web pages |
| Image | screenshots or image-only content that still matters in retrieval | the image is decorative and contains no useful support information |
| ZIP archive | many files that need one bulk upload workflow | you only have one or two files |
What The Page Is For
Use the main Sources page to:
- add new sources
- search across sources
- watch live ingestion progress
- bulk-select and delete sources
- expand ZIP uploads to inspect child files
Use live status first
If a source is still processing, wait for the job to finish before you evaluate the agent in the playground.
Source Lifecycle
Every source moves through one of these states:
| State | Meaning |
|---|---|
| Pending | The source was created but processing has not started yet. |
| Processing | A job is currently ingesting, chunking, or reindexing content. |
| Ready | Documents and chunks are available for retrieval. |
| Error | The ingest job failed and needs review. |
Source Detail Page
Open any source to see more than the list view shows.
The detail page includes:
- a status summary with counts and timestamps
- a configuration panel showing the original source setup
- automatic document metadata and editable custom fields
- a Documents tab with chunk counts and metadata
- a Jobs tab with a job timeline, progress, and errors
- a Raw Config tab for exact source configuration
- a Re-ingest action when you need to refresh content
Knowledge Metadata
Standard metadata is collected automatically during ingestion, not entered manually. It includes available source dates, file details, passage position, indexing time, and a content-version identifier. The source's ingestion status is also managed automatically; it is not an editorial status such as "current" or "superseded."
Only custom fields are editable. Open a source's detail page to add your own keys with string, number, boolean, or null values, such as product, region, or owner. Custom fields apply to every document in that source; use separate sources when documents need different custom context.
Saving or clearing custom fields does not require re-ingestion: the next knowledge-base search sees the updated values, including when earlier results were cached. Do not put secrets in these fields; they are sent to the model and its provider alongside retrieved passages.
What The Agent Receives
The search_knowledge_base tool returns each passage with its source name, source type, document identity, title, URL,
and relevance score. Available context is returned in metadata:
| Field | Meaning |
|---|---|
contentVersion | Automatic identifier derived from the ingested text; unchanged text keeps the same ID |
fileName, fileType | File information captured during ingestion |
heading, chunkIndex, totalChunks | Section, zero-based passage position, and total passages in the document |
documentPageNumbers | Pages found in the whole document, not the exact pages of this passage |
indexedAt | When Kravos created the indexing record, not when the article was written or updated |
dates | Extracted publication, modification, or file dates, with the origin of each value |
documentStructure | Available parser counts, element types, or CSV columns for the whole document |
extraction | Extraction method and model, when supplied by the parser |
userProvided.custom | Owner-defined custom fields for every document in the source |
documentStructure.elementTypes preserves the parser's type-to-count map, for example
{ "Title": 2, "NarrativeText": 10 }. Counts are nonnegative safe integers, including zero. Invalid count entries
are omitted without discarding valid entries; legacy arrays of type names remain supported without invented counts.
These values describe the whole document, not the matching passage.
Source-declared webpage dates and available parser-reported file dates are captured during ingestion. Existing
documents need a re-ingest or scheduled recrawl to capture newly supported fields. Missing or invalid values stay
unknown; Kravos does not infer an author's version, effective date, or editorial status from filenames, upload time,
or indexing time. contentVersion changes when the ingested text changes. It is not an incrementing revision number
and cannot establish which of two articles is newer or authoritative.
A parser-reported file modification date can describe processing of the uploaded file rather than the original
article's revision. It is labelled fileModifiedAt with its origin, not treated as a content update date. Extracted
dates and owner-defined custom fields stay separate; custom fields do not overwrite automatic metadata.
Define Your Agent's Policy
Metadata gives the model more evidence; it does not change retrieval ranking or automatically resolve conflicting articles. Use your agent's instructions to define preferred sources and what to do when evidence disagrees. For example:
When retrieved articles disagree, show which articles disagree. Use an explicit
version or effective date only when it establishes which policy applies to the
question. If neither source is clearly authoritative, ask for clarification rather
than guess. Cite the source you use.
Only retrieved passages can be compared. An article outside the search results is not checked for contradictions.
Good Starting Workflow
- add the smallest high-value source set you can
- wait until the source is Ready
- test real user questions in Playground
- open the source detail page if retrieval is weak or the job fails
- expand carefully instead of adding every possible page at once
Bulk Uploads
ZIP uploads behave differently from single files:
- the parent source shows overall processing progress
- child files can be expanded under the source row
- processed and failed child counts help you spot bad files quickly
Best Practices
- start with your highest-value pages, not your entire internet footprint
- prefer clean, current help-center content over marketing pages with weak detail
- re-ingest after major content changes
- use source detail pages to inspect failed jobs before retrying blindly
- remove stale or duplicate content if retrieval keeps surfacing the wrong answer
Common Problems
The agent gives outdated answers
- check whether the source is stale
- re-ingest the source
- remove conflicting older files or pages
A source is stuck in error
- open the source detail page
- review the latest job error
- check whether the URL, sitemap, file, or ZIP contents are still valid
- confirm the source config still points to the right location
- fix the original source content or configuration
- try re-ingesting after the root cause is fixed
Retrieval quality is still weak
- add more focused content instead of more generic content
- review Interceptors for hard rules
- test in Playground with debug panels open
Related Docs
Playground
Test answers, retrieval, prompts, and overrides before production.
Interceptors
Rules for escalation, blocking, tagging, and guaranteed replies.
API Reference
Programmatic source management via the Sources API.