Infrastructure for building and deploying AI agents
Project description
Definable
Infrastructure for building and deploying AI agents with a simple YAML configuration and base class extension pattern.
Features
- Simple Base Class: Extend
AgentBoxto create your agent - YAML Configuration: Configure builds with declarative YAML files
- Docker Packaging: Build Docker images with a single command
- FastAPI Integration: Automatic REST API generation
- CLI Tools: Build and serve commands for development
Quick Start
1. Install Definable
pip install definable
2. Create Your Agent
# main.py
from definable import AgentBox, AgentInput, AgentOutput, AgentInfo
from pydantic import Field
class SampleAgentInput(AgentInput):
message: str = Field(description="Input message to process")
class SampleAgentOutput(AgentOutput):
response_message: str = Field(description="Processed response message")
class DemoAgent(AgentBox):
def setup(self):
self.name = 'demo-agent'
self.version = '1.0.0'
print("Demo agent initialized!")
def invoke(self, agent_input: SampleAgentInput) -> SampleAgentOutput:
processed_message = f"Processed: {agent_input.message.upper()}"
return SampleAgentOutput(response_message=processed_message)
def info(self) -> AgentInfo:
return AgentInfo(
name=self.name,
description="A simple demo agent that processes messages",
version=self.version,
input_schema=SampleAgentInput.model_json_schema(),
output_schema=SampleAgentOutput.model_json_schema()
)
3. Create Configuration
# agent.yaml
build:
python_version: "3.11"
dependencies:
- "requests>=2.28.0"
system_packages:
- "curl"
environment_variables:
- API_KEY
agent: "main.py:DemoAgent"
platform:
name: "demo-agent"
description: "A simple demo agent for testing"
version: "1.0.0"
concurrency:
max_concurrent_requests: 50
request_timeout: 300
4. Build and Serve
# Build Docker image
definable build -t my-agent
# Serve locally for development
definable serve -p 8000
Documentation
Visit our documentation for detailed guides and API reference.
License
MIT License - see LICENSE file for details.
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
definable-0.1.0.tar.gz
(9.7 kB
view details)
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
definable-0.1.0-py3-none-any.whl
(12.1 kB
view details)
File details
Details for the file definable-0.1.0.tar.gz.
File metadata
- Download URL: definable-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4040266c4b21c5c51dd864dbceb7f6f581700d562144b0c5dfd3cae1cc076af6
|
|
| MD5 |
73e23e10a13523a285db57c9c9aac28e
|
|
| BLAKE2b-256 |
fb549bdb4beb4310ee5102b5fa24ce5dcf6bc4fd23672c2d7c0774733094beaf
|
File details
Details for the file definable-0.1.0-py3-none-any.whl.
File metadata
- Download URL: definable-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d9c0a49605c6a754a566995cb3d35f2e2fec45d267031d85ad030e7772e8906
|
|
| MD5 |
1d6680420729e37447acc446af2db9f9
|
|
| BLAKE2b-256 |
3aadc19cc68c3b6fedf9215e4f258be863b20249256dfca2eeaffad09a5287e2
|