Update table row
Let the LLM update rows in a database table by key.
Ingredient Family: llmQueryToolIngredients
Outline Display: Allow LLM to update rows in {{updateTable}}: {{toolDescription}}{{rowFilters:
Row filters: {{rowFilters}}}}
Requires approval: {{requiresApproval}}{{guards:
Guards: {{guards}}}}{{advisory:
Not enforced by the server: {{advisory}}}}
Details
guards run on the row as it will be once the update is applied – the row found by key with the LLM’s values merged over it, every column of the table in scope – so a rule judges the result rather than the arguments. One refusal writes nothing.
Local scope
Names introduced within this component’s knobs:
updateTable– table chosen from the app’s schema (viaupdateTableknob)guardScope– empty table populated by ingredients
Settings
Required
-
updateTable: table
The table the LLM can update -
toolDescription: constant value (type: text; required, non-nullable)
A description of when/why to update this table, to help the LLM decide when to use it
Optional
-
toolTitle: constant value (type: text; optional)
The human-readable name an MCP client shows for this tool (MCP’stitle), never read by a model. Omitted, it is derived from the wire name:search_open_ordersbecomes “Search Open Orders”. Two tools in one module cannot share a title, derived or authored. -
advisory: constant value (type: text; optional)
A rule the server does NOT enforce, sent to the model as guidance under an explicit ‘not enforced’ header; use only when no deterministic form (Require, parameter constraints, allowedRecipients…) exists. The checker warns and the dashboard shows it as not guaranteed. -
requiresApproval: constant value (type: bool; required, non-nullable)
Require the user to approve each invocation of this tool before it runs. Only honored inside a Chat concept, where the agent pauses mid-turn and shows Approve/Reject buttons; rejecting tells the LLM the call was denied and ends the turn. Setting it true on a tool used by any other agent (e.g. a row-action AskAnLLM triggered by a button) is rejected by the NectryCore typechecker – except under MCP Server, which only warns. When unset, the tool is gated exactly when its steps make it anything but read-only – the same reading its MCP category comes from, so a tool that annotates itself read-only is not gated – and only where a pause is honored: an unattended surface never invents a gate it cannot keep. -
guards: ingredient slot ofrowActionsIngredients(guardScope)(many)
Rules to enforce before this tool acts, written as row-action steps – normally oneRequireper rule. The steps run in order over the row named in this tool’s details, and the first refusal ends the call: nothing is written, read or sent, the model is told the refusal’s own message, and that message is also appended to the tool’s description and listed as a rule on the tool’s card. Omit it to enforce nothing. -
rowFilters: row filters onupdateTable
Restrict which rows the LLM can update, using filter operators like eq, neq, gt, lt, in, currentUser, etc. Each filter is a list item with akind(the operator) andsettings.
Operators:eq,neq,gt/gte/lt/lte(column/value),in(column/values list),after/before(column/days),currentUser(column only).