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.0.tar.gz (1.7 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.0-py3-none-any.whl (112.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agentomatic-0.1.0.tar.gz
  • Upload date:
  • Size: 1.7 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.0.tar.gz
Algorithm Hash digest
SHA256 c2f7b10fcb2ef7e6e7e487cc6748105efd056d90192ba5937ffac6c7d5f43e05
MD5 946371a99632c7d069e58a096005ff1e
BLAKE2b-256 97ac4ca16b7a5238991a3bfb9ee08cd63dd57b58032d6aea23098b8f45d6e5e3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: agentomatic-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 112.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b76d5177661bfbf6d36b44b8727c3483024e96119c50d8d6b750a2864497f648
MD5 a016f6f17f384c1ab60bb74c4dd3fcfc
BLAKE2b-256 c414bd7d3055ff1402d03324575d9a89894fc55713ec9d276b5e6d41f8e610be

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