Hanzo
OpenapiAgents

Changes an agent in place.

Changes an agent in place. Every field is optional; a field the request omits keeps its stored value.

PATCH /v1/agents/{ref}

Addresshttps://api.hanzo.ai/v1/agents/{ref}
MethodPATCH
Operationpatch_agents_by_ref
AuthAuthorization: Bearer $HANZO_API_KEY

Changes an agent in place. Every field is optional; a field the request omits keeps its stored value. The resulting mode+schedule are re-validated together, so a partial update can never leave a long-running agent without the cron the scheduler needs to fire it, and a transition INTO long-running counts against the per-org cap on scheduled agents.

Request

10 fields, body application/json (required).

FieldInTypeRequiredDescription
refpathstringyesRef is the agent to update — its public id or org-unique name, from the path.
computeRefbodystringComputeRef re-binds (or, with "", unbinds) the visor machine.
descriptionbodystringDescription replaces the line other agents read in the tool catalogue.
executionModebodystringExecutionMode switches between one-shot and long-running.
instructionsbodystringInstructions replaces the system prompt whole, up to 32 KiB.
modelbodystringModel re-points the agent at another model, checked against the gateway's served catalogue exactly as create checks it.
refbodystringRef is the agent to update — its public id or org-unique name, from the path.
schedulebodystringSchedule replaces the cron.
serviceAccountIdbodystringServiceAccountID re-points (or, with "", clears) the IAM service account a scheduled run is billed as.
toolsbodystring[]Tools replaces the whole allow-list, it does not add to it.

Response

StatusBodyMeaning
200agentViewok

200 body — 13 fields.

FieldInTypeAlwaysDescription
computeRefbodystringComputeRef is the visor machine this bot is bound to, opaque here: this package stores and echoes it, and the binding's lifecycle belongs elsewhere.
createdAtbodystringCreatedAt is when the agent was defined, RFC 3339 in UTC to the second.
descriptionbodystringDescription 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>,…
executionModebodystringExecutionMode is one-shot or long-running, and it decides who may start this agent.
idbodystringID is the agent's stable handle, minted here as "agent_" + 32 hex characters of crypto/rand.
modelbodystringModel 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…
namebodystringName is the agent's org-unique handle, matching ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$.
runsbodyintegerRuns is how many executions the org has recorded against this agent, counted at read time.
schedulebodystringSchedule is the 5-field cron the scheduler fires a long-running agent on, evaluated once a minute.
serviceAccountIdbodystringServiceAccountID is the IAM agent service account (<org>-<agent>) a scheduled run is billed AS.
statusbodystringStatus 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.
toolsbodystring[]Tools are the tool names this agent may call, and the list IS the authority: an agent that declares none gets none.
updatedAtbodystringUpdatedAt is the last time any field above was written, same format.

Failure carries the platform error shape — see Errors.

Examples

hanzo agents update <ref>

Agents API · All Hanzo APIs · Interactive reference

How is this guide?

On this page