Skip to main content
StudioTool gives an agent access to Studio component operations. The agent can inspect the Registry, create agents, teams, and workflows, edit Studio-created components, run them, delete them, and manage versions when enabled. Use it for builder agents that turn natural language into AgentOS components.

Example

cookbook/05_agent_os/studio_tool/studio_tools_agent.py
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.registry import Registry
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.hackernews import HackerNewsTools
from agno.tools.studio import StudioTool

db = SqliteDb(id="studio-db", db_file="tmp/studio.db")

registry = Registry(
    name="Studio Registry",
    tools=[DuckDuckGoTools(), HackerNewsTools()],
    models=[OpenAIResponses(id="gpt-5.5")],
    dbs=[db],
)

studio_agent = Agent(
    id="studio-agent",
    name="Studio Agent",
    model=OpenAIResponses(id="gpt-5.5"),
    tools=[
        StudioTool(
            registry=registry,
            db=db,
            default_model_id="gpt-5.5",
            versions=True,
        )
    ],
    instructions=[
        "List available models and tools before creating components.",
        "Use exact Registry tool names.",
        "Return the component id, version, next action, and Studio route.",
    ],
    db=db,
    markdown=True,
)

studio_agent.print_response(
    "Create an agent named paper-review-assistant that finds research papers."
)

Toolkit Params

ParameterTypeDefaultDescription
registryRegistry-Registry used to resolve models, tools, functions, databases, agents, and teams.
dbOptional[BaseDb]first Registry DBDatabase used to persist Studio-created components.
agents_listOptional[list[Agent]]NoneCode-defined agents exposed for discovery and composition.
teams_listOptional[list[Team]]NoneCode-defined teams exposed for discovery and workflow composition.
workflows_listOptional[list[Workflow]]NoneCode-defined workflows exposed for discovery.
default_model_idOptional[str]NoneModel id to use when a create call omits model_id.
agentsOptional[bool]TrueEnable agent create/edit/delete/run tools.
teamsOptional[bool]FalseEnable team create/edit/delete/run tools.
workflowsOptional[bool]FalseEnable workflow create/edit/delete/run tools.
versionsboolFalseEnable versioning tools. Edits become drafts when true.
Passing agents_list auto-enables team and workflow tools unless explicitly disabled. Passing teams_list auto-enables workflow tools unless explicitly disabled.

Toolkit Functions

Discovery tools are always available:
FunctionDescription
list_modelsList registered models.
list_toolsList registered toolkits, functions, and callables.
list_functionsList registered workflow functions.
list_dbsList registered databases.
list_agentsList code-defined and DB-backed agents.
list_teamsList code-defined and DB-backed teams.
list_workflowsList code-defined and DB-backed workflows.
Create, edit, delete, and run tools are exposed for enabled component types:
ComponentFunctions
Agentsget_agent, create_agent, edit_agent, delete_agent, run_agent
Teamsget_team, create_team, edit_team, delete_team, run_team
Workflowsget_workflow, create_workflow, edit_workflow, delete_workflow, run_workflow
With versions=True, the toolkit also exposes list_versions, get_version, publish_component, set_current_version, and delete_version.

Notes

  • Create operations save a published v1.
  • With versions=True, edits save as drafts until publish_component is called.
  • With versions=False, edits publish immediately.
  • StudioTool only edits Studio-created DB components. Code-defined components are discoverable and reusable, but not edited in place.
  • Use requires_confirmation_tools for destructive or state-changing functions.

Developer Resources