Skip to main content
Component: ApiAgent Module: gaia.agents.base.api_agent Import: from gaia.agents.base.api_agent import ApiAgent

Overview

ApiAgent is an optional mixin class for GAIA agents that want to be exposed via the OpenAI-compatible API with custom behavior. It provides methods for model metadata, token estimation, and response formatting. Agents can inherit from ApiAgent to customize their API representation while maintaining full agent functionality. Key Features:
  • OpenAI-compatible model ID generation
  • Model metadata customization
  • Token counting interface
  • Optional mixin pattern (works with any Agent)
  • Multiple inheritance support (with MCPAgent)

Requirements

Functional Requirements

  1. Model Identification
    • get_model_id() - Generate OpenAI-compatible model ID
    • Default naming: gaia-{classname} (strips “Agent” suffix)
    • Custom override support
  2. Model Metadata
    • get_model_info() - Provide model capabilities metadata
    • Token limits (input/output)
    • Optional description
    • Extensible custom fields
  3. Token Counting
    • estimate_tokens() - Estimate token count for text
    • Default: Simple char/4 heuristic
    • Override for model-specific tokenization
  4. Inheritance Patterns
    • Single inheritance: class MyAgent(ApiAgent, Agent)
    • Multiple: class MyAgent(MCPAgent, ApiAgent, Agent)
    • Order: Protocol mixins before Agent base class

Non-Functional Requirements

  1. Compatibility
    • Works with any Agent subclass
    • No required methods (all optional)
    • Backwards compatible with non-API agents
  2. Flexibility
    • All methods can be overridden
    • Sensible defaults provided
    • Extensible metadata
  3. Simplicity
    • Minimal interface (3 methods)
    • Clear documentation
    • Easy to implement

API Specification

File Location

Public Interface


Implementation Details

Default Model ID Generation

Default Model Info

Token Estimation Heuristic

Inheritance Pattern


Testing Requirements

Unit Tests

File: tests/agents/test_api_agent.py

Usage Examples

Example 1: Basic API Agent

Example 2: Custom Model ID and Metadata

Example 3: Custom Token Estimation

Example 4: Multi-Protocol Agent (MCP + API)

Example 5: Agent Without API Customization


Documentation Updates Required

docs/sdk/core/agent-system.mdx

Add to Agent Section:

ApiAgent Technical Specification