> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2-studio-tools-doc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Studio Tool

> Use StudioTool with AgentOS.

## Example

```python studio_tool.py theme={null}
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.os import AgentOS
from agno.registry import Registry
from agno.tools.studio import StudioTool
from agno.tools.user_control_flow import UserControlFlowTools
from agno.tools.user_feedback import UserFeedbackTools

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

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

tools = [
    StudioTool(
        registry=registry,
        db=db,
        default_model_id="gpt-5.5",
        requires_confirmation_tools=["create_agent", "delete_agent"],
    ),
    UserFeedbackTools(),
    UserControlFlowTools(),
]

studio_agent = Agent(
    id="studio-agent",
    name="Studio Agent",
    model=OpenAIResponses(id="gpt-5.5"),
    tools=tools,
    db=db,
    instructions=[
        "Create and update Studio components only after you have the required details.",
        "Ask for clarification before making destructive changes.",
        "Return the component id, version, and next action after each Studio change.",
    ],
    markdown=True,
)

agent_os = AgentOS(
    id="studio-tool-hitl",
    agents=[studio_agent],
    registry=registry,
    db=db,
)

app = agent_os.get_app()
```

`requires_confirmation_tools` pauses the run before the selected StudioTool functions execute. `UserFeedbackTools` and `UserControlFlowTools` let the agent pause for structured choices or free-text input before it calls StudioTool.

<Frame caption="A HITL StudioTool run pausing before delete_agent calls">
  <img src="https://mintcdn.com/agno-v2-studio-tools-doc/NCEcK4D9Psa3QW_5/images/agent-os-studio-tools-confirm-delete.png?fit=max&auto=format&n=NCEcK4D9Psa3QW_5&q=85&s=72fee8af668e037cf1443e2f3130956f" alt="Chat UI showing Studio tool calls waiting for confirmation before deleting agents" style={{ borderRadius: "8px" }} width="1462" height="1068" data-path="images/agent-os-studio-tools-confirm-delete.png" />
</Frame>

<div style={{ marginTop: "2rem" }}>
  <Frame caption="The run continues after confirmation">
    <img src="https://mintcdn.com/agno-v2-studio-tools-doc/NCEcK4D9Psa3QW_5/images/agent-os-studio-tools-delete-result.png?fit=max&auto=format&n=NCEcK4D9Psa3QW_5&q=85&s=8f5eb47f5926141ee68530de54908372" alt="Chat UI showing confirmed Studio tool calls and the final result" style={{ borderRadius: "8px" }} width="1462" height="1082" data-path="images/agent-os-studio-tools-delete-result.png" />
  </Frame>
</div>

<div style={{ marginTop: "2rem" }}>
  <Frame caption="check agents page">
    <img src="https://mintcdn.com/agno-v2-studio-tools-doc/NCEcK4D9Psa3QW_5/images/agent-os-studio-tools-agent-list.png?fit=max&auto=format&n=NCEcK4D9Psa3QW_5&q=85&s=e0048ff318535258a0b19267f96244c1" alt="Chat UI showing confirmed Studio tool calls and the final result" style={{ borderRadius: "8px" }} width="1462" height="820" data-path="images/agent-os-studio-tools-agent-list.png" />
  </Frame>
</div>

## Developer Resources

* [StudioTool toolkit reference](/tools/toolkits/agent-os/studio)
* [Human-in-the-Loop overview](/hitl/overview)
* [Studio Registry](/agent-os/studio/registry)
* [cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/studio_tool)
