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.7.tar.gz
(22.1 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.7-py3-none-any.whl
(30.1 kB
view details)
File details
Details for the file definable-0.1.7.tar.gz.
File metadata
- Download URL: definable-0.1.7.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
547c02ee8ae9d9b6b452bdede1bed489a2426c872eac10b09cc3e556acceaa0f
|
|
| MD5 |
2a1e65c2222063845d5cddb2f552e01a
|
|
| BLAKE2b-256 |
cf812a3ccd5c71f9492c549457c62c685342bfa1f74e457317c0efe57e4a9fa8
|
File details
Details for the file definable-0.1.7-py3-none-any.whl.
File metadata
- Download URL: definable-0.1.7-py3-none-any.whl
- Upload date:
- Size: 30.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 |
92a2e8fb80cfc46428f629e6099944651a83ac246772ea372cebbc57ca24b741
|
|
| MD5 |
6a5a4e03577fd145fb821cc34a0aad0a
|
|
| BLAKE2b-256 |
206049a4f7fdaac881db56e01cc99431e1c71c34b18a91ffb7fe1a3acb3368f4
|