Skip to content

Releases: amd/gaia

v0.15.3.2

06 Feb 00:15
1d75142

Choose a tag to compare

What's Changed

  • Fix missing packages, broken entry points, and add packaging CI tests (#309) (1d75142)
  • Revert "Add stx-test to runner pool for testing new runners" (#307) (a5f653c)
  • Add stx-test to runner pool for testing new runners (#306) (e4cb967)
  • Added release notes for v0.15.3.1 patch (#304) (c734837)

Installation

Install GAIA using pip:

pip install amd-gaia

Or using uv:

uv pip install amd-gaia

v0.15.3.1

05 Feb 01:14
b9cf8ea

Choose a tag to compare

GAIA v0.15.3.1 Release Notes

Patch release with Linux installation improvements and minimal profile optimization.


🎯 Key Changes

Minimal Profile Optimization

  • Smaller, faster setup: Minimal profile now uses Qwen3-0.6B-GGUF (400 MB) instead of 4B model (2.5 GB)
  • 6x smaller download for quick starts and testing
  • Updated all documentation to reflect new size

Linux Installation Improvements

  • Reliable apt install: Runs apt update before install to prevent 404 errors from stale package cache
  • Cleaner help output: gaia init -h now shows only relevant options (removed global parameters like --use-claude, --model, --trace)
  • Better error UX: Incomplete model downloads now suggest using --force-models flag to redownload from scratch

Code Quality & Cleanup

  • Simplified Linux version check function (34 lines vs 51 lines, -33%)
  • Removed unnecessary PATH manipulation on Linux
  • Removed debugging code from dpkg installation
  • Fixed Pylint errors in lemonade_installer.py

📦 Installation

pip install --upgrade amd-gaia

Linux users (avoid large CUDA dependencies):

pip install --upgrade amd-gaia --extra-index-url https://download.pytorch.org/whl/cpu

🐛 Bug Fixes

  • Fixed apt 404 errors on Linux by updating package cache before install
  • Fixed conditional logging level setup to support commands without parent_parser

📝 Full Changelog

See PR #302 for complete details.

v0.15.3

04 Feb 07:48

Choose a tag to compare

GAIA v0.15.3 Release Notes

Overview

This release introduces Stable Diffusion image generation with the new SD Agent, multi-step workflow parameter passing, and composable system prompts architecture. Includes Lemonade 9.2.0 support, comprehensive playbook, and enhanced agent reliability.

TL;DR:

  • New: SD Agent - Multi-modal image generation + story creation
  • New: SDToolsMixin & VLMToolsMixin - Add image/vision capabilities to any agent
  • Fixed: Multi-step workflows - Agents pass results between steps automatically
  • Improved: Agent reliability - Smarter loop detection, 16K context

What's New

SD Agent: Multi-Modal Image Generation

New agent demonstrating how to combine image generation with vision analysis for creative workflows. Shows developers how to build multi-modal applications using GAIA's mixin pattern.

gaia init --profile sd
gaia sd "create a robot exploring ancient ruins"
# LLM enhances prompt → SD generates image (17s) → VLM creates story (15s)

What you get:

  • 4 SD Models: SDXL-Base-1.0 (photorealistic), SDXL-Turbo (fast), SD-1.5, SD-Turbo
  • LLM-Enhanced Prompts: Research-backed keyword strategies automatically applied
  • Vision Analysis: Image descriptions and Q&A using Vision LLM
  • Story Creation: Creative narratives generated from images
  • Story Persistence: Stories saved as .txt files alongside images
  • Random Seeds: Each generation unique by default (specify seed for reproducibility)

Performance (AMD Ryzen AI):

  • Image generation: ~17s (SDXL-Turbo, 512x512)
  • Story creation: ~15s (Qwen3-VL-4B)
  • Total workflow: ~35s

Why this helps: Build creative AI applications (content generation, game assets, storyboarding) without cloud dependencies. Learn multi-modal agent composition in working code.

Example implementation:

from gaia.agents.base import Agent
from gaia.sd import SDToolsMixin
from gaia.vlm import VLMToolsMixin

class ImageStoryAgent(Agent, SDToolsMixin, VLMToolsMixin):
    def __init__(self):
        super().__init__(model_id="Qwen3-8B-GGUF")
        self.init_sd(default_model="SDXL-Turbo")  # 3 SD tools
        self.init_vlm()                            # 2 VLM tools

See SD Agent Playbook for complete tutorial, and SD User Guide for CLI reference.

SDToolsMixin: Stable Diffusion SDK

New mixin for adding image generation to any agent.

How it helps: Add professional image generation to any agent in 3 lines. Auto-configures optimal settings per model.

Features:

  • 4 Models Supported: SDXL-Base-1.0, SDXL-Turbo, SD-1.5, SD-Turbo
  • 3 Auto-registered Tools: generate_image(), list_sd_models(), get_generation_history()
  • Model-Specific Defaults: Automatic size, steps, CFG scale per model (e.g., SDXL-Turbo: 512x512, 4 steps, CFG 1.0)
  • Session Tracking: Generation history maintained in self.sd_generations list
  • Composable Prompts: get_sd_system_prompt() provides research-backed prompt engineering per model

Usage:

class ImageAgent(Agent, SDToolsMixin):
    def __init__(self):
        super().__init__()
        self.init_sd(default_model="SDXL-Turbo")
        # 3 tools auto-registered, ready to use

VLMToolsMixin: Vision Language Model SDK

New mixin for adding vision capabilities to any agent.

How it helps: Enable agents to understand and analyze images. Access vision client for building custom vision-based tools.

Features:

  • 2 Auto-registered Tools: analyze_image(), answer_question_about_image()
  • Multi-Model Support: Qwen3-VL-4B, Qwen2.5-VL-7B, and other vision models
  • Client Access: self.vlm_client.extract_from_image() for building custom tools
  • Composable Prompts: get_vlm_system_prompt() provides usage guidelines

Usage:

class VisionAgent(Agent, VLMToolsMixin):
    def __init__(self):
        super().__init__()
        self.init_vlm(model="Qwen3-VL-4B-Instruct-GGUF")
        # 2 tools auto-registered: analyze_image, answer_question_about_image

Design note: create_story_from_image implemented as custom tool in SDAgent (not in VLMToolsMixin) to demonstrate building specialized tools using self.vlm_client. Encourages custom tool development over bloating mixins with every use case.

Multi-Step Workflow Parameter Passing

Framework improvement enabling agents to pass results between steps automatically.

How it helps: Build complex workflows (data fetch → process → analyze → store) without manual result passing. Works for all agents, not just SD Agent.

Problem: Multi-step workflows failed because agents couldn't reference previous outputs. Resulted in "Image not found" errors when step 2 needed step 1's image_path.

Solution: Placeholder syntax automatically resolves to actual values:

{
  "plan": [
    {"tool": "generate_image", "tool_args": {"prompt": "robot"}},
    {"tool": "create_story_from_image", "tool_args": {"image_path": "$PREV.image_path"}}
  ]
}
# System resolves: $PREV.image_path → "./generated/robot_123.png"

Features:

  • $PREV.field - Reference previous step
  • $STEP_N.field - Reference specific step (0-indexed)
  • Recursive resolution for nested structures
  • Backward compatible (existing plans work unchanged)

Improvements

Composable System Prompts

Architectural pattern enabling automatic prompt composition across mixins.

How it helps: Build agents that inherit domain expertise automatically. No manual prompt assembly or knowledge duplication.

Implementation:

  • Mixins own knowledge: get_sd_system_prompt() provides SD prompt engineering, get_vlm_system_prompt() provides VLM usage
  • Auto-composition: Agent base class collects and merges mixin prompts
  • Easy extension: Agents add custom prompts via _get_system_prompt()
# Mixins provide domain-specific prompts
def get_sd_system_prompt(self) -> str:
    return BASE_GUIDELINES + MODEL_SPECIFIC_PROMPTS[self.sd_default_model]

# Agent auto-composes: SD + VLM + custom prompts

Agent Framework

  • Loop Detection: Configurable max_consecutive_repeats (default: 4) - Allows "create 3 designs" while preventing infinite loops
  • Default max_steps: Increased from 5 → 20 - Supports complex multi-step workflows without artificial limits
  • State Management: Cleanup on error recovery - Prevents stale data contamination between plan attempts
  • Console Warnings: Rich-formatted output - Better visibility than silent logger messages

Model Downloads

  • CLI-based: lemonade-server pull instead of HTTP - More reliable with built-in retry logic
  • Interrupt Support: Graceful Ctrl+C - Cancel long downloads without breaking state
  • Context Verification: Force unload/reload - Ensures 16K context persists correctly

Documentation

  • Consolidated Playbook: 4 files → 1 guide - Faster learning without fragmentation
  • GitHub Support Links: Issue reporting in troubleshooting - Clear path to get help
  • Contributing Guide: Documentation guidelines - Easier for community contributions
  • Example Code: examples/sd_agent_example.py - Working reference implementation

Developer Experience

  • uvx Fallback: Lint works without uvx - One less dependency to install
  • Video Demo Scripts: Documentation tooling - Easier to create demos
  • Better Console Output: Rich formatting - Clearer agent execution visibility

Infrastructure

  • Lemonade 9.2.0: Required for SDXL models
  • Merge Queue: Concurrency optimization - Faster CI/CD feedback
  • Release Automation: Auto-triggered notes - Streamlined release process

Bug Fixes

  • Multi-step workflows: Fixed "Image not found" when step 2 references step 1 output (e.g., passing image_path)
  • Context exceeded: SD Agent completes without hitting token limits (16K context)
  • Loop detection: Agents handle "create 3 designs" without false warnings (threshold: 4 consecutive)
  • Context persistence: 16K settings saved correctly during gaia init reruns
  • Missing exports: Fixed gaia.agents.tools package in setup.py
  • Missing dependencies: Added requests to requirements

Breaking Changes

None - This release is 100% backward compatible.


Upgrade

# Install/upgrade GAIA
uv pip install --upgrade amd-gaia

# Setup SD profile (downloads ~15GB models)
gaia init --profile sd

# Test multi-modal workflow
gaia sd "create a robot exploring ancient ruins"

Full Changelog

66 commits from multiple contributors

Key PRs:

  • #287 - Add Stable Diffusion Image Generation Support
  • #296 - SD Agent enhancements: multi-modal capabilities, composable prompts, parameter passing
  • #291 - Use lemonade CLI for model downloads
  • #288 - Standardize playbook installation
  • #286 - Contributing guide for documentation
  • #284 - Update Lemonade to v9.2.0
  • #283 - Fix missing gaia.agents.tools package
  • #256 - Optimize merge queue

Full Changelog: v0.15.2...v0.15.3

v0.15.2

24 Jan 04:46
d29983d

Choose a tag to compare

Overview

This release focuses on streamlined setup experience with improvements to gaia init, Lemonade 9.1.4 compatibility, expanded MCP ecosystem roadmap, and numerous documentation fixes based on manual testing.

What's New

Improved gaia init Command

Enhanced one-stop setup command for reliability and user experience:

  • Simplified Download Flow: Downloads all required models directly instead of pre-checking availability
  • Download Speed Display: Progress bar now shows download speed (e.g., @ 75 MB/s)
  • Remote Server Support: New --remote flag for remote Lemonade server setups
  • Graceful Shutdown: gaia kill --lemonade now uses graceful lemonade-server stop
  • Removed Redundancy: gaia pull command removed (use lemonade-server pull instead)
# Quick setup with speed display
gaia init

# For remote Lemonade server setups
gaia init --remote

Lemonade 9.1.4 Support

Full compatibility with Lemonade Server 9.1.4:

  • Health Check Updates: Updated health check format handling
  • Version Display: Docs navbar shows v0.15.2 · Lemonade 9.1.4

Computer Use Agent (CUA) Documentation

New documentation and roadmap for the Computer Use Agent:

  • Technical Specification: GUI automation capabilities
  • Roadmap: Screen capture, element detection, action execution
  • Integration Patterns: Works with existing agent framework

MCP Ecosystem Roadmap

Expanded Model Context Protocol plans for Q1 2026:

  • MCP Client Mixin: Plan for client-side MCP integration
  • Ecosystem Roadmap: Comprehensive Q1 2026 timeline
  • Documentation: Enhanced MCP documentation coverage

Release Branch Automation

GitHub Action automatically updates the release branch on tag push:

  • Mintlify Integration: Seamless docs deployment on releases
  • Version Tracking: Navbar displays current version automatically

⚠️ Breaking Change: The gaia pull command has been removed. Use lemonade-server pull directly instead.

Improvements

Developer Experience

  • Lint Script Improvements: Enhanced --fix mode for better auto-formatting (#229)
  • uvx Auto-Download: Lint utilities now use uvx for automatic tool installation (#218)
  • Import Validation: Fixed import inconsistencies and enhanced validation (#204)
  • Max-Steps Warning: Now appears after final step completes, not before (#249)

Documentation

Based on manual testing, several guides were corrected:

  • Chat SDK Guide: Fixed examples and workflows (#194)
  • Blender Agent Guide: Corrected setup and usage instructions (#195)
  • Hardware Advisor Playbook: Fixed structure and renamed to index.mdx (#217)
  • Hardware Advisor Agent: Fixed 'No Plan Found' warning for simple queries (#216)

UI/UX

  • Navbar Improvements: Added bottom border and improved tab visibility (#212)

Infrastructure

  • Legacy Installer Removed: NSIS Windows Installer removed in favor of Python packages (#192)
  • Dependabot: Set to monitor-only mode to reduce PR noise
  • GitHub Actions: Bumped action versions across the repository (#198)

Bug Fixes

  • #249: Max-steps warning timing - now appears after final step completes
  • #221: Related max-steps warning timing issue
  • #250: Model download flow reliability in gaia init
  • #216: Hardware Advisor Agent 'No Plan Found' warning for simple queries

Breaking Changes

Change Migration
gaia pull removed Use lemonade-server pull directly
Legacy NSIS installer removed Use Python package installation (pip install amd-gaia)

Full Changelog

18 commits from multiple contributors

Key PRs:

  • #249 - Fix max-steps warning timing to appear after final step completes
  • #219 - Add gaia init command for one-stop setup
  • #229 - Improve --fix mode for lint scripts
  • #228 - Update and support Lemonade 9.1.4 health check format
  • #225 - Add Computer Use Agent (CUA) Documentation and Roadmap
  • #218 - Update lint utilities to use uvx for auto-downloading tools
  • #217 - Fix Hardware Advisor Playbook structure
  • #216 - Fix Hardware Advisor Agent 'No Plan Found' warning
  • #212 - Add navbar bottom border and improve tab visibility
  • #206 - MCP Client Mixin Plan and Roadmap
  • #204 - Fix Import Inconsistencies and Enhance Validation
  • #202 - Q1 2026 MCP Ecosystem Roadmap
  • #198 - Bump the github-actions group
  • #195 - Fix Blender Agent guide based on manual testing
  • #194 - Fix Chat SDK guide based on manual testing
  • #192 - Remove Legacy NSIS Windows Installer

Full Changelog: v0.15.1...v0.15.2

v0.15.1

17 Jan 02:27
6478416

Choose a tag to compare

GAIA v0.15.1 Release Notes

Overview

This release introduces the Summarization Agent with MCP integration, refactors the LLM Client Architecture to a provider-based pattern, adds Claude AI Assistant automation for GitHub issues and PRs, and significantly improves developer tooling with automated release notes, simplified CLI, and new evaluation benchmarks.

Installation

# Install uv (ultra-fast Python package manager)
# Windows: irm https://astral.sh/uv/install.ps1 | iex
# macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh

git clone https://github.com/amd/gaia.git
cd gaia
uv venv .venv --python 3.12
source .venv/bin/activate  # Windows: .\.venv\Scripts\Activate.ps1
uv pip install -e .
gaia -v

Or install from PyPI:

uv pip install amd-gaia

What's New

📝 Summarization Agent

New agent for document summarization with MCP bridge integration:

  • MCP Bridge Integration: Data sent as multipart/form-data leveraging OCR capabilities
  • Streaming Responses: Summarization results streamed in real time
  • Iterative Summarization: Produced iteratively to minimize time-to-first-token (TTFT)
  • PDF Text Caching: Extracted text cached for improved performance
  • KV Cache Optimization: Reduced TTFT by leveraging KV cache properly
gaia summarize document.pdf

🔧 LLM Client Factory

Complete refactor of LLM client architecture for better maintainability:

  • Provider Pattern: New LemonadeProvider, OpenAIProvider, ClaudeProvider implementations
  • Factory Function: Easy instantiation with create_client("lemonade")
  • Base Interface: Abstract LLMClient class for consistent behavior
  • Auto-Loading: Models automatically load before requests in LemonadeClient
  • Default Temperature: 0.1 for deterministic responses
from gaia.llm import LLMClient, create_client

# New pattern
client = create_client("lemonade")  # or "openai", "claude"
response = client.chat("Hello!")

🤖 Claude AI Assistant Workflow

Automated Claude assistance for GitHub issues and pull requests:

  • PR Review: Automatic reviews on PR open/ready with security and AMD compliance checks
  • Issue Handling: Intelligent triage and response to new issues
  • @claude Mentions: Responds to mentions in PR comments and issues
  • Documentation-Aware: References docs/docs.json for intelligent responses
  • Cost-Optimized: Concurrency control and selective triggering

📋 Automated Release Notes Generation

Claude-powered release notes when GitHub releases are created:

  • Dual Output: RELEASE_NOTES.md (GitHub) + docs/releases/vX.Y.Z.mdx (website)
  • Iterative Diff Analysis: Splits diffs by component for large releases
  • Auto Version Bump: Automatically bumps to next patch version after release
  • MDX Validation: Validates frontmatter, required sections, and changelog links
  • Self-Review: Claude verifies its generated output before committing

💻 GAIA Code CLI Simplification

Streamlined CLI by removing unnecessary subcommands:

  • Direct Invocation: gaia-code "Build me an app" works directly
  • Auto-Initialization: Models load automatically on first use
  • 176 Lines Removed: Cleaner, simpler codebase
  • Working Help: gaia-code --help now shows ALL arguments
# These all work directly now:
gaia-code "Build me a todo app"
gaia-code "Build me an app" --path ~/projects/myapp
gaia-code --interactive

Breaking Change: The run subcommand has been removed:

  • gaia-code run "Build me an app" (no longer works)
  • gaia-code "Build me an app" (new syntax)

🧪 Fix-Code Microbenchmark

New evaluation framework for automated code fixes:

  • CLI Helper: gaia eval fix-code command
  • Prompt Engineering: Experiment with prompt designs for code fixes
  • Multi-Model Support: Test with local models or Claude
  • Sample Fixtures: Python and TypeScript bug examples included
  • Diff Output: Shows patched output with diffs
gaia eval fix-code --model claude examples/sum.py

📊 Performance Analysis Plotter

New CLI tool for analyzing LLM server performance:

  • Log Analysis: Ingests llama.cpp server logs
  • Token Charts: Generates prompt/input/output token count charts
  • Performance Metrics: TTFT and TPS plots
  • Prefill vs Decode: Pie charts showing time distribution
gaia perf-analysis --show server.log

🗺️ Public Roadmap

New documentation section with transparent development plans:

  • Roadmap Page: Timeline and upcoming priorities at amd-gaia.ai
  • Technical Plans: Detailed specs for Chat UI and Installer
  • Q1 2026 Timeline: Visual Mermaid diagram showing planned features
  • Community Engagement: Email contact (gaia@amd.com) for use cases

Improvements

Claude Framework Refresh

  • Pruned Agents: 28 → 24 agents (removed redundant ones)
  • Renamed Agents: Clearer naming (ai-engineer → gaia-agent-builder, etc.)
  • New Agent: sdk-architect for SDK API design guidance
  • Pre-commit Hook: Auto-fixes code before commits

Documentation

  • Mermaid Diagrams: Converted 56+ ASCII diagrams to Mermaid in specs
  • Routing Agent: Updated diagram to Mermaid format
  • CLAUDE.md: Comprehensive issue response guidelines
  • Glossary: Updated with Claude Code integration guidance

Infrastructure

CI/CD Improvements

  • Electron CI Tests: Validation for Dependabot PRs (#183)
  • PyPI Wheel Uploads: Automated wheel publishing support (#93)
  • uv Standardization: All workflows use uv for consistency (#179)
  • Self-Hosted Runner Monitoring: New workflows to track CI runners (#178)
  • GitHub Actions Updates: Bumped to latest versions across 15 files

Build & Dependencies

  • Bumped electron from 28.3.3 to 35.7.5
  • Bumped esbuild and vite in EMR dashboard frontend
  • Bumped qs from 6.14.0 to 6.14.1 in docs
  • Bumped GitHub Actions group with 4 updates

Workflow Improvements

  • Fork Support: Claude workflow now works correctly with forks
  • Header Check Removal: Simplified workflows by removing header checks
  • Outside Contributors: Skip copyright header check for external contributors
  • Docs Validation: New workflow validates MDX syntax with Mintlify CLI

Bug Fixes

  • #152: Summarization KV cache bypass causing high TTFT - now leverages cache properly
  • #142: Security updates for esbuild and vite dependencies
  • #143: Security update for qs dependency
  • #144: Electron security update (28.3.3 → 35.7.5)

Breaking Changes

Change Migration
gaia-code run removed Use gaia-code "prompt" directly
LLMClient import path Use from gaia.llm import LLMClient, create_client

Full Changelog

40 commits from 8 contributors

Key PRs:

  • #170 - Summarization Agent with MCP bridge integration
  • #150 - LLM Client Factory refactor with provider pattern
  • #154 - Claude AI Assistant GitHub Actions Workflow
  • #197 - Automated release notes generation with Claude
  • #147 - GAIA Code CLI simplification
  • #159 - Fix-Code Microbenchmark for evaluation
  • #158 - Performance Analysis Plotter for LLM logs
  • #166 - Public Roadmap and Technical Plans
  • #149 - Claude framework refresh (24 agents)
  • #152 - KV cache optimization for summarization
  • #93 - PyPI wheel upload support
  • #183 - Electron CI tests for Dependabot
  • #179 - Standardize workflows to uv

Full Changelog: v0.15.0...v0.15.1

v0.15.0

06 Jan 02:07
0225939

Choose a tag to compare

GAIA v0.15.0 Release Notes

Overview

This release transforms GAIA into a full AI Agent Framework (SDK v1.0.0), introduces the Medical Intake Agent with Dashboard, adds the Database Module for SQLite-backed agents, and includes comprehensive documentation improvements with new playbooks.

Installation

# Install uv (ultra-fast Python package manager)
# Windows: irm https://astral.sh/uv/install.ps1 | iex
# macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh

git clone https://github.com/amd/gaia.git
cd gaia
uv venv .venv --python 3.12
source .venv/bin/activate  # Windows: .\.venv\Scripts\Activate.ps1
uv pip install -e .
gaia -v

Or install from PyPI:

uv pip install amd-gaia

What's New

🚀 SDK v1.0.0 - AI Agent Framework

GAIA is now positioned as a pure framework/SDK for building AI PC agents:

  • 900+ line API reference with 20+ components
  • 60+ MDX documentation files organized into tabs
  • 55+ interface validation tests
  • Mintlify-powered documentation site at amd-gaia.ai
from gaia import Agent, tool

class MyAgent(Agent):
    def _get_system_prompt(self) -> str:
        return "You are a helpful assistant."

    def _register_tools(self):
        @tool
        def greet(name: str) -> str:
            """Greet someone by name."""
            return f"Hello, {name}!"

🏥 Medical Intake Agent with Dashboard

Complete patient intake form processing system:

  • Automatic file watching for intake forms (.png, .jpg, .pdf)
  • VLM-powered data extraction (Qwen2.5-VL on NPU)
  • SQLite database with 17 patient fields
  • Real-time React dashboard with SSE updates
  • Natural language patient queries
gaia-emr watch          # Auto-process forms
gaia-emr dashboard      # Launch web dashboard
gaia-emr query "Find patient John Smith"

🗄️ Database Module

New gaia.database module with two usage patterns:

DatabaseAgent (prototyping):

from gaia import DatabaseAgent

class MyAgent(DatabaseAgent):
    def __init__(self, **kwargs):
        super().__init__(db_path="data/app.db", **kwargs)

DatabaseMixin (production):

from gaia import Agent, DatabaseMixin, tool

class MyAgent(Agent, DatabaseMixin):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.init_db("data/app.db")

🧪 Testing Utilities Module

New gaia.testing module for testing agents without real LLM/VLM services:

  • MockLLMProvider, MockVLMClient, MockToolExecutor
  • temp_directory, temp_file, create_test_agent fixtures
  • assert_llm_called, assert_tool_called assertions
  • 51 unit tests with full coverage
from gaia.testing import MockLLMProvider, assert_llm_called

def test_my_agent():
    mock_llm = MockLLMProvider(responses=["I found the data"])
    agent = MyAgent(skip_lemonade=True)
    agent.chat = mock_llm
    result = agent.process_query("Find data")
    assert_llm_called(mock_llm)

💻 Hardware Advisor Agent

New example agent with LemonadeClient APIs for dynamic model recommendations:

python examples/hardware_advisor_agent.py

📚 GAIA Code Playbook

Complete 3-part playbook for the Code Agent:

  • Part 1: Introduction and fundamentals
  • Part 2: Application creation and development
  • Part 3: Validation and building workflows

Improvements

Agent UX Enhancements

  • Rich Panel Final Answers: Agent responses now appear with green-bordered panels and "✅ Final Answer" title
  • Better Completion Messages: Removed confusing step counters, now shows clean "Processing complete!" message
  • Enhanced Error Display: Shows execution trace with Query → Plan Step → Tool → Error, plus code context with line pointers

Code Agent

  • Limited router to TypeScript only (other languages report helpful error)
  • Fixed default path issue where create-next-app would fail on non-empty directories
  • Added dynamic timer scaffolding and artifact-aware planning

Lemonade Server Integration

  • Centralized initialization in LemonadeManager singleton
  • Changed context size check from error to warning (agents continue running)
  • Fixed VLM image processing breaking embeddings endpoint

Documentation

  • New setup.mdx with step-by-step installation guide
  • New glossary.mdx with 50+ GAIA terms
  • Streamlined learning path: Quickstart → Hardware Advisor → Playbooks/Guides
  • Applied <CodeGroup> component across multiple docs for compact command examples
  • Standardized license headers across 90+ files
  • Added source code links throughout documentation

PyPI Package

  • Renamed from gaia to amd-gaia (import name remains gaia)
  • Enhanced PyTorch CPU-only build support

Bug Fixes

  • #1092: Agent receives empty response after tool execution - fixed duplicate message insertion
  • #1088: Confusing agent completion messages showing incomplete steps
  • #1087: Context size error now shows as warning instead of blocking
  • #134: Blender MCP 'Namespace' object has no attribute 'stats'
  • #1075: VLM image processing breaks embeddings endpoint
  • #1083: Agent tool calling fixed with JSON format instructions in base class
  • #1095: Windows npx command can't find TypeScript compiler
  • #1137: Code agent default path fails on non-empty directories
  • #1079: Authentication flow for documentation sub-pages
  • #940: Empty LLM response when last message has role==tool

Infrastructure

CI/CD

  • All workflows now skip tests on draft PRs (unless ready_for_ci label added)
  • New test_unit.yml workflow for fast unit/integration tests
  • Updated GitHub Actions: actions/checkout v5, actions/setup-python v6

Documentation Site

  • Access code protection via Express.js proxy server
  • Railway deployment with cookie-based authentication
  • Open redirect and XSS vulnerability fixes

Breaking Changes

None. All changes are additive.

Full Changelog

40 commits from 8 contributors

Key PRs:

  • #1063 - Transform GAIA into AI Agent Framework (SDK v1.0.0)
  • #1101 - Medical Intake Agent with Dashboard
  • #1093 - Add Database Module with DatabaseMixin and DatabaseAgent
  • #1098 - Add Testing Utilities Module
  • #1131 - GAIA Code Playbook
  • #1113 - Hardware Advisor agent
  • #1112 - Fix agent empty response after tool execution
  • #1085 - Rename PyPI package to amd-gaia
  • #1067 - Centralize Lemonade Server Initialization

Full Changelog: v0.14.2...v0.15.0

v0.14.1

15 Dec 23:31
606effa

Choose a tag to compare

GAIA v0.14.1 Release Notes

Overview

This release enhances the Code Agent with checklist-based orchestration for web development, upgrades to Lemonade Server v9.1.0, and fixes chat history persistence.

Installation

# Install uv (ultra-fast Python package manager)
# Windows: irm https://astral.sh/uv/install.ps1 | iex
# macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh

git clone https://github.com/amd/gaia.git
cd gaia
uv venv .venv --python 3.12
source .venv/bin/activate  # Windows: .\.venv\Scripts\Activate.ps1
uv pip install -e .
gaia -v

Note: As GAIA is upgraded, the above flow is the recommended one. A new installer is coming in a future.

What's New

🛠️ Code Agent Enhancements

New orchestration framework for building web applications:

  • Checklist-driven workflows that break complex tasks into structured steps
  • Automatic project type detection (Next.js, Python) with appropriate tooling
  • Conversation history summarization for faster debugging cycles
  • Validation tools for build, lint, and type-checking
gaia code "Create a task management app with user authentication"

🍋 Lemonade Server v9.1.0

  • Upgraded to Lemonade Server v9.1.0
  • Health check verifies Lemonade installation with clear error messages if missing
  • Context size validation ensures sufficient tokens before agent execution

💬 Chat Improvements

  • History persistence fix: Conversation history now properly saves with /save and restores with /resume
  • Better no-document behavior: Chat agent uses general knowledge instead of failing when no documents are indexed

Improvements

  • Linting: Cross-platform linting script (util/lint.py) for Windows/macOS/Linux
  • CI/CD: New chat agent test workflow

What's Changed

Full Changelog: v0.14.0...v0.14.1

v0.14.0

11 Dec 14:45
a359d0a

Choose a tag to compare

GAIA v0.14.0 Release Notes

Overview

This release introduces the Knowledge Assistant for document Q&A with agentic RAG, transitions to a streamlined cross-platform developer workflow using uv, and includes Lemonade Server v9.0.8 with auto-start capabilities.

Installation

# Install uv (ultra-fast Python package manager)
# Windows: irm https://astral.sh/uv/install.ps1 | iex
# macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh

git clone https://github.com/amd/gaia.git
cd gaia
uv venv .venv --python 3.12
source .venv/bin/activate  # Windows: .\.venv\Scripts\Activate.ps1
uv pip install -e .
gaia -v

Why uv? 10-100x faster installs, automatic Python management, cross-platform support (Windows/macOS/Linux), and editable installs.

Note: As GAIA is upgraded, the above flow is the recommended one. A new installer is coming in a future.

What's New

📚 Knowledge Assistant - Document Q&A

Chat with your documents using agentic RAG:

  • Index PDFs, markdown, text, CSV, JSON, and 30+ code file types
  • Semantic search with hybrid keyword boosting
  • VLM image extraction from PDFs
  • Auto-discovery: agent searches, indexes, and answers automatically
gaia chat --index manual.pdf
gaia rag quick report.pdf "What are the key findings?"
gaia talk --index document.pdf

🍎 Cross-Platform Support

  • Native macOS and Linux support
  • Removed Conda dependency, migrated to Python venv
  • macOS testing in CI/CD

🍋 Lemonade Server v9.0.8 Auto-Start

  • GAIA automatically starts Lemonade Server if not running
  • Version compatibility checks
  • --base-url support for custom endpoints

⬇️ Model Pull with Streaming Progress

gaia model pull Qwen2.5-3B-Instruct-GGUF

Download models with real-time progress updates and resume support.

🛠️ Code Agent Improvements

  • Enhanced debugging capabilities
  • Structured tool role messages
  • Bug fixes and deprecated tool cleanup

🔗 Unified --base-url CLI Support

Use custom Lemonade Server URLs across all commands:

gaia chat --base-url http://custom-server:8000

Improvements

  • Evaluation: Transcript validation, extended timeouts, resume/retry for groundtruth
  • Security: Path traversal prevention with PathValidator
  • Infrastructure: Constants refactoring, localhost reference updates
  • Developer Experience: API documentation, Lemonade MSI installer, Node.js v20 VSCode prereq
  • CI/CD: Workflow updates

Full Changelog: v0.13.0...v0.14.0

v0.13.0

14 Nov 16:12
8981b65

Choose a tag to compare

GAIA v0.13.0 Release Notes

Overview

This major release introduces GAIA Code, a proof-of-concept AI coding agent with VSCode integration, and a Docker Agent for containerized workflows. Most significantly, this release establishes a new architecture that allows GAIA agents to be easily built, and to be exposed via API, MCP, and CLI, opening up extensive possibilities for agent composition and integration. The release also includes improvements to the evaluation framework and enhanced documentation for building custom agents.

What's New

🚀 GAIA Code Agent with VSCode Integration (#774, #864)

Introduced a proof-of-concept AI-powered coding agent with Visual Studio Code integration:

  • In-Editor Development: Trigger GAIA Code Agent from VSCode via extension coupled with GitHub Copilot
  • Automated Code Generation: Generate Python code from natural language descriptions
  • Test-Driven Development: Automatic test generation and execution
  • Iterative Refinement: Multi-iteration approach to code quality
  • File Context Awareness: Automatic workspace file monitoring and context

Note: GAIA Code is currently a proof-of-concept focused on Python development workflows.

Files Changed: src/gaia/agents/code/, VSCode extension files

🐳 Docker Agent (#811, #833)

New proof-of-concept Docker agent for containerized application development:

  • Container Management: Create, start, stop, and manage Docker containers
  • Image Building: Automated Dockerfile generation and image builds
  • Docker Compose Support: Multi-container orchestration capabilities
  • Isolated Environments: Containerized development environments for projects

Note: The Docker Agent is currently a proof-of-concept demonstrating containerized workflow automation.

🏗️ Agent Architecture: Multi-Protocol Exposure (#846)

Major architectural enhancement enabling GAIA agents to be exposed through multiple interfaces:

  • API Exposure: RESTful API endpoints for agent interactions
  • MCP (Model Context Protocol): Native MCP server support for agent communication
  • CLI Interface: Command-line access to agent capabilities
  • Unified Pattern: Class inheritance-based design pattern for building new agents

This architecture opens up powerful possibilities:

  • Integrate agents into existing tools and workflows
  • Build custom agents using established patterns
  • Mix and match communication protocols based on needs

Improvements

🔧 Evaluation Framework Improvements

Fix: Remove Silent Fallback in Transcript Matching (#843)

Improved error handling in evaluation transcript matching:

  • Fail-Fast Approach: Clear failures instead of silent fallbacks
  • Better Debugging: Improved error messages for mismatches
  • Data Integrity: Ensures evaluation data consistency

Restore Python Execution Tools (#839)

Re-added essential Python execution capabilities:

  • Restored run_test tool for test execution
  • Restored execute_python_file tool for script running
  • Better integration with code agent workflows

Getting Started with Custom Agents

With the new agent architecture, building custom agents is straightforward. Agents can inherit from base classes and automatically gain API, MCP, and CLI exposure. See the updated documentation for examples and best practices.

v0.12.1

22 Oct 06:45
84f0fd2

Choose a tag to compare

GAIA v0.12.1 Release Notes

Overview

This patch release focuses on bug fixes and improvements to the evaluation framework, particularly addressing issues with the visualization and reporting tools. All changes improve the reliability and usability of the gaia eval, gaia visualize, and gaia report commands.

What's Changed

Bug Fixes

🔧 Fix Evaluation Visualizer Model Count and Path Issues (#823)

Fixed multiple critical issues in the gaia visualize and gaia report commands:

  • Incorrect Model Count in Consolidated Report: Fixed model count calculation in the webapp to show the correct number of models (was showing only 4 instead of 8)

    • Now calculates unique models directly from metadata.evaluation_files instead of filtered/grouped data
  • Windows Path Separator Bug: Fixed cross-platform compatibility issue in isMainEvaluationEntry() function

    • Now handles both Unix (/) and Windows (\) path separators correctly
  • Incorrect Default Directory Paths: Updated default paths to match actual evaluation output locations

    • Changed from workspace/evaluation to workspace/output/evaluations
    • Changed from workspace/experiments to workspace/output/experiments
  • Outdated Report Filename: Updated default report filename from LLM_RAG_Evaluation_Report.md to LLM_Evaluation_Report.md

    • Better reflects support for multiple evaluation types (RAG, summarization, etc.)

Files Changed: src/gaia/cli.py, src/gaia/eval/eval.py, src/gaia/eval/webapp/public/app.js

Improvements

📊 Standardize Evaluation Workflow Default Directories (#820)

Implemented consistent default parameters across all evaluation commands with a unified directory structure:

./output/
├── test_data/          # gaia generate
├── groundtruth/        # gaia groundtruth
├── experiments/        # gaia batch-experiment
└── evaluations/        # gaia eval

Key Changes:

  • Added centralized directory constants in cli.py
  • Added GAIA_WORKSPACE environment variable support for flexible workspace management
  • Updated all command defaults to use the new structure
  • Updated documentation in docs/eval.md and docs/cli.md

Benefits:

  • Consistency: All evaluation artifacts organized in one location
  • Maintainability: Centralized constants eliminate duplication
  • Flexibility: Workspace environment variable for managing multiple projects
  • Cleanup: Single directory to clean or ignore

Files Changed: Multiple files including CLI, evaluation modules, webapp components, and documentation

🏷️ Improve Reporting for Cloud Model Identifiers (#834)

Enhanced model counting logic in the Evaluation Visualizer to support additional cloud model identifiers:

  • Added support for 'gpt-4' and 'gemini' model identifiers
  • Improved accuracy of model classification in reports

Files Changed: src/gaia/eval/webapp/public/app.js

Contributors

  • Kalin Ovtcharov (@kalin-ovtcharov)

Upgrade Notes

If you have existing evaluation workflows, note the following directory changes:

  • ./evaluation./output/evaluations
  • ./experiments./output/experiments

You can set the GAIA_WORKSPACE environment variable to use a custom workspace location if needed.


Full Changelog: v0.12.0...v0.12.1