Metadata-Version: 2.4
Name: amd-gaia
Version: 0.18.1
Summary: GAIA is a lightweight agent framework designed for the edge and AI PCs.
Home-page: https://github.com/amd/gaia
Author: AMD
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: openai
Requires-Dist: pydantic>=2.9.2
Requires-Dist: transformers
Requires-Dist: accelerate
Requires-Dist: python-dotenv
Requires-Dist: aiohttp
Requires-Dist: rich
Requires-Dist: requests
Requires-Dist: beautifulsoup4
Requires-Dist: watchdog>=2.1.0
Requires-Dist: pillow>=9.0.0
Provides-Extra: image
Requires-Dist: term-image<0.8,>=0.7.0; extra == "image"
Provides-Extra: api
Requires-Dist: fastapi>=0.115.0; extra == "api"
Requires-Dist: uvicorn>=0.32.0; extra == "api"
Requires-Dist: python-multipart>=0.0.9; extra == "api"
Provides-Extra: ui
Requires-Dist: fastapi>=0.115.0; extra == "ui"
Requires-Dist: uvicorn>=0.32.0; extra == "ui"
Requires-Dist: python-multipart>=0.0.9; extra == "ui"
Requires-Dist: httpx>=0.27.0; extra == "ui"
Requires-Dist: psutil>=5.9.0; extra == "ui"
Requires-Dist: keyring<26.0.0,>=24.0.0; extra == "ui"
Requires-Dist: faiss-cpu>=1.7.0; extra == "ui"
Requires-Dist: numpy>=1.24.0; extra == "ui"
Requires-Dist: pymupdf>=1.24.0; extra == "ui"
Requires-Dist: pypdf; extra == "ui"
Requires-Dist: sentence-transformers; extra == "ui"
Requires-Dist: safetensors; extra == "ui"
Requires-Dist: torch>=2.0.0; extra == "ui"
Provides-Extra: audio
Requires-Dist: torch<2.4,>=2.0.0; extra == "audio"
Requires-Dist: torchvision<0.19.0; extra == "audio"
Requires-Dist: torchaudio; extra == "audio"
Provides-Extra: blender
Requires-Dist: bpy; extra == "blender"
Provides-Extra: mcp
Requires-Dist: mcp>=1.1.0; extra == "mcp"
Requires-Dist: starlette; extra == "mcp"
Requires-Dist: uvicorn; extra == "mcp"
Provides-Extra: telegram
Requires-Dist: python-telegram-bot>=20.3; extra == "telegram"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-benchmark; extra == "dev"
Requires-Dist: pytest-mock; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: pyfakefs; extra == "dev"
Requires-Dist: memory_profiler; extra == "dev"
Requires-Dist: matplotlib; extra == "dev"
Requires-Dist: adjustText; extra == "dev"
Requires-Dist: plotly; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: autoflake; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: bandit; extra == "dev"
Requires-Dist: responses; extra == "dev"
Requires-Dist: requests; extra == "dev"
Requires-Dist: httpx<0.29.0,>=0.27.0; extra == "dev"
Requires-Dist: respx<0.23.0,>=0.21.0; extra == "dev"
Requires-Dist: keyring<26.0.0,>=24.0.0; extra == "dev"
Provides-Extra: eval
Requires-Dist: anthropic; extra == "eval"
Requires-Dist: bs4; extra == "eval"
Requires-Dist: scikit-learn>=1.5.0; extra == "eval"
Requires-Dist: numpy<2.3.0,>=2.0; extra == "eval"
Requires-Dist: pypdf; extra == "eval"
Requires-Dist: reportlab; extra == "eval"
Provides-Extra: talk
Requires-Dist: sounddevice; extra == "talk"
Requires-Dist: openai-whisper; extra == "talk"
Requires-Dist: kokoro>=0.3.1; extra == "talk"
Requires-Dist: soundfile; extra == "talk"
Requires-Dist: psutil; extra == "talk"
Requires-Dist: pip; extra == "talk"
Provides-Extra: youtube
Requires-Dist: llama-index-readers-youtube-transcript; extra == "youtube"
Provides-Extra: rag
Requires-Dist: faiss-cpu>=1.7.0; extra == "rag"
Requires-Dist: numpy>=1.24.0; extra == "rag"
Requires-Dist: pymupdf>=1.24.0; extra == "rag"
Requires-Dist: pypdf; extra == "rag"
Requires-Dist: sentence-transformers; extra == "rag"
Provides-Extra: lint
Requires-Dist: black; extra == "lint"
Requires-Dist: pylint; extra == "lint"
Requires-Dist: isort; extra == "lint"
Requires-Dist: flake8; extra == "lint"
Requires-Dist: autoflake; extra == "lint"
Requires-Dist: mypy; extra == "lint"
Requires-Dist: bandit; extra == "lint"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# <img src="https://raw.githubusercontent.com/amd/gaia/main/src/gaia/img/gaia.ico" alt="GAIA Logo" width="64" height="64" style="vertical-align: middle;"> GAIA: AI Agent Framework for AMD Ryzen AI

