Skip to content

Knowledge Optimization

Your agent is only as good as its knowledge. This guide teaches you how to structure, organize, and maintain knowledge collections for optimal performance.


There are two ways to give an agent a file, for two different jobs:

  • Attach it to a message when the agent needs a specific file for the task in front of it — a spreadsheet to analyze, a PDF to summarize, a screenshot to read. The whole file goes into the agent’s context for that conversation, and nothing is stored or indexed afterwards.
  • Add it to a Knowledge collection when the same information should be reusable and searchable across many chats — product docs, policies, FAQs. It’s chunked and retrieved on demand, and stays available to every conversation.

Rule of thumb: one file, one task → attach it. Information the agent should “just know” going forward → add it to Knowledge.

From the chat composer’s + menu you can:

  • Add from local files — PDFs, Office files (DOCX, PPTX, XLSX), CSV, Markdown, and text, plus images, audio, and video. Up to four files per message.
  • Add from Google Drive — pick files in the Google Picker, once your team has connected Google Drive. The agent gets only the files you choose.
  • Paste a Google Drive link — drop a drive.google.com or docs.google.com link into the composer and the file is attached for you.

Organize your knowledge in layers:

  1. Core Documentation - Essential product/service information
  2. FAQs - Common questions and answers
  3. Troubleshooting - Problem-solving guides
  4. Examples - Real-world use cases
  5. Updates - Recent changes and announcements

Problem: Outdated information leads to wrong answers

Solution: Set up automatic syncing

When you add a source, choose a schedule under Keep it fresh. Free syncs at most weekly and Pro daily; Business and Enterprise can sync hourly.

Bad Structure:

/docs
- everything.md (10,000 lines)

Good Structure:

/docs
/getting-started
- quickstart.md
- installation.md
/features
- feature-a.md
- feature-b.md
/troubleshooting
- common-issues.md
- error-codes.md

Agents use headings to understand content structure.

Bad:

## Stuff
Some information about various things.

Good:

## How to Reset Your Password
Step-by-step guide:
1. Click "Forgot Password"
2. Enter your email
3. Check your inbox

Without Examples:

Use the API to create users.

With Examples:

## Creating Users via API
Example request:
\`\`\`bash
curl -X POST https://api.example.com/users \
-H "Authorization: Bearer TOKEN" \
-d '{"name": "John", "email": "john@example.com"}'
\`\`\`
Example response:
\`\`\`json
{
"id": "user_123",
"name": "John",
"email": "john@example.com"
}
\`\`\`

Duplicate information confuses agents.

Check for:

  • Same content in multiple files
  • Outdated versions of documents
  • Conflicting information

Solution: Use a single source of truth for each topic.


For each document in your knowledge:

  • Clear, descriptive title
  • Proper heading hierarchy (H1 → H2 → H3)
  • Up-to-date information
  • Code examples where relevant
  • Links to related topics
  • No duplicates
  • Proper formatting (lists, tables, code blocks)
  • Searchable keywords

Break large documents into logical sections:

# Product Overview
## What is it?
[Brief description]
## Key Features
[Feature list]
## Use Cases
[Real-world examples]
## Getting Started
[Quick start guide]

Each section can be retrieved independently.

A short header with the topic and its keywords puts those words in the text that is searched:

---
title: Password Reset Guide
category: troubleshooting
tags: [password, login, security]
difficulty: beginner
last_updated: 2026-04-01
---

Link related topics:

For more information, see:
- [Roles & Permissions](/account/roles/)
- [Security](/security/)
- [API Authentication](/api/authentication/)

Problem: 10,000-page knowledge overwhelms the agent

Solution: Start with essentials, add more as needed

Priority Order:

  1. Most frequently asked questions
  2. Core product features
  3. Common troubleshooting
  4. Deep features
  5. Edge cases

Problem: Wall of text without headings or formatting

Solution: Use clear structure with headings, lists, and examples

Problem: Information from 2 years ago that’s no longer accurate

Solution: Regular audits and automatic sync

Problem: “Click the button” (which button?)

Solution: Be specific and include screenshots


Track these metrics to optimize your knowledge:

Metric Target How to Improve
Answer Accuracy > 90% Add more examples, clarify ambiguous content
Retrieval Speed < 1s Reduce document size, improve structure
Coverage > 80% Add content for unanswered questions
Freshness < 7 days Enable automatic sync

Notion

Sync the pages shared with your Notion connection, or one database.

Confluence

Sync a space, its pages and their child pages.

Google Drive

Sync the files you pick. Supports Docs, Sheets, Slides.

GitHub

Index the Markdown, text and CSV files in a repository.

File Upload

Upload PDF, DOC, DOCX, and TXT files directly.

Web Crawl

Crawl your website or documentation site.

ServiceNow

Sync knowledge articles or incidents.


  • Monitor unanswered questions
  • Review agent conversations
  • Flag outdated content
  • Sync knowledge collections
  • Update FAQs based on new questions
  • Add examples for common issues
  • Audit entire knowledge
  • Remove duplicates
  • Reorganize if needed
  • Update metadata
  • Major content review
  • Archive outdated content
  • Plan new content additions

Track changes to your knowledge:

Terminal window
# Tag versions
v1.0 - Initial launch
v1.1 - Added troubleshooting section
v1.2 - Updated API examples

Test different content structures:

  • Version A: Long-form guides
  • Version B: Short FAQs
  • Measure: Which gets better results?

Improve based on usage:

  1. Agent can’t answer → Add to knowledge
  2. Wrong answer → Update content
  3. Frequent question → Add to FAQs
  4. Positive feedback → Keep as is


  1. Audit your current knowledge
  2. Implement the structure recommendations
  3. Set up automatic syncing
  4. Monitor performance metrics
  5. Iterate based on results

Set up your knowledge →