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.6.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.6-py3-none-any.whl
(30.1 kB
view details)
File details
Details for the file definable-0.1.6.tar.gz.
File metadata
- Download URL: definable-0.1.6.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 |
079ff1998821970860c43b32ab2ca1572b0240161ffb2d43c43219ebbee3f578
|
|
| MD5 |
89aed7dfcd0a0b279027d15b45e082ce
|
|
| BLAKE2b-256 |
ff74b8c5c08a06e8835f2f8ae6a86e736dd7ab28e780a82a0b620d01acc8e012
|
File details
Details for the file definable-0.1.6-py3-none-any.whl.
File metadata
- Download URL: definable-0.1.6-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 |
0caeb6dce537612223fb0a8f3cd474e49d622c5cb14f4e9561ff1acbb99c2285
|
|
| MD5 |
1af3e3a0b68aa5436581331b16902c1e
|
|
| BLAKE2b-256 |
07f9a215bb8e5c55cc64997f9dfa01349c18385f3d7744d01c7d5a0b9eb43df5
|