Agent Studio

Tenants

Multi-tenant isolation and configuration

Tenants

A Tenant represents an organization using Agent Studio. All resources (agents, workflows, tools, calls) belong to exactly one tenant.

Tenant Model

class Tenant:
    id: UUID
    slug: str           # URL-friendly identifier (e.g., "taphealth")
    name: str           # Display name (e.g., "Tap Health")
    plan: TenantPlan    # FREE, STARTER, PRO, ENTERPRISE
    settings: dict      # JSONB configuration
    is_active: bool

Settings Configuration

{
  "webhook_url": "https://api.taphealth.com/webhooks",
  "default_language": "en",
  "supported_languages": ["en", "hi", "ta"],
  "feature_flags": {
    "async_feedback": true,
    "cgm_support": false
  },
  "api_config": {
    "base_url": "https://api.taphealth.com",
    "timeout": 30,
    "retry_count": 2
  },
  "endpoints": {
    "meal.log": { "path": "/api/meals", "method": "POST" },
    "user.profile": { "path": "/api/users/{user_id}", "method": "GET" }
  }
}

Key Settings

Endpoints

Named API endpoints that tools can reference. Keeps tool definitions portable.

Languages

Supported languages for the tenant. Agents can have language-specific prompts and voices.

Feature Flags

Enable/disable tenant-specific features.

API Config

Default configuration for external API calls.

Data Isolation

All tenant data is completely isolated:

  • Agents, workflows, tools are scoped to tenant
  • Provider keys (BYOK) are encrypted per-tenant
  • Call history and transcripts are isolated
  • API keys are tenant-specific

Hierarchy

TENANT
├── Provider Keys (BYOK)
├── Tools (reusable)
├── Agents
├── Workflows
├── API Keys
└── Calls (history)

On this page