Studio
Studio is the in-app AI builder for a workspace. You chat in the right panel; Studio inspects resources with tools and (in Agent mode) applies creates and updates. The left Explorer and center editor show the same resources. After a mutation runs, the editor is a diff of what changed — not a form you submit.
Use it to scaffold agents and workflows, edit tables, functions, and skills, or ask questions about what already exists — without leaving Vettero. Build with AI on agents, functions, and skills opens Studio on that resource.
Studio is not an MCP Server (hosted tools for external clients) and not an MCP Integration (outbound MCP you attach to agents). Studio MCP is a separate workspace setting that exposes Studio’s docs, read, and write tools to MCP clients such as Cursor.
When to use
- Create or edit agents, workflows, tables, functions, and other workspace resources from a conversation
- Inspect the workspace in Ask mode without mutating anything
- Draft a structured plan in Plan mode, then click Build to implement it in Agent mode
- Attach screenshots, PDFs, or documents as requirements
- Connect an external MCP client via Workspace Settings → Studio MCP
Open Studio
Open Build → Studio (Developer sidebar). Vettero loads the workspace explorer, conversation list, and chat composer.
You can also deep-link from Build with AI on an agent or function. Studio opens a tab for that resource. Unsaved edits in the original builder stay there until Studio writes the resource.
Use the layout
Studio is a three-pane workspace:
| Pane | What it does |
|---|---|
| Explorer | Tree of workspace resources. Click a leaf to open it in the editor. |
| Editor | Tabbed, read-only views. After Studio writes a resource, this pane shows a diff (previous vs current) — fields, JSON, and code. |
| Chat | Conversations, todos, plan cards, tool calls, and the composer. |
Resize the splitter panels as needed. Tabs with a diff show an amber dot. Use Reset diff (eraser) to treat the current state as the baseline and clear highlights (does not reload from the server). Reload fetches the workspace again.
Explorer groups
The tree includes (when the workspace has items):
| Group | Resources |
|---|---|
| Agents / Workflows | Nested children (channels, functions, queries, widgets, event handlers scoped to that parent) |
| Channels, Functions, Queries | Workspace-level items |
| Chat Widgets / Widgets | Chat message UIs vs iframe widgets |
| Event Handlers, Tables, Knowledge Bases | Data and triggers |
| Connected Services, Chat Profiles, API Schemas | Integrations and handover profiles |
| MCP Integrations / MCP Servers | Outbound MCP and hosted MCP endpoints |
| Email Templates / WhatsApp Templates | Message templates (WhatsApp grouped by connected service) |
| Skills | Skill playbooks |
| Environment Variables / Roles | Workspace-wide lists |
Linked (child-only) agents and workflows stay nested under their parent and are not duplicated as top-level entries.
Chat with Studio
The side panel lists Chats. Open one, or start a new conversation from the list. Each chat remembers the last mode. Delete a conversation from the list (hover trash).
Type in the composer and press Enter to send (Shift+Enter for a new line). Use Stop to cancel an in-flight run.
Choose a mode
| Mode | Tools | Typical use |
|---|---|---|
| Agent | Read, research, todos, and mutations | Create, update, and delete resources |
| Ask | Read, research, ask_questions only | Explain or inspect without changing anything |
| Plan | Read, research, todos, and plan documents | Design steps; no mutations until you Build |
If you ask Ask or Plan to change the workspace, Studio tells you to switch to Agent (or click Build on a plan).
Turn on Auto (Agent)
In Agent mode, Auto applies each mutation as soon as the tool runs — no Accept/Reject step in chat. The editor opens the resource and only shows a diff of the applied change. Clarifying ask_questions still pauses.
Leave Auto off if you want a chat interrupt first: a short summary, then Accept (writes the change, then the editor shows the diff) or Reject (skips that tool call).
Answer questions
When Studio needs a choice (missing info, ambiguous requirements), it pauses with ask_questions. Pick options (or skip when allowed) so the run can continue.
Attach files
Use the paperclip to attach Image, PDF, or Document (text / Word). You can also paste images. Studio uses attachments as requirements or screenshots and still reads the live workspace with tools before mutating.
| Limit | Value |
|---|---|
| Max files per message | 5 |
| Types | Images, PDFs, text, Word — other types are rejected |
| Size | Per file type max from workspace file config; oversized files error on the chip |
Plans and todos
In Plan mode, Studio writes a plan document in the chat (and can open it in the editor). When the plan has content, click Build to switch to Agent and implement it. Todos appear as a bar on the conversation for multi-step work.
What Studio can change
Studio tools cover the same building blocks you edit in the rest of the app, including:
- Agents, workflows, channels
- Functions, queries, chat widgets, widgets
- Event handlers, HTTP servers, tables, knowledge bases
- Connected third-party services, chat profiles
- API schemas, chat integrations, MCP integrations, MCP servers
- Email templates, text templates, WhatsApp templates
- Environment variables, roles, trash restore
Studio cannot upload avatars or arbitrary files through mutation tools the way the web UI can; attach files on the message instead.
Prompt Studio well
Studio already inspects the live workspace with tools. Your job is to describe the product, not every field. Vague “build me a support bot” produces a thin scaffold. A short brief with users, channels, data, and success criteria produces something you can run.
This is different from writing an agent Task prompt. You are briefing a builder. Studio writes Task, tools, tables, and the rest.
Write a useful first message
Cover, in a few sentences:
- Who — customers, staff, or both; language and tone
- Job — what a good conversation or run looks like
- Channel — chat, voice, WhatsApp, email, or a general (callable) agent
- Data — tables, knowledge bases, or “none yet — create them”
- Writes — what the agent may change, and what needs approval
- Out of scope — what it must not do
Name resources you already have (“use the Orders table and Help Center KB”). Do not paste ids. Open the resource in the editor if you mean this agent or function — Studio uses the open tab as context.
Weak
Create a support agent.
Stronger
Build a chat support assistant for Acme Shop (English, short replies).
Ground answers in the Help Center knowledge base. Look up orders by email
or order id. Propose address changes only with role approval.
Do not invent prices or refunds. Hand over to the Human Support chat profile
when the shopper is angry or asks for a refund over policy.
Create an Orders table if none exists (order_id, email, status, tracking).
Add a small FAQ knowledge base from the attached PDF.
Pick a mode for the size of the job
| Situation | Mode |
|---|---|
| Empty or large workspace, many resources, unclear shape | Plan first, then Build |
| One agent, one table, or a small edit | Agent |
| “What do we already have?” / “Why is this failing?” | Ask |
| You want every write applied without Accept | Agent + Auto |
For a greenfield workspace, start in Plan: describe the product, attach a spec or screenshot, answer ask_questions, then Build. For an existing workspace, say what to reuse vs create so Studio does not duplicate tables or agents.
Leave Auto off the first time you generate a lot of resources. Review diffs, then turn Auto on for follow-up tweaks.
Give Studio something concrete to copy
- Attach a PDF or Word spec, FAQ, or process doc and say “extract the KB and agent policy from this.”
- Attach a screenshot or mock of the chat UI or form you want.
- Paste example conversations (happy path, missing id, angry user) so Task and starters match real talk.
- Point at an agent you like: “Clone the structure of Support Bot, but for billing.”
Studio still reads the workspace before mutating. Attachments are requirements, not a substitute for live resources.
Keep follow-ups tight
After the first build, change one slice per message:
- “Tighten Task: refuse legal advice; keep the rest.”
- “Add a
priorityselect on Tickets and a field-changed handler that notifies ops.” - “Wire WhatsApp on Support Bot; reuse the same tools.”
Do not paste a rewritten Task into chat unless you want Studio to replace it. Prefer “make it shorter and tool-first” so Studio edits the resource instead of you maintaining two copies.
If a run goes sideways, Stop, switch to Ask (“what did you create and why?”), then Agent with a corrective instruction. Use Reset diff when you accept the current state as the new baseline.
Watch for these traps
- One giant agent for unrelated jobs — split support, ops, and extraction.
- Tools without a table or API — say where data lives, or ask Studio to create the table.
- Secrets in the prompt — use environment variables; never paste API keys into chat.
- Skipping Plan on a full product — you get resources that do not fit together.
- Asking Ask or Plan to apply changes — switch to Agent or click Build.
- Ignoring
ask_questions— skipped answers make Studio guess; pick or type a custom option.
Connect Studio MCP
Open Configuration → Workspace Settings → Studio MCP. Owners and Developers can enable it.
| Setting | What it does |
|---|---|
| Enable Studio MCP | Turn the workspace MCP endpoint on or off |
| MCP endpoint URL | Shared URL for every workspace; the key selects this workspace and its scope |
| Keys | Named secrets. Each key is docs, read, or write. Create, regenerate, disable, or delete keys independently |
| Enable unsecure access | Public URL with a workspace ID in the path — no key. New public URLs default to read. Existing public URLs that already had write access stay write until you change the scope |
On create or regenerate, copy the secret from the dialog; it is not shown again (only a prefix remains). The settings page includes example MCP client JSON per key.
Scopes
| Scope | Tools |
|---|---|
| Docs | get_resource_docs only (Studio resource documentation) |
| Read | List, view, search, and docs tools. No creates or deletes |
| Write | Read plus mutation tools (create, update, delete) |
Studio MCP does not include get_editor_context or ask_questions (those belong to the in-app chat).
Limits
- Agent mutations cost builder LLM usage (workspace credits), same as other Studio runs.
- Ask and Plan cannot mutate; switch to Agent or Build a plan.
- Auto applies mutations immediately; the editor shows diffs only, not an edit form.
- With Auto off, Accept/Reject is in chat; after Accept, the editor still only shows a diff.
- Regenerating a Studio MCP key or the public ID breaks existing clients until you update them.
- Linked child agents/workflows appear under their parent in Explorer, not as separate top-level rows.