[![GAIA CLI Tests](https://github.com/amd/gaia/actions/workflows/test_gaia_cli.yml/badge.svg)](https://github.com/amd/gaia/tree/main/tests "Check out our cli tests")
[![Latest Release](https://img.shields.io/github/v/release/amd/gaia?include_prereleases)](https://github.com/amd/gaia/releases/latest "Download the latest release")
[![PyPI](https://img.shields.io/pypi/v/amd-gaia)](https://pypi.org/project/amd-gaia/)
[![GitHub downloads](https://img.shields.io/github/downloads/amd/gaia/total.svg)](https://github.com/amd/gaia/releases)
[![OS - Windows](https://img.shields.io/badge/OS-Windows-blue)](https://amd-gaia.ai/docs/quickstart "Windows installation")
[![OS - Linux](https://img.shields.io/badge/OS-Linux-green)](https://amd-gaia.ai/docs/quickstart "Linux installation")
[![Python 3.10+](https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Discord](https://img.shields.io/badge/Discord-Join%20Community-7289DA?logo=discord&logoColor=white)](https://discord.com/channels/1392562559122407535/1402013282495102997)

**GAIA** is AMD's open-source framework for building intelligent AI agents that run **100% locally** on AMD Ryzen AI hardware. Keep your data private, eliminate cloud costs, and deploy in air-gapped environments—all with hardware-accelerated performance.

<p align="center">
  <a href="https://amd-gaia.ai/docs/quickstart"><strong>Get Started →</strong></a>
</p>

---

## Download

[![Download for Windows](https://img.shields.io/badge/Download-Windows-0078d4?style=for-the-badge&logo=windows)](https://github.com/amd/gaia/releases/latest)
[![Download for macOS](https://img.shields.io/badge/Download-macOS-000000?style=for-the-badge&logo=apple)](https://github.com/amd/gaia/releases/latest)
[![Download for Linux](https://img.shields.io/badge/Download-Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://github.com/amd/gaia/releases/latest)

See the [installation guide](https://github.com/amd/gaia/blob/main/docs/guides/install.mdx) for setup instructions.

---

## Why GAIA?

| Feature | Description |
|---------|-------------|
| **100% Local** | All data stays on your machine—perfect for sensitive workloads and air-gapped deployments |
| **Zero Cloud Costs** | No API fees, no usage limits, no subscriptions—unlimited AI at no extra cost |
| **Privacy-First** | HIPAA-compliant, GDPR-friendly—ideal for healthcare, finance, and enterprise |
| **Ryzen AI Optimized** | Hardware-accelerated inference using NPU + iGPU on AMD Ryzen AI processors |

---

## Build Your First Agent

```python
from gaia.agents.base.agent import Agent
from gaia.agents.base.tools import tool

class MyAgent(Agent):
    """A simple agent with custom tools."""

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

    def _register_tools(self):
        @tool
        def get_weather(city: str) -> dict:
            """Get weather for a city."""
            return {"city": city, "temperature": 72, "conditions": "Sunny"}

agent = MyAgent()
result = agent.process_query("What's the weather in Austin?")
print(result)
```

**[See the full quickstart guide →](https://amd-gaia.ai/docs/quickstart)**

---

## Key Capabilities

- **Agent Framework** — Base class with tool orchestration, state management, and error recovery
- **Agent UI** — Privacy-first desktop app with chat, file browser, document indexing, and tool execution
- **RAG System** — Document indexing and semantic search for Q&A over 50+ file formats
- **Voice Integration** — Whisper ASR + Kokoro TTS for speech interaction (P0 enabling technology)
- **Vision Models** — Extract text from images with Qwen3-VL-4B
- **MCP Integration** — Connect to any MCP server for external tool access
- **Plugin System** — Distribute agents via PyPI with auto-discovery

---

## C++ Framework

A C++17 port of the GAIA base agent framework is available under [`cpp/`](cpp/README.md). It implements the same agent loop, tool registry, and MCP client interface without any Python dependency — suitable for embedding in native applications or resource-constrained environments.

```cpp
#include <gaia/agent.h>

class MyAgent : public gaia::Agent {
protected:
    std::string getSystemPrompt() const override {
        return "You are a helpful assistant.";
    }
};
```

**[C++ build and usage instructions →](cpp/README.md)**

---

## Quick Install

```bash
pip install amd-gaia
```

For complete setup instructions including Lemonade Server, see the **[Quickstart Guide](https://amd-gaia.ai/docs/quickstart)**.

---

## System Requirements

| Requirement | Minimum | Recommended |
|-------------|---------|-------------|
| **Processor** | AMD Ryzen AI 300-series | AMD Ryzen AI Max+ 395 |
| **OS** | Windows 11, Linux | - |
| **RAM** | 16GB | 64GB |

---

## Documentation

- **[Quickstart](https://amd-gaia.ai/docs/quickstart)** — Build your first agent in 10 minutes
- **[SDK Reference](https://amd-gaia.ai/docs/sdk)** — Complete API documentation
- **[Guides](https://amd-gaia.ai/docs/guides)** — Chat, Voice, RAG, and more
- **[FAQ](https://amd-gaia.ai/docs/reference/faq)** — Frequently asked questions

---

## Releases

See the full [Release Notes](https://amd-gaia.ai/docs/releases) on the documentation site, or browse [GitHub Releases](https://github.com/amd/gaia/releases).

### Release Process

To publish a new release (e.g. `v0.17.0`), create a release PR that updates these 3 files:

| # | File | What to change |
|---|------|----------------|
| 1 | `src/gaia/version.py` | Set `__version__ = "0.17.0"` |
| 2 | `docs/releases/v0.17.0.mdx` | Create release notes (see [format guide](https://amd-gaia.ai/docs/releases)) |
| 3 | `docs/docs.json` | **(a)** Add `"releases/v0.17.0"` to the Releases tab pages array, **(b)** update the navbar label to `"v0.17.0 · Lemonade X.Y.Z"` |

Then merge and tag:

```bash
git tag v0.17.0 && git push origin v0.17.0
```

CI validates all three files are consistent with the tag before publishing to [GitHub Releases](https://github.com/amd/gaia/releases) and [PyPI](https://pypi.org/project/amd-gaia/).

---

## Contributing

We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details.

- **Build agents** in your own repository using GAIA as a dependency
- **Improve the framework** — check [GitHub Issues](https://github.com/amd/gaia/issues) for open tasks
- **Add documentation** — examples, tutorials, and guides

---

## Contact

- **Email**: [gaia@amd.com](mailto:gaia@amd.com)
- **Discord**: [Join our community](https://discord.com/channels/1392562559122407535/1402013282495102997)
- **Issues**: [GitHub Issues](https://github.com/amd/gaia/issues)

---

## License

[MIT License](./LICENSE.md)

Copyright(C) 2024-2026 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: MIT
