Agents API
Today only
GET /v1/agents (list agents in a lab) is shipped. The per-agent sub-routes described below (GET /v1/agents/{id}, /messages, /metrics, /start, /stop) are planned, not yet live. Drive individual agents from the web app or via Convex actions; this page documents the target REST shape so SDKs can build against it.Agent Roles
Agent Status
Create an Agent
Lab this agent belongs to.
Display name (e.g., “Research Lead”, “Figure Worker”).
Agent role:
orchestrator, lead, or worker.Model identifier (e.g.,
claude-opus-4-8, claude-sonnet-5, claude-haiku-4-5, gpt-5.5, gemini-3.1-pro, grok-4, sonar-pro).Convex ID of the agent this one reports to. Workers report to leads; leads report to the orchestrator.
Custom system prompt. Overrides the default for this role.
List of capabilities (e.g.,
["code", "figures", "latex", "data-analysis"]).List Agents
Lab ID to list agents for.
Filter by role:
orchestrator, lead, worker.Filter by status:
active, idle, busy, retired.Get an Agent
Update an Agent
Updated display name.
Change the model (e.g., upgrade from Sonnet to Opus).
Updated system prompt.
Updated capabilities list.
Change the supervising agent.
Start an Agent
Activate a retired or newly created agent so it begins receiving tasks.Stop an Agent
Set an agent toretired status. It finishes any in-progress task, then stops accepting new work.
If
true, immediately stop the agent and reassign its current task.Delete an Agent
Remove an agent from the lab. The agent must be inretired status.
Message Routing
When you send a message to the orchestrator, it routes the request through the agent hierarchy based on reasoning level.Send a Message to an Agent
Target agent ID. Use the orchestrator ID for automatic routing.
Message content.
Optional context (e.g., which experiment or paper is being discussed).