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.1.1.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.1.1-py3-none-any.whl (113.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agentomatic-0.1.1.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.1.1.tar.gz
Algorithm Hash digest
SHA256 2b09623582bcc16ce718ab292292724df685191b0acdafe243424a038d3bfea2
MD5 319128e8a5aadcfb8386b955f286936a
BLAKE2b-256 fc29525a44aea2f201bdf441920ab1309473ccf1280c6b6100376dd774d1a90c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: agentomatic-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 113.5 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bdf44d1b50750c19a257f7ef7c5cfbc42c66ddebfc1ebdd951ef5809ccb3c0ce
MD5 117b406ed7c81f66aae50e1961dc2328
BLAKE2b-256 14ffc7ed52f777dcdef3c64650b8e4f5ffb6a63a776b881ad404830207b6ba26

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