Project · version · publish

Build AI agents and run them on your own servers.

Agent Studio runs inside your company's network. Create prompt, agent, and image projects, publish a version, and use it from the console, an API, a chat platform, or another agent. The core app, including sign-in and runs, keeps working without public internet access.

Sign in with an account from an allowed domain.

Runs on your servers

PostgreSQL and an OpenAI-compatible model endpoint

One interface for your models

Use a router, self-hosted models, or provider APIs

Cost and traces per run

Attributed to the caller that started the run

agent run · text/event-stream

example

POST /api/projects/support-triage/versions/published/agent
data: {"delta":{"content":"Looking at the report…"}}
data: {"delta":{"toolCalls":[{"id":"call_1","type":"function","function":{"name":"Skill","arguments":"{\"skill_name\":\"triage-rules\"}"}}]}}
data: {"toolResult":{"toolCallId":"call_1","name":"Skill: triage-rules","content":"# Triage rules…"}}
data: {"delta":{"toolCalls":[{"id":"call_2","type":"function","function":{"name":"transfer_to_agent","arguments":"{\"agent_name\":\"escalation-agent\",\"message\":\"Rate this crash report.\"}"}}]}}
data: {"author":"escalation-agent","authorPath":["escalation-agent"],"delta":{"content":"Severity: P2"}}
data: {"author":"escalation-agent","authorPath":["escalation-agent"],"authorDone":true}
data: {"toolResult":{"toolCallId":"call_2","name":"transfer_to_agent: escalation-agent","content":"Transferred to 'escalation-agent'; its answer follows.","displayOnly":true}}
data: {"delta":{"content":"Filed as P2 with repro steps."}}
data: {"usage":{"inputTokens":812,"outputTokens":164,"costUsd":0.0031}}
data: {"done":true}
data: [DONE]

What Agent Studio covers

projects

Projects & versions

Manage a prompt, agent, or image workload as a project. Save its settings as named versions; callers use the published version unless they request a specific one.

agent

Agent loop

An agent can load skills, call MCP tools, delegate to subagents, and read URLs. Turn and context limits keep each run bounded.

mcp

MCP tools

Register a server once, then bind it to any version. Each binding can limit the available tools and override outbound headers. Project-specific OAuth is supported, and secrets are encrypted at rest.

skills

Skills

Reusable instructions written in Markdown. The model sees a short list of names and descriptions, then loads the full instructions when needed.

plugins

Agent Plugins

Sync skills and MCP servers from a plugin repository. In an air-gapped installation, upload an archive of the same repository instead.

catalog

Capability catalog

Search skills, MCP tools, and agents in one catalog. An opted-in version adds relevant capabilities for the current run without changing its saved bindings.

chats

Chats

Talk to a published agent in the console. Attach images and documents, follow the streamed reply, and inspect tool calls in the conversation. Closing the tab does not stop the run.

images

Images

Generate or edit images with an image project, an agent's built-in tools, or an image subagent. An agent can edit an attached image or one produced earlier in the run.

artifacts

Artifacts

Keep images and files produced by runs behind signed URLs, and browse them by project or by user.

surfaces

Slack, A2A & webhooks

Connect agent projects to Slack, Telegram, and Teams. Published versions can also run from webhooks, schedules, and inbound or outbound A2A calls.

cost

Cost & guards

Record each run's cost and summarize it by project, caller, and day. Daily and monthly thresholds can send an alert or block new runs.

traces

Traces & audit

Inspect each run turn by turn, including tool calls. Secret access, administrative changes, and deletions are recorded in the audit log.

Installing it

Agent Studio is distributed as a container image. Environment repositories own deployment manifests; this repository contains the local development setup.

What it needs

Provide PostgreSQL with pgvector and an OpenAI-compatible model endpoint. The app creates its database schema when it starts.

Without internet access

Upload model catalogs and plugin archives, mirror container images to an internal registry, and use a self-hosted embedding endpoint.

What stays optional

Slack, Telegram, Teams, outbound A2A, and external model APIs are independent integrations. If one is not configured, only that integration stays off.

A self-hosted platform for building and running agents.

v0.99.1