Context is precious. Execution is sacred. Trust is earned.Python 3.10–3.13

The implementation journey

The fastest way to adopt Agent-Gantry is to start as a decorator around an existing LLM call, then graduate to persistent retrieval, governance, observability, and protocol bridges.

Register

Decorate ordinary Python functions and let Gantry infer schemas from type hints and docstrings.

@gantry.register(tags=["finance"])
def calculate_tax(amount: float) -> float:
    """Calculate tax."""
    return amount * 0.08

Prototype with in-memory routing

Use the default in-memory vector store and simple embedder. This validates tool descriptions, tags, and score thresholds without external infrastructure.

Make retrieval durable

Add LanceDB for local persistence or Qdrant, Chroma, and pgvector for deployed search. Add OpenAI, Nomic, or sentence-transformers embeddings when lexical matching is not enough.

Normalize provider schemas

Keep one Python tool registry and emit provider-specific schemas for OpenAI-compatible APIs, Anthropic, Gemini, framework adapters, MCP, and A2A.

Govern execution

Use capabilities, security policy checks, rate limits, timeouts, retries, circuit breakers, and callbacks to keep tool invocation observable and bounded.

Scale teams and agents

Publish tools through MCP, compose A2A executors, install the bundled Claude Skill, and expose the same registry across Microsoft Agent Framework and popular Python agent frameworks.