Skip to main content

Build, deploy, and monetize AI agents

Project description

agentroute (Python SDK)

Build, deploy, and monetize AI agents. Phase 2 ships Agent with tools, persistent memory, conversation-history policies, and structured output — all against any OpenAI-compatible model (OpenRouter default, plus Ollama and custom HTTP endpoints).

Install

pip install agentroute

Quick start

Layer 0 — three-line hello world

from agentroute import Agent

agent = Agent("my-bot", model="claude-sonnet-4")
print(agent.run("Tell me a joke"))

Set AGENTROUTE_API_KEY (or OPENROUTER_API_KEY) to an OpenRouter key. One key works for every model string (claude-sonnet-4, gpt-4o, gemini-2.0-flash, deepseek-v3, ...).

Layer 1 — add a tool

from agentroute import Agent

agent = Agent("weather-bot", model="claude-sonnet-4")

@agent.tool
def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    return "Sunny, 22C"

print(agent.run("What's the weather in Zurich?"))

Memory (conversation + facts)

from agentroute import Agent, Memory, MemorySQLite

# In-RAM (lost on restart):
agent = Agent("bot", model="claude-sonnet-4", memory=Memory())

# Persistent (SQLite + FTS5 search):
agent = Agent("bot", model="claude-sonnet-4", memory=MemorySQLite("agent.db"))

agent.run("remember my favorite color is blue")
agent.run("what is my favorite color?")  # remembers across runs

History policies

from agentroute import Agent, MemorySQLite, HistorySlidingWindow

agent = Agent(
    "bot",
    model="claude-sonnet-4",
    memory=MemorySQLite("agent.db"),
    history=HistorySlidingWindow(20),  # keep last 20 user-turn groups
)

Also available: HistoryTruncate(max_tokens=100_000) and HistorySummarize(model=...).

Structured output

from agentroute import Agent, Retry
from pydantic import BaseModel

class WeatherReport(BaseModel):
    city: str
    temp_c: float

agent = Agent("bot", model="claude-sonnet-4", output=WeatherReport)

@agent.output_validator
def sanity(ctx, output: WeatherReport) -> WeatherReport:
    if output.temp_c > 60:
        raise Retry("Temperature unrealistic, reconsider.")
    return output

result = agent.run("Weather in Zurich?")
print(result.output.city, result.output.temp_c)

Async

import asyncio
from agentroute import Agent

async def main() -> None:
    agent = Agent("bot", model="claude-sonnet-4")
    result = await agent.arun("hi")
    print(result.output)

asyncio.run(main())

Local models (Ollama)

agent = Agent("local", model="ollama/llama3")
print(agent.run("hi"))

Development

cd packages/python
pip install -e '.[dev]'
pytest                 # unit tests (integration tests auto-skipped)
pytest -m integration  # integration tests (mocked + live)
ruff check src tests
mypy src/agentroute

Phase 2 scope: Agent, Tool, Context, Result, Event, ModelCloud, resolve_model(), Config, exceptions (ErrorAgent, ErrorMaxTurns, ErrorBudget, Retry), Memory, MemorySQLite, HistorySlidingWindow, HistorySummarize, HistoryTruncate, structured output with validators. Multi-agent (Team/Company), guards, MCP, A2A, and deployment land in later phases.

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

agentroute-1.1.0.tar.gz (29.4 kB view details)

Uploaded Source

Built Distribution

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

agentroute-1.1.0-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file agentroute-1.1.0.tar.gz.

File metadata

  • Download URL: agentroute-1.1.0.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for agentroute-1.1.0.tar.gz
Algorithm Hash digest
SHA256 da014e549bba1131e790ebe87f0ace16fcc071654821c3cd9fff7bf3670ab3ec
MD5 7b88ff454192fc5c602d9b641fbde8b2
BLAKE2b-256 097566bfee6020cc7f422bd8438e1e75237d4c31904a670e82109cf227a1b135

See more details on using hashes here.

File details

Details for the file agentroute-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: agentroute-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for agentroute-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03d8e5dc4595b66d0d2e2f6fbc67f511863c7414fb95f5087f15b32f28b738b3
MD5 5f3ede1b23e39134d97f407e1fa4666b
BLAKE2b-256 d506817be93360691ca84f05b6dfac0af032be38f429094c06fcfebbc5358079

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