update_agent
Update part of an agent — fields you don't pass stay as they are.
⚠️ List-field semantics, don't mix them up: `tools=[...]` / `skills=[...]` /
`knowledge_bases=[...]` are **full-list replacement** — items you didn't read first get pushed
out. To "add one / remove one", use `add_tools` / `remove_tools` (and add_/remove_skills,
add_/remove_knowledge_bases): incremental, idempotent, leaves the rest untouched.
After the call, **read the response** to verify the final list — don't announce "enabled" just
because the call succeeded.
Also: tools can ride on a skill (the tools field of create_skill/update_skill) — once the skill
is attached to an agent, its bound tools join the chat-time whitelist automatically, but they
**do not appear in the agent's own tools list**.
`auto_suggest=True` makes the agent propose 1–3 clickable follow-up questions after every turn
(rendered above the composer; clicking one sends it). `suggest_prompt` is optional steering for
those questions ("always move toward booking a demo") — leave it empty and they are written
from the conversation alone. Costs one extra short LLM call per turn.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| soul | No | ||
| task | No | ||
| model | No | ||
| tools | No | ||
| skills | No | ||
| greeting | No | ||
| add_tools | No | ||
| ask_forms | No | ||
| published | No | ||
| reasoning | No | ||
| add_skills | No | ||
| auto_suggest | No | ||
| remove_tools | No | ||
| auto_greeting | No | ||
| remove_skills | No | ||
| suggest_prompt | No | ||
| knowledge_bases | No | ||
| grounding_required | No | ||
| add_knowledge_bases | No | ||
| remove_knowledge_bases | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |