pub struct AgentView {Show 13 fields
pub compute_ref: Option<String>,
pub created_at: Option<String>,
pub description: Option<String>,
pub execution_mode: Option<String>,
pub id: Option<String>,
pub model: Option<String>,
pub name: Option<String>,
pub runs: Option<i32>,
pub schedule: Option<String>,
pub service_account_id: Option<String>,
pub status: Option<String>,
pub tools: Option<Vec<String>>,
pub updated_at: Option<String>,
}Fields§
§compute_ref: Option<String>ComputeRef is the visor machine this bot is bound to, opaque here: this package stores and echoes it, and the binding’s lifecycle belongs elsewhere. Empty means unbound, which is what every one-shot agent is.
created_at: Option<String>CreatedAt is when the agent was defined, RFC 3339 in UTC to the second.
description: Option<String>Description is the one line another agent reads when deciding whether to call this one: the tool catalogue publishes it as the description of agent_<name>, falling back to "agent
execution_mode: Option<String>ExecutionMode is one-shot or long-running, and it decides who may start this agent. one-shot runs only when something POSTs to it; long-running is additionally invoked by the scheduler on Schedule, once a minute against the cron. An org’s long-running agents are capped, so a switch INTO it can be refused with 409.
id: Option<String>ID is the agent’s stable handle, minted here as "agent_" + 32 hex characters of crypto/rand. A caller cannot choose it, and it never changes — unlike Name, which is the other way to address the same agent.
model: Option<String>Model is the Zen model this agent runs on, and it is always OUR name for it: writes normalize through cloud.ZenModel and the read normalizes again, so an upstream family name never leaves here even from a row written before that rule existed. A create that named none took the deployment’s configured default, so this is where a caller learns which model it actually got.
name: Option<String>Name is the agent’s org-unique handle, matching ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$. It addresses the agent everywhere ID does, it is what a run row records, and it is the suffix of the agent_<name> tool other agents call this one by. Set once at create; no update route moves it, because moving it would orphan that history.
runs: Option<i32>Runs is how many executions the org has recorded against this agent, counted at read time. The list and update reads count the WHOLE history; the detail read reports the size of the RecentRuns page it carries, which stops at 20 — so a detail row saying 20 means "at least 20", not "exactly 20".
schedule: Option<String>Schedule is the 5-field cron the scheduler fires a long-running agent on, evaluated once a minute. Required for long-running and DROPPED for one-shot — a one-shot agent’s schedule is not stored, so absence here is the mode’s answer rather than a value nobody set.
service_account_id: Option<String>ServiceAccountID is the IAM agent service account (
status: Option<String>Status is the agent’s readiness, and today it is "ready" on every row: an agent is a definition rather than a provisioned thing, so nothing transitions it. Server-set at create; no route accepts it.
tools: Option<Vec<String>>Tools are the tool names this agent may call, and the list IS the authority: an agent that declares none gets none. The single entry "*" means whatever the fleet’s MCP server serves at the moment of the run, resolved per run rather than frozen here, which is how the default assistant reaches subsystems that shipped after it was defined. Empty array, never null.
updated_at: Option<String>UpdatedAt is the last time any field above was written, same format. It moves on an update to the DEFINITION and never on a run, so a busy agent nobody has edited keeps an old one.