Agent launches and managed agent hosting
Status: both switches default all (platform settings agents.launch and agents.managedHosting,
per org: all, off, or a comma-separated list of org ids; hosting also needs launch). No spend is possible by
default: agents.managedHosting.provider ships none, so provisioning answers 501 agent_hosting_not_configured.
Turning a provider on (digitalocean plus GOODQA_HOSTING_DO_TOKEN) is a spend decision for the GoodQA operator. Metering only, no
charging. An operator who sets either switch off for an org makes its routes the router's own 404 and drops its tag
from the served OpenAPI document.
Agent launches (Plan S3: run a harness on your own server)
An org registers goodqa-daemon on a server it owns (a person makes a one-time gqc_ registration code:
POST /v1/orgs/{orgId}/agent-daemons/registration-codes; the daemon redeems it at POST /v1/agent-daemon/register and
gets its gqd_ credential once). A PERSON launches a run (POST /v1/projects/{projectId}/agent-launches, harness by
NAME, with a prompt). The daemon claims it (GET /v1/agent-daemon/launches/next), and the run reports through
/v1/agent-runs/{id}/start|heartbeat|events|complete with a single-run gqr_ token.
An agent with a key naming the explicit-only agent_launch family may read and cancel, never launch:
GET /v1/orgs/{orgId}/agent-daemons, GET /v1/projects/{projectId}/agent-launches, GET /v1/agent-launches/{id},
POST /v1/agent-launches/{id}/cancel, POST /v1/orgs/{orgId}/agent-daemons/{id}/revoke.
Managed hosts (GoodQA provisions the server)
| Call | Who |
|---|---|
GET /v1/orgs/{orgId}/agent-hosting (limits, usage in started host-hours per UTC month, hosts) | a person or an agent_launch key |
PUT /v1/orgs/{orgId}/agent-hosting/limits | lower: a person or a key; raise: org OWNER in a recent session (a key gets 403) |
POST /v1/orgs/{orgId}/agent-hosts (provision one small host) | org OWNER, recent session, never a key; 429 hosting_host_limit / hosting_hours_cap; 501 while no provider |
POST /v1/orgs/{orgId}/agent-hosts/{hostId}/destroy | a person or a key; the daemon is revoked first |
POST /v1/orgs/{orgId}/agent-hosting/kill | a person or a key: destroys every live host and sets maxHosts to 0 |
POST /v1/agent-hosts/enrol | the host itself, no bearer; succeeds once, provider-verified |
Platform ceiling: 3 hosts and 2232 host-hours a month per org (422 past it). The host's user-data holds no credential.
Reference
- API reference: tags
agent-launchandagent-hostingin/v1/openapi.json. - MCP tools:
list_agent_daemons,list_agent_launches,get_agent_launch,cancel_agent_launch(no hosting tools), see the MCP tool reference. - Agent skill: agent launch skill.
- Runbook: agent daemon guide, managed hosting design and operator guide, switch rows in feature switches.