Skip to main content

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:

Examples

The project includes several prebuilt examples:

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


Download files

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

Source Distribution

atx_py-0.0.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

atx_py-0.0.2-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

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

Hashes for atx_py-0.0.2.tar.gz
Algorithm Hash digest
SHA256 1da75d80285006b847f23f574966e24584287a1b2eacefc4bf28d2bc25413ea9
MD5 4ebde3e60be1baa3b1c50b16deb3504b
BLAKE2b-256 8df49ed758ea905f59c9235a27f7d25274d93df55d56d6a85b2d67521ea94e40

See more details on using hashes here.

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

Hashes for atx_py-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a92651631c3e6298c3ad0c7ebb259b63f878abe540f439f1d82d6448f02c8684
MD5 380b85917fe7f28abe2845baee3d7dd8
BLAKE2b-256 0f778352f4cbccd704da1eb475dac0eb515a56e5533c93e941c1cc930d96ba56

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