update_element
Update an existing element by type and id, changing ONLY the fields you
pass; omitted fields are kept.
This is the same partial update as PATCH /api/v2/{type}/{id}: each field you
pass replaces that field's value whole. A text field you pass is set (pass an
empty string "" to clear it). A multi-link field you pass REPLACES that
field's whole array with the array you send (pass an empty array [] to clear
it): a partial array drops every link it leaves out (only links your key
cannot see are kept). To keep the rest, read the element first and send the
whole array, or use edit_links, which adds or removes single links and
leaves the rest of the array as it is. type is a slug from
list_element_types; id is the element's UUID. Requires a WRITE API-Key.
Returns the full updated element in the v2 wire shape. Errors if the element
does not exist, or (naming the field) on an unknown field or a bad link target.
On a world that takes an agent seat's writes as proposals, a seat's update is
proposed, not applied: the answer is {proposed, proposal}, never the
element, and a keeper (the owner or a co-builder) accepts or declines it.
if_match (optional) is the element's change_seq as you read it: the
change_seq field every v2 answer carries on the element, as
PATCH /api/v2/{type}/{id} takes it in its If-Match header. The update
applies only while the element is still at that number; if anyone wrote it
since, nothing is written and the error's code is precondition_failed, with
the element as it is now under current: re-read it, then send again or ask
the user. Left out, the update applies whatever changed in between.
A refusal from keel is the API's own error as JSON text, {"error": {message, type, code, param, doc_url}} (as the HTTP route answers it), with
retry_after (seconds) beside it when the route would send Retry-After.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"type": "<type>",
"id": "<id>",
"fields": "<fields>"
},
"name": "update_element"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| fields | Yes | ||
| if_match | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||