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)
- Agents (
❌ Excluded
- Business logic
- Runtime implementations
- Side effects (I/O, network, database)
- External dependencies (except
pydanticfor 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
- GitHub: https://github.com/emilyveigaai/axis-sdk
- PyPI: https://pypi.org/project/axis-sdk/
- Issues: https://github.com/emilyveigaai/axis-sdk/issues
- Documentation: https://github.com/emilyveigaai/axis-sdk#readme
Part of AXIS Migration Project Separated from monorepo: https://github.com/emilyveigaai/AXIS
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7210d11832487582e8debee64860fff2b0a7ae118a8d478453b1cc448311d75
|
|
| MD5 |
2235f19a92d9b0a9a97dc96fea433a27
|
|
| BLAKE2b-256 |
8e200bb6fabac9eab031f9fcbeecfa8e329e2b301ab274596a00ec13c883cd60
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba97e5a776461fd7fd9e7b5001b4104b3c63117e01349061522026d50552ff94
|
|
| MD5 |
b48580a59ad8a7a81507a993302826df
|
|
| BLAKE2b-256 |
999b35816f44d82e7aad6d0683f3f742a149d9376203fdb674659cec9a985356
|