ComputeRef optionally binds this bot to a visor machine. Opaque here, bounded at 256 characters, and not resolved — this package stores the reference and the binding's lifecycle belongs elsewhere.
Description is the one line published as the description of the agent_<name> tool, which is how another agent decides whether to call this one. Optional, and worth writing for exactly that reason.
ExecutionMode is one-shot or long-running. Empty takes one-shot, which runs only when something POSTs to it. long-running additionally requires Schedule, and counts against a per-org cap that answers 409 when it is full.
Model names the model to run on. Omit it to take the deployment's configured default; name one and it is checked against the gateway's served catalogue here, so a model this deployment cannot serve is refused now rather than at the first run. Stored under our own name for it, whatever spelling arrives.
Name is the agent's org-unique handle and the only required field. It must match ^A-Za-z0-9._-{0,63}$, and a name already taken in this org is a 409 rather than an overwrite. It is permanent: no update route moves it.
Schedule is the 5-field cron a long-running agent fires on, parsed here so a bad expression is a 400 and not an agent that silently never runs. Required with long-running; DISCARDED for one-shot rather than stored unused.
Tools are the tool names this agent may call. Omitted or empty grants NONE — that default is the agent's authority and is not widened anywhere. The single entry "*" means whatever the fleet's MCP server serves at the time of each run.