Aiello ToolX kit for Python
Project description
ATX - Aiello ToolX
Build standalone, LLM-ready tools from Python functions. Package your tools as portable executables that can be distributed and deployed anywhere.
What is ATX?
ATX (Aiello ToolX) is a framework for creating function tools that Large Language Models can discover and execute. It transforms Python functions into:
- Standalone executables - Single binary files with no external dependencies
- LLM-compatible - Self-describing tools with JSON schema definitions
- Distributable - Share tools across teams and environments
- Version-controlled - Manage multiple versions of the same tool
Quick Start
Installation
pip install atx-py
Create Your First Tool
Create a file my_tool.py:
from atx import AielloToolx
from typing import Any, Optional
class GreetTool(AielloToolx):
def name(self) -> str:
return "greet_user"
def description(self, context: Optional[str] = None) -> str:
return "Greets a user by name"
def parameters(self, context: Optional[str] = None) -> dict[str, Any]:
return {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the person to greet"
}
},
"required": ["name"]
}
def run(
self, arguments: Optional[str] = None, context: Optional[str] = None
) -> str:
import json
args = json.loads(arguments) if arguments else {}
name = args.get("name", "stranger")
return f"Hello, {name}!"
Build the Tool
atx build my_tool.py \
--tool-name greet_user \
--tool-version 1 \
--output-dir ./dist
Run the Tool
./dist/greet_user/1/tool --arguments '{"name": "Alice"}'
Output:
Hello, Alice!
Features
Type-Safe Parameters
Define parameters using JSON Schema with full type safety:
def parameters(self, context: Optional[str] = None) -> dict[str, Any]:
return {
"type": "object",
"properties": {
"location": {"type": "string"},
"days": {"type": "integer", "enum": [1, 5, 10]}
},
"required": ["location"]
}
Environment Variable Support
Securely handle API keys and sensitive data:
import os
def run(self, arguments: Optional[str] = None, context: Optional[str] = None) -> str:
api_key = os.getenv("MY_API_KEY")
if not api_key:
raise ValueError("MY_API_KEY environment variable is required")
# Use api_key...
Versioned Deployment
Deploy multiple versions side-by-side:
dist/
├── my_tool/
│ ├── 1/
│ │ └── tool
│ └── 2/
│ └── tool
Documentation
For comprehensive documentation, see:
- Documentation Home - Complete documentation index
- Getting Started Guide - Detailed tutorial
- Core Concepts - Understanding the framework
- API Reference - Complete API documentation
Examples
The project includes several prebuilt examples:
- hello_world - Minimal example
- get_maps_geocode - Google Maps geocoding
- get_weather_forecast_daily - Weather forecasts
Build and run examples:
# Build hello world
atx build atx/prebuilds/hello_world.py --tool-name hello_world --tool-version 1
# Run it
./dist/hello_world/1/tool
Development
Prerequisites
- Python 3.11+
- Poetry (for dependency management)
Setup
# Clone the repository
git clone <repository-url>
cd atx
# Install dependencies
poetry install
# Set up environment variables
cp .env.example .env
Running Tests
poetry run pytest
License
Private - Aiello Inc.
Contributing
This is a private project. For questions or contributions, please contact the Aiello development team.
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 atx_py-0.0.2.tar.gz.
File metadata
- Download URL: atx_py-0.0.2.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.14 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1da75d80285006b847f23f574966e24584287a1b2eacefc4bf28d2bc25413ea9
|
|
| MD5 |
4ebde3e60be1baa3b1c50b16deb3504b
|
|
| BLAKE2b-256 |
8df49ed758ea905f59c9235a27f7d25274d93df55d56d6a85b2d67521ea94e40
|
File details
Details for the file atx_py-0.0.2-py3-none-any.whl.
File metadata
- Download URL: atx_py-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.14 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a92651631c3e6298c3ad0c7ebb259b63f878abe540f439f1d82d6448f02c8684
|
|
| MD5 |
380b85917fe7f28abe2845baee3d7dd8
|
|
| BLAKE2b-256 |
0f778352f4cbccd704da1eb475dac0eb515a56e5533c93e941c1cc930d96ba56
|