AgentOven

Python SDK

Fully-typed, async-ready Python client for the AgentOven control plane.


The Python SDK provides a Pythonic, fully-typed interface to the AgentOven control plane. Built on httpx and pydantic for async support and strong typing.

Requires Python 3.10+ · Install with pip install agentoven


Installation

terminal

$ pip install agentoven
# With async support
$ pip install agentoven[async]
Quick Start

python

from agentoven import AgentOven, Agent

# Connect to control plane
oven = AgentOven("http://localhost:8080")

# Register an agent
agent = Agent(
    name="research-bot",
    framework="langchain",
    skills=["web-search", "summarization"],
)
oven.agents.register(agent)

# Deploy
oven.agents.bake("research-bot")

# Send task via A2A
result = oven.a2a.send_task(
    agent="research-bot",
    message="Summarize AI safety papers",
)
print(result.text)
Async Usage

python

import asyncio
from agentoven import AsyncAgentOven, Agent

async def main():
    oven = AsyncAgentOven("http://localhost:8080")

    # Register and bake
    agent = Agent(name="fast-bot", framework="crewai", skills=["analysis"])
    await oven.agents.register(agent)
    await oven.agents.bake("fast-bot")

    # Stream response via SSE
    async for chunk in oven.a2a.send_task_stream(
        agent="fast-bot",
        message="Analyze quarterly sales data",
    ):
        print(chunk.text, end="", flush=True)

asyncio.run(main())
Managing Agents

python

from agentoven import AgentOven

oven = AgentOven("http://localhost:8080")

# List all agents
agents = oven.agents.list()
for a in agents:
    print(f"{a.name} — {a.status} — {a.tasks_completed} tasks")

# Get agent status
status = oven.agents.status("research-bot")
print(f"Uptime: {status.uptime}")
print(f"Health: {status.health}")

# Cool an agent
oven.agents.cool("research-bot")

# Re-bake
oven.agents.bake("research-bot")
Running Recipes

python

from agentoven import AgentOven

oven = AgentOven("http://localhost:8080")

# Run a recipe from file
result = oven.recipes.run("pipeline.yaml")
print(f"Recipe completed in {result.duration}s")
print(f"Steps: {len(result.steps)}")

# Run with parameters
result = oven.recipes.run(
    "pipeline.yaml",
    params={"topic": "AI safety", "depth": "detailed"},
)
Error Handling

python

from agentoven import AgentOven
from agentoven.exceptions import (
    AgentNotFoundError,
    TaskTimeoutError,
    RateLimitError,
)

oven = AgentOven("http://localhost:8080")

try:
    result = oven.a2a.send_task(
        agent="research-bot",
        message="Analyze data",
        timeout=30,
    )
except AgentNotFoundError:
    print("Agent not registered or not baked")
except TaskTimeoutError:
    print("Task exceeded 30s timeout")
except RateLimitError as e:
    print(f"Rate limited — retry after {e.retry_after}s")