chat.mdx

July 7, 2026 · View on GitHub

**First time here?** Complete the [Setup](/setup) guide first to install GAIA and its dependencies. **Prefer a desktop app?** See [GAIA Chat Desktop](/guides/agent-ui) for the privacy-first GUI with drag-and-drop document Q&A. **Looking for the API?** See the [Agent SDK Reference](/sdk/sdks/chat) for classes, methods, and code examples.

Quick Start

Activate your virtual environment and install GAIA with RAG support:
```bash
uv pip install -e ".[rag]"
```
```python title="simple_chat.py" from gaia.chat.sdk import SimpleChat
chat = SimpleChat()
response = chat.ask("What is Python?")
print(response)

# Follow-up with conversation memory
response = chat.ask("Give me an example")
print(response)
```
```python title="full_chat.py" from gaia.chat.sdk import AgentSDK, AgentConfig
config = AgentConfig(
    show_stats=True,
    max_history_length=6
)
chat = AgentSDK(config)

response = chat.send("Hello! My name is Alex.")
print(response.text)

response = chat.send("What's my name?")
print(response.text)  # Will remember "Alex"
```

CLI Usage

Interactive Mode

Start a conversational chat session:

```bash Basic # Start interactive chat gaia chat ```
# Show performance metrics
gaia chat --stats
- `/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

# One-shot query
gaia chat --query "What is artificial intelligence?"

# With statistics
gaia chat --query "Hello" --show-stats

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

```bash # Chat with a PDF, Word, PowerPoint, or Excel document gaia chat --index manual.pdf gaia chat --index handbook.docx gaia chat --index slides.pptx gaia chat --index budget.xlsx ``` ```bash # Chat with multiple documents (PDF, DOCX, PPTX, XLSX supported) gaia chat --index doc1.pdf report.docx slides.pptx ``` ```bash # One-shot query with document gaia chat --index report.pdf --query "Summarize the key findings" ``` ```bash # Auto-index every supported document in a folder, and any new ones dropped in later gaia chat --watch ./docs ``` **Prerequisites:** Voice mode requires the `talk` module: ```bash uv pip install -e ".[talk]" ```
```bash
# Voice with documents
gaia talk --index manual.pdf
```
**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):

gaia download --agent chat

To see what models each agent requires: gaia download --list

See 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 ` - Index a document or directory (enables RAG if needed) - `/watch ` - 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 ` - View indexed chunks for a specific file - `/chunk ` - View specific chunk by ID - `/test ` - Test query retrieval with relevance scores - `/dump ` - 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:

```bash CLI Debug # CLI with debug gaia chat --index document.pdf --debug ```
# Python SDK with debug — ChatAgent takes a single ChatAgentConfig
from gaia_agent_chat.agent import ChatAgent, ChatAgentConfig

config = ChatAgentConfig(
    rag_documents=['document.pdf'],
    debug=True,
    silent_mode=False,
)
agent = ChatAgent(config)

result = agent.process_query("What is the vision statement?")
print(result)
- Search keys generated by the LLM - Chunks found for each search - Relevance scores - Deduplication statistics - Score distributions

Chunking Strategies

**Default - Fast processing**
```python
config = ChatAgentConfig(
    rag_documents=['document.pdf'],
    chunk_size=500,
    chunk_overlap=50,
)
agent = ChatAgent(config)
```
**More accurate context**
```python
config = ChatAgentConfig(
    rag_documents=['document.pdf'],
    use_llm_chunking=True,
    chunk_size=500,
)
agent = ChatAgent(config)
```

Troubleshooting

```bash uv pip install -e ".[rag]" ``` If `gaia talk` fails with "No module named 'pip'", install dependencies manually:
```bash
# Install talk dependencies
uv pip install -e ".[talk]"

# If the error persists, install pip in your environment
python -m ensurepip --upgrade
```
- Ensure PDF has extractable text (not scanned images) - Check file is not password-protected - Verify file is not corrupted ```python # Faster processing chat.enable_rag(documents=["doc.pdf"], chunk_size=300, max_chunks=2)
# Better quality
chat.enable_rag(documents=["doc.pdf"], chunk_size=600, max_chunks=5, chunk_overlap=100)

# Memory efficient
chat.enable_rag(documents=["doc.pdf"], chunk_size=400, max_chunks=2)
```

Dynamic Tool Loading

**Off by default, `doc` profile only.** This is the first stage of a phased rollout ([Dynamic Tool Loader plan](/plans/tool-loader)); 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 registered doc agent, the SDK with ChatAgentConfig(prompt_profile="doc"), or gaia eval agent --agent-type doc). 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:

from gaia_agent_chat.agent import ChatAgent, ChatAgentConfig

agent = ChatAgent(ChatAgentConfig(prompt_profile="doc", dynamic_tools=True))
# Env override (applies wherever a doc-profile ChatAgent runs)
GAIA_DYNAMIC_TOOLS=1 gaia eval agent --category tool_selection --agent-type doc

# Optional tuning: match threshold (cosine, inclusive) and loaded-set cap
GAIA_DYNAMIC_TOOLS_TAU=0.20 GAIA_DYNAMIC_TOOLS_MAX=14 GAIA_DYNAMIC_TOOLS=1 ...

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

Privacy-first desktop app with drag-and-drop document Q&A Classes, methods, and code examples Add speech recognition and text-to-speech Explore all command-line options Python backend API for the desktop chat application Integrate via OpenAI-compatible API

License

Copyright(C) 2024-2026 Advanced Micro Devices, Inc. All rights reserved.

SPDX-License-Identifier: MIT