Supported agents
Every way to connect an agent to an environment, what each one needs, and the limits on a build and a run
Sources
The builder makes an environment by reading your agent, so the first choice is how it reaches the agent. Build an environment walks through each source.
| Source | Agent types | What you provide |
|---|---|---|
| Source repository | Voice, chat | A GitHub repository as owner/repo, a branch or tag, an optional entry path, and for a private repository a GitHub App installation ID |
| Code upload | Voice, chat | A folder from your machine and the entry file that defines the agent |
| Hosted platform | Voice, chat | The agent’s ID on its platform and an API key; for LiveKit, its agent name, server URL, API key and API secret; for Others, its phone number |
Hosted platforms
| Platform | Agent type | Identifier | Credential |
|---|---|---|---|
| Vapi | Voice | Assistant ID | Vapi API key |
| Retell AI | Voice | Agent ID | Retell API key |
| LiveKit | Voice | Agent name | LiveKit URL, LiveKit API key and LiveKit API secret |
| Others | Voice | Phone number | None |
| Retell AI | Chat | Chat agent ID | Retell API key |
LiveKit and Others don’t expose the agent’s instructions, so you paste its system prompt into the form and the builder reads them from that.
A hosted voice agent is reached by a Web call, with no phone call placed, or a Phone call to its number. A LiveKit agent is always reached by a web call, and an Others agent always by phone. An optional GitHub repository lets the builder read the agent’s tools and prompts from its code as well as from the platform.
Repository and upload requirements
The builder runs your agent as you ship it and never writes code your agent is missing. A repository or an upload needs:
| Requirement | Applies to |
|---|---|
| A Docker Compose file or a Dockerfile that starts the agent | Voice and chat |
| A conversation endpoint over HTTP, in the agent’s own format or the OpenAI-compatible one, or over a JSON WebSocket | Chat |
| Values the agent reads at startup, entered as environment values when you build | Voice and chat, when the agent reads any |
| Public hosts the agent calls by name, entered as additional egress domains when you build | Voice and chat, when the agent calls any |
An upload leaves .env files behind, so enter those values as environment values instead. You don’t need to ship a database the agent depends on: when the agent’s code declares Postgres, MySQL, ClickHouse, MongoDB, Redis, Qdrant, RabbitMQ, NATS or MinIO without shipping it, the builder provides it.
When a requirement isn’t met, the build reads Failed with the reason on the step that failed; Environment FAQ & fixes covers the common ones.
Limits
| Setting | Range | Default |
|---|---|---|
| Scenarios to generate, at build | 1 to 1000 | 10 |
| Parallel worlds, scenarios running at once | 1 to 4 | 1 |
| Repeats per scenario, for selected scenarios | 1 to 20 | 1 |
| Repeats per scenario, for the whole suite | 1×, 3×, 5×, 8× or custom | 1× |
| Credential file, for agents that need a Google service account | Google service-account JSON, up to 5 MiB | None |
| Length of a single conversation | Set per environment, under Run end conditions on the Contract tab | Set at build |
Repeats is how many times each scenario plays, and the runs table records it as Trials; Run a simulation explains the controls. Contracts covers run end conditions.
Coming soon
These appear in the product and can’t be selected yet:
| Area | Coming soon |
|---|---|
| Sources | MCP server, Build locally, Prebuilt Environments, Web Environments |
| Git hosts | GitLab, Bitbucket |
| Voice platforms | Bland.ai, ElevenLabs |
| Chat platforms | OpenAI Assistants, LangGraph Cloud, CrewAI, Claude Agents |
| Agent types | Computer use, Code, Robotics |
Questions & Discussion