Skip to main content

Drop agents, not code — zero-code multi-agent API platform framework

Project description

agentomatic

⚡ Agentomatic

Drop agents, not code

CI PyPI Python License Docs

Zero-code multi-agent API platform framework. Create production-ready AI agent APIs with auto-discovery, auto-routing, streaming, A2A protocol, and full observability — in 3 lines of code.

Documentation · Quick Start · CLI Reference · Templates · Contributing


✨ Features

Feature Description
🔍 Auto-Discovery Drop an agent folder → endpoints appear automatically
🚀 12+ Endpoints Per Agent invoke, stream, chat, A2A, health, config, threads
🗄️ Pluggable Storage MemoryStore, SQLAlchemy, or bring your own
🔐 Middleware Pipeline Auth, rate limiting, Prometheus metrics — all toggleable
🎨 Built-in Debug UI ChatGPT-like interface via Chainlit
📦 5 Scaffolding Templates basic, full, rag, chatbot, custom
🤖 A2A Protocol Agent-to-agent communication out of the box
🔌 Framework Agnostic LangGraph, LangChain, or raw Python
🩺 Rich CLI Beautiful terminal experience with doctor, inspect, test
Prompt Optimizer DSPy-inspired prompt optimization (7 strategies)
🧪 Data Synthesizer Auto-generate & augment eval datasets via LLM
📊 HTML Reports SVG charts, prompt diffs, experiment tracking

🚀 Quick Start

Install

pip install agentomatic[all]

Create an Agent

agentomatic init my_agent --template basic

Build & Run

# main.py
from agentomatic import AgentPlatform

platform = AgentPlatform.from_folder("agents/")
app = platform.build()
uvicorn main:app --reload

Test

# CLI
agentomatic test my_agent

# curl
curl -X POST http://localhost:8000/api/v1/my_agent/invoke \
  -H "Content-Type: application/json" \
  -d '{"query": "Hello!"}'

🏗️ Architecture

┌─────────────────────────────────────────────────────────────┐
│                    AgentPlatform                            │
│                                                             │
│  ┌──────────┐  ┌──────────────┐  ┌───────────────────────┐ │
│  │ Registry │  │ Middleware   │  │ Storage               │ │
│  │          │  │ ├─ Auth      │  │ ├─ MemoryStore        │ │
│  │ agent_a  │  │ ├─ RateLimit │  │ ├─ SQLAlchemyStore   │ │
│  │ agent_b  │  │ ├─ Metrics   │  │ └─ YourStore(ABC)    │ │
│  │ agent_c  │  │ └─ Logging   │  │                       │ │
│  └──────────┘  └──────────────┘  └───────────────────────┘ │
│                                                             │
│  Per Agent: POST /invoke, /stream, /chat, /a2a/tasks ...   │
└─────────────────────────────────────────────────────────────┘

📂 Agent Structure

Only __init__.py is required. Everything else is optional overrides:

agents/my_agent/
├── __init__.py      ← REQUIRED: manifest + node_fn
├── graph.py         ← Optional: LangGraph StateGraph
├── nodes.py         ← Optional: node functions
├── config.py        ← Optional: Pydantic config
├── schemas.py       ← Optional: custom request/response models
├── tools.py         ← Optional: LangChain tools
├── api.py           ← Optional: custom router (REPLACES auto-gen)
├── prompts.json     ← Optional: versioned prompt templates
├── langgraph.json   ← Optional: LangGraph Studio config
├── .env.example     ← Optional: environment variables
└── README.md        ← Optional: agent documentation

📦 Templates

agentomatic init my_agent --template <template>
Template Files Description
basic 7 Minimal agent — quick start
full 11 All override files — config, schemas, api, tools
rag 9 Retrieve → Generate pipeline
chatbot 8 Conversational with memory
custom 4 Framework-agnostic — no LangGraph

🖥️ CLI

