Skip to main content
First time here? Complete the Setup guide first to install GAIA and its dependencies.
Prefer a desktop app? See GAIA Chat Desktop for the privacy-first GUI with drag-and-drop document Q&A.
Looking for the API? See the Agent SDK Reference for classes, methods, and code examples.

Quick Start

1

Install dependencies

Activate your virtual environment and install GAIA with RAG support:
2

Create a simple chat

simple_chat.py
3

Use the full SDK

full_chat.py

CLI Usage

Interactive Mode

Start a conversational chat session:
  • /resume [id] - Resume a previous conversation (or list sessions if no id)
  • /save - Save current conversation
  • /sessions - List all saved sessions
  • /reset - Clear conversation and start fresh
  • /help or /? - Show help message
  • /quit - Exit the chat session

Single Query Mode

Document Q&A (RAG)

RAG (Retrieval-Augmented Generation) enables chatting with documents — including PDF, Word (.docx), PowerPoint (.pptx), and Excel (.xlsx) — using semantic search and context retrieval.

CLI with RAG

Document Indexing Requirements: Processing PDFs and PPTX files with images requires a Vision Language Model (VLM). GAIA uses Qwen3-VL-4B-Instruct-GGUF by default for extracting text from images in documents.To download all models needed for chat (including VLM):
To see what models each agent requires: gaia download --listSee the CLI Reference for more download options.

Interactive RAG Commands

When using gaia chat with documents (via --index flag or /index command), additional commands become available:
Sessions preserve both your conversation history and indexed documents:
  • /resume [id] - Resume session with conversation and documents restored
  • /save - Save session including indexed documents
  • /sessions - List all saved sessions
  • /reset - Clear conversation and start a new session (indexed documents are preserved)
  • /index <path> - Index a document or directory (enables RAG if needed)
  • /watch <dir> - Watch directory for changes and auto-index new files
  • /list - List all currently indexed documents
  • /status - Show RAG system status (indexed files, chunks, memory usage)
  • /chunks <file> - View indexed chunks for a specific file
  • /chunk <id> - View specific chunk by ID
  • /test <query> - Test query retrieval with relevance scores
  • /dump <file|#> - Export document and chunks to markdown
  • /clear-cache - Clear RAG cache and force re-indexing
  • /search-debug - Enable detailed search debugging output

RAG Debug Mode

Enable debug mode to see detailed retrieval information:
  • Search keys generated by the LLM
  • Chunks found for each search
  • Relevance scores
  • Deduplication statistics
  • Score distributions

Chunking Strategies

Structural Chunking

Default - Fast processing

LLM-Based Semantic

More accurate context

Troubleshooting

  • Ensure PDF has extractable text (not scanned images)
  • Check the PDF does not need a password to open — remove it with qpdf --decrypt --password=YOUR_PASSWORD in.pdf out.pdf (PDFs with only permission restrictions index fine)
  • Verify file is not corrupted

Dynamic Tool Loading

Off by default, doc profile only. This is the first stage of a phased rollout (Dynamic Tool Loader plan); enable it explicitly to try it.
The doc profile can load tools semantically per turn instead of showing the LLM every registered tool on every turn. A small always-on CORE set is combined with tools whose descriptions best match the conversation, which shrinks the first-turn prompt and speeds up the first reply. It activates only on the doc profile — the SDK with ChatAgentConfig(prompt_profile="doc"), or gaia eval agent --agent-type doc, an explicit override since the eval otherwise scores the flagship gaia agent. The doc id is no longer offered in the agent picker, but it still resolves, so the eval command is unchanged. Turn it on with the config field, an environment variable, or the Agent UI Settings → Dynamic Tools (Beta) toggle. The env var wins over both — when it is set, the UI toggle reflects the effective value and disables itself — which is handy for the eval harness:
It needs memory enabled (it reuses the memory embedder). If memory is off, the toggle is off, or the embedder is unreachable, the agent automatically falls back to showing all tools — so a turn never loses access to a tool it needs. See the Dynamic Tool Loader plan for the full design.

Next Steps

GAIA Chat Desktop

Privacy-first desktop app with drag-and-drop document Q&A

Agent SDK Reference

Classes, methods, and code examples

Voice Interaction

Add speech recognition and text-to-speech

CLI Reference

Explore all command-line options

Agent UI SDK Reference

Python backend API for the desktop chat application

API Server

Integrate via OpenAI-compatible API