Agents
Update agent
Change individual fields of an agent; the rest stays.
https://app.elunos.ai/api/v1/spaces/{space}/agents/{agent}Changes only the fields you send. behavior.values is merged per block: if you send only tone, role and every other block stay as they are. Lists such as tool_ids, on the other hand, are replaced as a whole.
Path parameters
spacestringPflichtSlug of the space, e.g. `praxis-mueller`. Returned by `GET /spaces`.
agentuuidPflichtID of the agent.
Body
namestringDisplay name, 1 to 80 characters.
descriptionstring | nullInternal description.
languagestringConversation language, e.g. `de`. Defaults to the space default.
voice_iduuid | nullVoice from [List voices](/docs/api-reference/list-voices). `null` uses the default voice.
modelstring | null`id` of a model from `llm_options` in [Get space](/docs/api-reference/get-space). `null` uses the default.
first_messageobjectThe greeting: `text` and `interruptible` (whether the caller may interrupt it).
behaviorobjectBehavior made of blocks, see [Behavior](/docs/api-reference/behavior).
tool_idsuuid[]Tools the agent can call in every step.
knowledge_idsuuid[]Documents the agent knows in every step.
knowledge_folder_idsuuid[]Knowledge base folders. The agent knows every document in them, including ones added later.
statusstring`paused` stops taking conversations immediately, `active` resumes. `active` requires a published version.
expected_updated_atdatetime`updated_at` from your last read. If the stored value differs, the API answers 409 `stale` with the current record instead of overwriting someone else's change.
Example
curl -X PATCH https://app.elunos.ai/api/v1/spaces/praxis-mueller/agents/0199a3c2-7d4e-7b21-9f3a-2c5e8d1b4a70 \
-H "Authorization: Bearer np_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"behavior": {
"values": {
"tone": {
"closeness": "personal",
"style": "brief"
}
}
},
"tool_ids": [
"0199a3c4-1f2a-7c55-8e10-6b7d9a3e2f11"
],
"expected_updated_at": "2026-09-21T10:15:00+02:00"
}'Response
{
"data": {
"id": "0199a3c2-7d4e-7b21-9f3a-2c5e8d1b4a70",
"sync_status": "draft",
"…": "…"
},
"changes": [
{
"path": "behavior.values.tone.closeness",
"from": "formal",
"to": "personal"
}
],
"sync": {
"status": "draft",
"error": null
}
}changes lists every field that actually changed.
Changes apply in conversations only after publishing. Until then the agent speaks with the last published version.