Agents

Update agent

Change individual fields of an agent; the rest stays.

PATCHhttps://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

spacestringPflicht

Slug of the space, e.g. `praxis-mueller`. Returned by `GET /spaces`.

agentuuidPflicht

ID of the agent.

Body

namestring

Display name, 1 to 80 characters.

descriptionstring | null

Internal description.

languagestring

Conversation language, e.g. `de`. Defaults to the space default.

voice_iduuid | null

Voice 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_messageobject

The greeting: `text` and `interruptible` (whether the caller may interrupt it).

behaviorobject

Behavior 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.