Delete from table
Let the LLM delete rows from a database table.
Ingredient Family: llmQueryToolIngredients
Outline Display: Allow LLM to delete rows from {{deleteTable}}: {{toolDescription}}{{rowFilters:
Row filters: {{rowFilters}}}}
Requires approval: {{requiresApproval}}{{guards:
Guards: {{guards}}}}{{advisory:
Not enforced by the server: {{advisory}}}}
Details
guards run once per row the delete is about to remove, over every column of the table, and one refusal deletes nothing. Every call costs one extra read of the matching rows, guards or none, since codegen reads them before the delete so that a guard can judge them.
Local scope
Names introduced within this component’s knobs:
deleteTable– table chosen from the app’s schema (viadeleteTableknob)guardScope– empty table populated by ingredients
Settings
Required
-
deleteTable: table
The table the LLM can delete from -
toolDescription: constant value (type: text; required, non-nullable)
A description of when/why to delete from 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 ondeleteTable
Restrict which rows the LLM can delete, 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).