Studio — the operator UI

The Studio is the web UI at /studio. Sign in with ADMIN_TOKEN (see Deploy). This page covers the screens for watching conversations, reviewing what waits on a person, and seeing what a change did. Model metrics are on Observability.

Outside production, a banner above every page names the environment (INSIKA_ENV, else RACK_ENV, else local): amber for staging, blue for anything else. Production (production or prod) shows no banner.

The sidebar groups pages as Operate, Review, Build, Insights and Platform. Each Review page shows a badge with how many items wait on it. ⌘K (or Search in the sidebar) opens a palette that jumps to any page or agent.

Overview

/studio/home. The Overview shows the headline numbers for the agent filter and a Needs attention row. The row lists the review queues, customers waiting for a reply and tools failing in the last 24 hours, each linking to its page. Only non-zero items show.

Live

/studio/live shows one card per recent conversation: customer, agent, the last message, a presence dot (activity in the last 5 minutes) and the guardrail flag. Cards move with the event stream. While a turn runs, a card shows the tools it calls and “agent is writing…”. A turn paused for an approval stops writing until it resumes. A ticker lists the latest events, without the streaming deltas.

?agent=<id> shows only that agent’s conversations.

Chats

/studio/chats lists conversations with three tabs: All, Active now (activity in the last 5 minutes) and Guardrail flagged, each with its count. The session page shows the customer (key, name, phone) and links to their other conversations.

Why this reply

Each agent reply has a collapsed why this reply panel for its own turn:

  • context tokens by category, and the skills injected with the reason;
  • the tool calls with status and timing;
  • the guardrail flags on the customer’s message.

From the panel, Replay in Playground opens the conversation in the Playground, and Save as eval case opens the Evals editor prefilled from the reply (the customer’s turns, the transcript as the reference, the tools the turn called). A reply that streams in live offers the panel when its turn finishes.

Tool calls

A turn with two or more tool calls draws a waterfall of when each one ran. Tool calls are grouped by turn within each task, since the turn number restarts at 1 for every task.

Markup tags

Tags an agent or a host writes in the text, like <carrossel/>, <vitrine formato="lista"> or </b>, show as highlighted tokens: in replies, customer messages, and the Live and Chats previews. They are escaped and never rendered. The channel decides what a tag does; the Studio only shows it is there. A tag inside inline code stays code.

Guardrail false positives

On a guardrail flag in the session page, Mark false positive records the verdict on the flag itself, inside the session, so retention and tenant purges cover it. The flag can later be marked resolved, or the verdict undone. Reviewing a flag does not count as conversation activity: the session keeps its place in the recent lists. The command is :review_guardrail_flag.

Inbox

/studio/inbox is one list, oldest first, of everything that waits on a person: approvals, fact proposals, mined skills, refinement runs and reported guardrail false positives. Tabs filter by type, with counts. Each row opens the page where the item is decided.

Agent History

The History tab of an agent shows outcomes per day over the last 30 days: the funnel’s primary outcome when the agent declares a funnel, else all outcomes. A dashed line marks each change to a prompt file or to one of this agent’s own skills (shared skills change for every agent, so they are not marked).

Under the chart, one card per change shows the file or skill, when, a short line diff, and the outcomes in the 7 days after against the 7 days before. A window that is not complete yet, or that starts before the outcome data, reads “not enough data”. A prompt card has the Restore form; a skill card links to the skill.

Funnel: where conversations stop

The Funnel page marks the biggest loss between two consecutive declared stages. Each loss opens (?drop=<stage>) the conversations that reached the stage but not the next one in the period, grouped by the last thing that happened:

Reason Meaning
Last tool call failed the conversation’s last tool call returned an error
A guardrail flagged a message a guardrail flagged one of its messages
Customer waiting on a reply the customer wrote last
Customer went quiet after the agent’s reply the agent wrote last
No message to read the conversation has no message to classify
Conversation no longer stored the conversation was deleted

Only the newest 200 stuck conversations are classified; the page says how many were left out.


Back to top

Insika is MIT-licensed. Reading this as an agent? llms.txt indexes these docs as raw markdown.

This site uses Just the Docs, a documentation theme for Jekyll.