Platform

Surfaces & integrations

All the ways a person or another system reaches an agent โ€” and all the ways agents reach out. Every one of them funnels into the same execution path, so the surface changes the ergonomics, never the rules.

Human surfaces

Chat

The primary surface, and the one that shows the most of what a run is doing.

Every organization gets a default Assistant in the org ring โ€” a general-purpose conversational agent with web search and fetch, available to every member with zero setup.

Canvas

A living document that a person and an agent edit together. The agent writes with write_canvas; you edit in place.

Voice

A spoken conversation with an agent. Each turn runs through the one execution path, the transcript is DLP-redacted before it reaches the model, and the recording is stored as a retention-managed run artifact. The realtime backend sits behind the same provider seam as text models, so swapping in a production voice provider is configuration rather than a rewrite.

Slack and Teams

Threads, DMs, streaming replies, and interactive approval cards in the tools your organization already uses. See Automations & channels.

Browser use

For systems with no API at all, an agent can drive a headless browser under the strictest governance on the platform: reachable domains are default-deny, navigate and extract are reads while click, type, submit, and download are approval-gated writes, extracted text is DLP-screened, and each operation produces a recording artifact.

The Tools Library

One registry for external tool servers, and one resolution path for every caller. An MCP reference in an agent definition, a gateway's published tool list, and the catalog all resolve through the same code โ€” there is no second way to reach a tool.

  1. Register

    Add a server with its endpoint and transport. Authentication is stored as a vault reference; the secret itself never round-trips through the API.
  2. Discover

    The platform connects and enumerates the tool surface, capturing each tool's read-only and destructive annotations.
  3. Review

    The surface is reviewed against policy. A server that has not passed review cannot be promoted to a shared ring.
  4. Promote

    Once reachable and reviewed, the server is promoted for wider use โ€” the same ring model as agents and skills.
  5. Watch for drift

    Re-discovery diffs the surface. A server that grows a new destructive tool is drift: review is re-queued and the owner notified, rather than the new tool quietly becoming callable.

Agents reference a registered server by slug, optionally pinning and narrowing it:

---
name: ticket-triager
model: default
mcp_servers:
  - slug: jira
    pin: 3               # optional: freeze to a reviewed surface version
    tools: [search_issues, get_issue]   # optional: narrow the surface
---

Virtual servers: REST โ†’ MCP

An internal API with an OpenAPI specification can become a library entry without anyone writing an MCP server. Upload the spec and each operation is materialized as a tool with a generated JSON schema, with mutating verbs mapped to destructive annotations โ€” so they are review-flagged and approval-gated by default. Virtual servers are ring-scoped, promotable, and gateway-selectable like any other entry.

The MCP gateway

A gateway publishes a curated selection of tools as one MCP endpoint โ€” a single governed URL an external client can point at, instead of a dozen direct integrations.

Its value is the choke point. Every call through it โ€” whether from the platform's own executor or an outside client โ€” passes one place that enforces:

ControlBehaviour
DLPOn tool input and tool output.
AnnotationsA destructive tool routes to approval; over the gateway, where no human is present, it is refused rather than parked.
Rate limitingToken-bucketed, shed with 429.
BudgetChecked before the upstream call; a hard stop returns 402.
AllowlistA denied server is hidden, not merely refused.
AuditEvery call is metadata-logged.

Access is a scoped API key: gateway:invoke:<slug>.

Agents as tools: the MCP endpoint

The reverse direction. Your organization's agents can be exposed to an MCP client as tools named agent__<slug>, discovered and called over JSON-RPC with OAuth resource metadata published for discovery.

Agent-to-agent (A2A)

Trellaris speaks A2A in both directions.

DirectionWhat happens
InboundEach agent publishes an agent card and accepts message/send, streaming, and task get/cancel. Task state maps one-to-one onto run state. Access needs an a2a:invoke:<slug> scoped key, and a killed agent's card disappears.
OutboundA remote agent is registered from its card, validated with field-path errors, and then appears in your catalog. Invoking it creates a normal run with normal events and a usage-ledger entry.

The REST API

Everything the web app does, it does over the same public API โ€” there is no privileged private surface. The OpenAPI schema is the contract and generates the TypeScript client.

AreaEndpoints
Registry/agents, /skills, /catalog, /templates, /packs, /registry/validate
Running/conversations, /runs/{id}, /runs/{id}/events, /runs/{id}/artifacts, /runs/{id}/replay
Governance/approvals, /promotions, /admin/*, /risk/*, /compliance/*
Automation/automations, /hooks/{token}, /notifications
Data/knowledge/*, /memories, /canvas, /secrets
Interop/a2a/*, /mcp, /gateways/{slug}/mcp, /mcp-servers
Identity/me, /org, /workspaces, /scim/v2/*

Errors follow one contract everywhere โ€” a problem document with a stable machine-readable code, including on terminal streaming events, so a client handles failures the same way regardless of where they arose.

API keys and secrets