Skip to main content
PATCH
Update an agent

Authorizations

X-API-Key
string
header
required

[Production] API key for production authentication

Path Parameters

id
string
required

The unique identifier for the agent.

Body

application/json

Agent update data

agentType
enum<string>

AgentType: send "text" or "voice" to change the agent's authored modality. A missing key or an explicit null is "no change"; an empty string is rejected, because an agent cannot be un-typed on purpose.

Available options:
text,
voice
description
string
disabledToolReferenceIds
string[]

DisabledToolReferenceIds switches tools off for this agent without changing how they reach it: the runtime withholds them from the LLM, the resource keeps its parameters, and the Tools tab keeps showing the row.

Accepts a reference on EITHER route — a tool attached directly, or one bundled in a skill this agent has hired. A skill's own bundle is never edited by this: it is shared by every agent that hires the skill, so the per-agent switch is recorded here instead.

Replaces the whole set, like ToolReferenceIds does. Absent = no change, [] = enable everything. A reference the agent cannot reach by either route is stored as sent and ignored at execution time.

guardrails
object

Guardrails: send a non-null object to set or update the block. Same "cannot clear via PATCH" caveat as LLMConfig.

Unlike LLMConfig, replacement is scoped to each sub-object rather than to the block. To toggle one inner safety field, resend the whole SafetySettings object: a toggle left out of it is stored off (unlike create, where it defaults on). Sending only safetySettings leaves dataPrivacy intact, and sending only dataPrivacy leaves safetySettings intact. Sending neither ({}) changes nothing.

hooks
object

Hooks replaces the whole block. Send null or {"preTurn": []} to remove it; a missing key leaves it unchanged. Unlike LLMConfig and Guardrails, this block can be cleared through PATCH.

image
string

Image is the agent's avatar: either a URL or a base64 data URI. Optional, like AgentType above: a missing key or an explicit null is "no change". Unlike AgentType, an explicit empty string IS meaningful — it clears the avatar — since an agent without one is a valid, expressible state.

imageOptimizedFormat
boolean

ImageOptimizedFormat reports whether Image is stored in Cognigy's optimized image format. Same "nil = no change" semantics as Image; the two are set together, never independently.

instructions
string

Instructions: same rules as on create. A stored value over the limit that is sent back unchanged is accepted.

knowledge
object

Knowledge uses field-level merge (RFC 7396 JSON Merge Patch). Each inner field independently distinguishes absent / explicit null / value. See PatchKnowledgeRequest.

largeLanguageModelReferenceId
string
llmConfig
object

LLMConfig: send a non-null object to set or replace the override. A missing key OR an explicit null is treated as "no change" — this endpoint cannot currently clear an existing override. Removing the override requires a separate path (or a future revision that wires PartialUpdateInput.ClearLLMConfig from a raw-body presence check).

localeReferenceId
string
name
string

Name: same rules as on create.

personaReferenceId
string
realtimeVoice
string

RealtimeVoice: one of the gpt-live-1 voices (alloy, ash, ballad, beacon, bossa, cedar, cinder, coral, delta, echo, gleam, marin, meridian, quartz, ripple, sage, shimmer, stone, tempo, verse, vesper, willow) sets it, null resets to "marin"; missing is no change; others are 400.

role
string

Role: absent or explicit null leaves the stored value alone; a string replaces it (send "" to clear). Same rules as on create.

skillReferenceIds
string[]
toolReferenceIds
string[]
voiceLargeLanguageModelReferenceId
string

VoiceLargeLanguageModelReferenceId: a UUID sets it, "" clears it; missing or null is no change.

voicePromptTemplate
string

VoicePromptTemplate: a string sets it, null resets to the product default; missing is no change; empty or over 32 KiB is rejected with 400.

Response

OK

agentType
enum<string>

AgentType is the modality the agent was authored for. Always present: an agent stored without one — every agent that predates the field — reads back as "text", because it was authored when chat was the only thing an agent could be.

Available options:
text,
voice
Example:

"voice"

createdAt
integer
createdBy
string
Example:

"507f1f77bcf86cd799439011"

description
string
disabledToolReferenceIds
string[]
guardrails
object
hooks
object
id
string
Example:

"507f1f77bcf86cd799439011"

image
string
imageOptimizedFormat
boolean
instructions
string
knowledge
object
largeLanguageModelReferenceId
string
lastChangedAt
integer
lastChangedBy
string
Example:

"507f1f77bcf86cd799439011"

llmConfig
object
localeReferenceId
string
name
string
organisationId
string
Example:

"507f1f77bcf86cd799439011"

personaReferenceId
string
projectId
string
Example:

"507f1f77bcf86cd799439011"

realtimeVoice
string

RealtimeVoice is the gpt-live-1 voice; absent means the default ("marin").

referenceId
string
role
string
skillReferenceIds
string[]
toolReferenceIds
string[]
voiceLargeLanguageModelReferenceId
string

VoiceLargeLanguageModelReferenceId links a realtime (V2V) LLM for voice sessions. Optional UUID; text turns never use it.

voicePromptTemplate
string

VoicePromptTemplate is the agent's own template; absent means the product default.