⚡ Agentomatic — Drop agents, not code

  init <name>      Scaffold a new agent from template
  run              Start the platform server
  list             List discovered agents (Rich table)
  test <name>      Interactive terminal testing
  inspect <name>   Show agent structure + config
  doctor           Environment health check
  ui               Launch Chainlit debug UI

⚙️ Configuration

from agentomatic import AgentPlatform
from agentomatic.storage import MemoryStore  # or SQLAlchemyStore

platform = AgentPlatform.from_folder(
    "agents/",
    # Storage
    store=MemoryStore(),
    # Auth
    enable_auth=True,
    auth_api_key="your-secret-key",
    # Rate limiting
    enable_rate_limit=True,
    rate_limit_requests=100,
    rate_limit_window=60,
    # Prometheus metrics
    enable_metrics=True,
    # Custom middleware
    middleware=[(MyMiddleware, {"arg": "value"})],
)
app = platform.build()

🗄️ Storage Backends

# Development
from agentomatic.storage import MemoryStore
store = MemoryStore()

# Production (PostgreSQL)
from agentomatic.storage import SQLAlchemyStore
store = SQLAlchemyStore("postgresql+asyncpg://user:pass@localhost/db")

# Custom
from agentomatic.storage import BaseStore
class RedisStore(BaseStore):
    async def create_thread(self, ...): ...
    async def get_thread(self, ...): ...

🎨 Debug UI

Built-in ChatGPT-like interface powered by Chainlit:

pip install agentomatic[ui]
agentomatic run --with-ui
# → http://localhost:8000/chat

Features: agent selector, streaming, tool call visualization, chain-of-thought, feedback collection.

📊 Auto-Generated Endpoints

Every agent gets 12+ endpoints automatically:

Method Path Description
POST /api/v1/{agent}/invoke Synchronous invocation
POST /api/v1/{agent}/invoke/stream SSE streaming
POST /api/v1/{agent}/chat Session-aware chat
GET /api/v1/{agent}/health Per-agent health
GET /api/v1/{agent}/card A2A agent card
POST /api/v1/{agent}/a2a/tasks A2A task submission
GET /api/v1/{agent}/threads List threads
... ... + config, prompts, thread messages

🛠️ Development

# Install
git clone https://github.com/UnicoLab/agentomatic.git
cd agentomatic
make dev  # Installs all deps + pre-commit hooks

# Quality
make lint          # Ruff linter
make format        # Auto-format
make typecheck     # Mypy
make test          # All tests
make test-cov      # With coverage
make check-all     # lint + typecheck + test

# Docs
make docs-serve    # Local docs server
make docs-build    # Build static site

# Build
make build         # Package
make publish       # PyPI

📜 License

MIT — see LICENSE.

👥 Authors

UnicoLab — Building the future of AI agent platforms.


⭐ Star us on GitHub — it helps!

Made with ❤️ by UnicoLab

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

agentomatic-0.2.0.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

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

agentomatic-0.2.0-py3-none-any.whl (120.6 kB view details)

Uploaded Python 3

File details

Details for the file agentomatic-0.2.0.tar.gz.

File metadata

  • Download URL: agentomatic-0.2.0.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentomatic-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6bb26da0673339c32b1075458eb8faef69fdf30561543e68233397141ea0f157
MD5 b36b63f09c801b7c629fd093d50b2187
BLAKE2b-256 8a64547563e5009013e2f35b67e3e3b8aad2db78ee9a79aedbf9ca9598c1140e

See more details on using hashes here.

File details

Details for the file agentomatic-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: agentomatic-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 120.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentomatic-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef8301840a0736f647310f41837ff19c11b56a0b525d38dbd8d59a8b5068c0c4
MD5 acd233fcfb8a7be0a6c2cb5e317eddfa
BLAKE2b-256 579656c9197c41a5ab134c36dc4fa19c57f62489866490b42748ab95576f5dfe

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