Skip to main content

AXIS SDK - Zero-dependency protocol and type definitions for AXIS agents

Project description

AXIS SDK

Version: 0.3.0 Status: Production Ready License: MIT

Purpose

The axis-sdk is a zero-dependency boundary layer that defines contracts between AXIS components.

✅ Included

  • Protocol definitions (typing.Protocol)
  • Type definitions (pydantic.BaseModel)
  • Interface contracts for:
    • Agents (AgentProtocol)
    • Orchestrators (OrchestratorProtocol)
    • Telemetry (TelemetryProtocol)
    • Ledger (LedgerProtocol)
    • Skills (SkillProtocol)
    • Reasoning (ReasoningProtocol)

❌ Excluded

  • Business logic
  • Runtime implementations
  • Side effects (I/O, network, database)
  • External dependencies (except pydantic for validation)

Installation

pip install axis-sdk

Quick Start

from axis_sdk.protocols import AgentProtocol
from axis_sdk.types import AgentConfig

# Define your agent implementing the protocol
class MyAgent:
    """Custom agent implementation."""

    def __init__(self, config: AgentConfig):
        self.config = config

    @property
    def agent_id(self) -> str:
        return self.config.agent_id

    def validate_invocation(self, context: dict) -> bool:
        """Validate if agent can handle this invocation."""
        return True

    def run(self, task: str, context: dict) -> tuple:
        """Execute the agent task."""
        result = {"status": "completed", "output": "Task done"}
        tokens_used = 150
        metadata = {"model": "gemini-2.0-flash"}
        return True, result, tokens_used, metadata

API Reference

Protocols

AgentProtocol

from axis_sdk.protocols import AgentProtocol

@runtime_checkable
class AgentProtocol(Protocol):
    @property
    def agent_id(self) -> str: ...

    def validate_invocation(self, context: Dict[str, Any]) -> bool: ...

    def run(self, task: str, context: Dict[str, Any]) -> Tuple[bool, Any, int, Dict]: ...

OrchestratorProtocol

from axis_sdk.protocols import OrchestratorProtocol

@runtime_checkable
class OrchestratorProtocol(Protocol):
    def route_task(self, task: str, context: Dict[str, Any]) -> str: ...

    def execute_agent(self, agent_id: str, task: str, context: Dict[str, Any]) -> Dict: ...

Types

AgentConfig

from axis_sdk.types import AgentConfig

config = AgentConfig(
    agent_id="my-agent",
    model="gemini-2.0-flash",
    temperature=0.7,
    max_tokens=1000
)

Development

Install Dev Dependencies

pip install -e ".[dev]"

Run Tests

pytest

Run Linter

ruff check axis_sdk

Run Type Checker

mypy axis_sdk

License

MIT License - See LICENSE file.

Links


Part of AXIS Migration Project Separated from monorepo: https://github.com/emilyveigaai/AXIS

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

axis_sdk-0.3.1.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

axis_sdk-0.3.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file axis_sdk-0.3.1.tar.gz.

File metadata

  • Download URL: axis_sdk-0.3.1.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for axis_sdk-0.3.1.tar.gz
Algorithm Hash digest
SHA256 e7210d11832487582e8debee64860fff2b0a7ae118a8d478453b1cc448311d75
MD5 2235f19a92d9b0a9a97dc96fea433a27
BLAKE2b-256 8e200bb6fabac9eab031f9fcbeecfa8e329e2b301ab274596a00ec13c883cd60

See more details on using hashes here.

File details

Details for the file axis_sdk-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: axis_sdk-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for axis_sdk-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ba97e5a776461fd7fd9e7b5001b4104b3c63117e01349061522026d50552ff94
MD5 b48580a59ad8a7a81507a993302826df
BLAKE2b-256 999b35816f44d82e7aad6d0683f3f742a149d9376203fdb674659cec9a985356

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page