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.8.tar.gz
(18.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.8-py3-none-any.whl
(22.5 kB
view details)
File details
Details for the file definable-0.1.8.tar.gz.
File metadata
- Download URL: definable-0.1.8.tar.gz
- Upload date:
- Size: 18.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 |
452e455742fb2536e854a51cda3b2ae587ff292d7f2bebddaa48758c69ce4077
|
|
| MD5 |
0de7c0c56928206149db24aa519b5cfe
|
|
| BLAKE2b-256 |
420481a0e5664e9f3acfd79196898d5c9ce58459a75839422ca370e745e276d0
|
File details
Details for the file definable-0.1.8-py3-none-any.whl.
File metadata
- Download URL: definable-0.1.8-py3-none-any.whl
- Upload date:
- Size: 22.5 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 |
7c2110e70df2bd08550f19ac997b12cbf65d21ef0b8cce91ec6288a6f0b8b0e3
|
|
| MD5 |
77f6fd9170630bcae4870586827a702d
|
|
| BLAKE2b-256 |
83bad34c8408ee4b6622244da212c3eefbffbe58edef315682691bb10fea576c
|