Skip to main content
The Registry manages non-serializable components (tools, models, databases, schemas, functions, etc.) that Studio depends on.

Component Types

  • Tools : Toolkit instances, Function objects, or plain callables.
  • Models : model provider instances (OpenAI, Anthropic, etc.).
  • Databases : BaseDb instances for storage.
  • Vector DBs : VectorDb instances for knowledge bases.
  • Schemas : Pydantic BaseModel subclasses for structured I/O.
  • Functions : Python callables used as workflow evaluators, selectors, or executors.
  • Knowledge : Knowledge instances for RAG.
  • Memory Managers : MemoryManager instances for memory management.
  • Session Summary Managers : SessionSummaryManager instances for session summary management.
  • Teams : Team instances to reuse as members in teams and workflows.
  • Agents : Agent instances to reuse as members in teams and workflows.
Open Studio Registry from the Studio navigation example of registry configuration:
from agno.db.postgres import PostgresDb
from agno.models.openai import OpenAIChat
from agno.models.anthropic import Claude
from agno.os import AgentOS
from agno.registry import Registry
from agno.tools.calculator import CalculatorTools
from agno.tools.websearch import WebSearchTools
from agno.vectordb.pgvector import PgVector
from pydantic import BaseModel

class InputSchema(BaseModel):
    input: str
    description: str

def custom_evaluator(input: str) -> bool:
    return "urgent" in input.lower()

db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai", id="postgres_db")
user_memory_manager = MemoryManager(
    model=Claude(id="claude-opus-4-7"),
    db=db,
     additional_instructions="""
    IMPORTANT: Don't store any memories about the user's name. Just say "The User" instead of referencing the user's name.
    """,
)
concise_summary_manager = SessionSummaryManager(
    model=OpenAIResponses(id="gpt-5-mini"),
    session_summary_prompt=(
        "Summarize the conversation in 3-5 bullet points focused on decisions, "
        "open questions, and any follow-ups required."
    ),
    last_n_runs=10,
)
agent_knowledge = Knowledge(
    name="Agent Knowledge",
    description="Example knowledge base for agents",
    vector_db=PgVector(table_name="agent_knowledge_documents", db_url=DB_URL),
    contents_db=db,
)

registry = Registry(
    name="My Registry",
    tools=[CalculatorTools(), WebSearchTools()],
    models=[OpenAIChat(id="gpt-5-mini"), Claude(id="claude-sonnet-4-5")],
    dbs=[db],
    vector_dbs=[PgVector(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai", table_name="embeddings")],
    schemas=[InputSchema],
    functions=[custom_evaluator],
    memory_managers=[user_memory_manager],
    session_summary_managers=[concise_summary_manager],
    knowledge=[agent_knowledge],
)

agent_os = AgentOS(id="my-app", registry=registry, db=db)
app = agent_os.get_app()

Registry API

The registry exposes a GET /registry endpoint through AgentOS with filtering and pagination.

Query Parameters

ParameterTypeDefaultDescription
component_typestringNoneFilter by type: TOOL, MODEL, DB, VECTOR_DB, SCHEMA, FUNCTION
namestringNonePartial name match (case-insensitive)
pageint1Page number
limitint20Items per page (1-100)

Response Metadata

Each component in the response includes type-specific metadata:
Component TypeMetadata Fields
Toolclass_path, parameters, signature, toolkit functions
Modelprovider, model_id
Databasedb_id
Vector DBcollection, table_name
SchemaJSON schema definition
Functionsignature, parameters
Knowledgename, description, vector_db, contents_db
Memory Managermodel, additional_instructions, db
Session Summary Managermodel, session_summary_prompt, last_n_runs
Teamname, type, id, metadata
Agentname, type, id, metadata

Developer Resources