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.08Prototype 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.