Skip to content

Tool Parameter

v1.3.0
🔧 GetTool Enabled 1 tool

This operator exposes 1 tool that allow Agent and Gemini Live LOPs to read and adjust parameters on any TouchDesigner operator, including sequence parameters with insert, edit, and delete support.

The Tool Parameter operator turns any TouchDesigner operator’s parameters into tools that an agent can call. Point it at a Noise TOP, and the agent gets a tool to adjust its frequency, amplitude, and other parameters. Point it at a CHOP, and the agent can tweak its settings. Each target operator becomes its own named tool with a dynamically generated schema based on its actual parameters.

  • Dynamic tool generation: Scans target operators and creates tool schemas from their actual parameters, including types, ranges, defaults, and menu options
  • Per-tool filtering: Control which parameter pages and individual parameters are exposed per target operator
  • Mode control: Set each tool to Disabled, Enabled, or Forced (required for the agent to call)
  • Sequence parameter support: Full CRUD for TouchDesigner sequence parameters — replace entire sequences, edit single blocks, insert, or delete
  • Tool definition tuning: Toggle whether help text, current values, default values, ranges, and sequence sizes are included in tool descriptions
  • Undo support: All parameter changes are wrapped in TouchDesigner undo blocks

None — target operators are added via the Add / Remove Target Ops sequence on the Settings page.

  • Output DAT: JSON result of the last tool operation
  1. Create a tool_parameter operator.
  2. On the Settings page, add a new entry in the Add / Remove Target Ops sequence.
  3. Set Tool Name to a descriptive name (e.g., “adjust_noise”).
  4. Drag the operator you want to control onto the Select Target Op parameter.
  5. Optionally filter which Pages and Parameters are exposed (default * exposes all custom parameters).
  6. Connect the tool_parameter to an agent via the agent’s External Op Tools parameter.
  7. The agent can now read and adjust parameters on that operator by name.

By default, all custom parameters on all pages are exposed. You can narrow this:

  • Set Pages to a specific page name (e.g., “Settings”) to only expose parameters on that page.
  • Set Parameters to a comma-separated list of parameter names to expose only those.
  • Set Required Pars to mark specific parameters as required in the tool schema — the agent must provide values for these.

Add multiple entries in the Add / Remove Target Ops sequence — each becomes a separate named tool. For example:

  1. Entry 0: “adjust_noise” → Noise TOP (Pages: *, Mode: Enabled)
  2. Entry 1: “adjust_filter” → Filter CHOP (Pages: *, Mode: Enabled)
  3. Entry 2: “set_resolution” → Render TOP (Parameters: resolutionw,resolutionh, Mode: Enabled)

The agent sees three distinct tools it can call independently.

For operators with sequence parameters (e.g., the Agent’s Tool sequence), enable the sequence editing tools on the Tool Toggles page:

ToggleDescription
Enable Sequence as ArrayReplace an entire sequence at once with an array of blocks
Enable Single Block EditEdit one block within a sequence by index
Enable Sequence InsertInsert a new block at a position
Enable Sequence DeleteDelete a block by index

The Tool Definition section on the Tool Toggles page controls what context the agent sees in each tool’s schema:

  • Include Help Text: Adds parameter help strings to the tool description
  • Include Current Values: Shows the current value of each parameter so the agent knows the starting state
  • Include Default Values: Shows the default value for reference
  • Include Parameter Ranges: Adds min/max range info to descriptions (ranges are informational only — they are not enforced in the schema)
  • Include Sequence Size: Shows the current block count for sequence parameters

Disable some of these to reduce token usage if the agent doesn’t need the extra context.

  • Give each tool a clear, descriptive Tool Name — the agent uses this to decide which tool to call.
  • Use Description to add context about what the target operator does and why the agent might want to adjust it.
  • Start with Enable Set Current Values and Enable Get Current Values on. Only enable sequence operations when the agent actually needs to manipulate sequences.
  • Use the Mode menu to set tools to “forced” when the agent must always call them (e.g., mandatory configuration steps).
  • Toggle Enable / Expose Tool off on the Settings page as a master switch to temporarily hide all tools without removing them.
  • Agent can’t see any tools: Check that Enable / Expose Tool is On (Settings page) and that at least one target operator has Mode set to “enabled” or “forced”.
  • Agent sees too many parameters: Filter by Pages or Parameters to reduce the tool schema size.
  • Agent sets values outside expected range: Ranges in tool descriptions are informational only. The operator doesn’t enforce min/max at the schema level — values are applied directly to TouchDesigner parameters, which have their own clamping.
Enable / Expose Tool (Enableoperations) op('tool_parameter').par.Enableoperations Toggle

Master switch for all parameter operations

Default:
True
Use Custom Parameters to Define Tools Header
Add / Remove Target Ops (Optool) op('tool_parameter').par.Optool Sequence
Default:
0
Tool Name (Optool0name) op('tool_parameter').par.Optool0name Str
Default:
"" (Empty String)
Description [ optional ] (Optool0info) op('tool_parameter').par.Optool0info Str
Default:
"" (Empty String)
Mode (Optool0mode) op('tool_parameter').par.Optool0mode Menu
Default:
enabled
Options:
disabled, enabled, forced
Select Target Op (Optool0ops) op('tool_parameter').par.Optool0ops OP
Default:
"" (Empty String)
Parameters (Optool0parameters) op('tool_parameter').par.Optool0parameters StrMenu
Default:
*
Menu Options:
Pages (Optool0pages) op('tool_parameter').par.Optool0pages StrMenu
Default:
*
Menu Options:
Required Pars (Optool0required) op('tool_parameter').par.Optool0required StrMenu
Default:
"" (Empty String)
Menu Options:
Tools Exposed Header
Enable Set Current Values (Enablesetcurrent) op('tool_parameter').par.Enablesetcurrent Toggle

Expose tools for setting current parameter values (main value setting operation)

Default:
True
Enable Get Current Values (Enablegetcurrent) op('tool_parameter').par.Enablegetcurrent Toggle

Expose tool for getting current parameter values

Default:
True
Enable Sequence as Array (Enablefullsequenceedit) op('tool_parameter').par.Enablefullsequenceedit Toggle

Expose tools for replacing entire sequences

Default:
False
Enable Single Block Edit (Enablesequencesingleedit) op('tool_parameter').par.Enablesequencesingleedit Toggle

Expose tools for editing individual sequence blocks

Default:
False
Enable Sequence Insert (Enablesequenceinsert) op('tool_parameter').par.Enablesequenceinsert Toggle

Expose tools for inserting new blocks into sequences

Default:
False
Enable Sequence Delete (Enablesequencedelete) op('tool_parameter').par.Enablesequencedelete Toggle

Expose tools for deleting blocks from sequences

Default:
False
Tool Definition Header
Include Help Text (Includehelp) op('tool_parameter').par.Includehelp Toggle

Include parameter help text in tool descriptions

Default:
True
Include Current Values (Includecurrent) op('tool_parameter').par.Includecurrent Toggle

Include current parameter values in tool descriptions

Default:
True
Include Default Values (Includedefault) op('tool_parameter').par.Includedefault Toggle

Include default parameter values in tool descriptions

Default:
True
Include Parameter Ranges (Includeranges) op('tool_parameter').par.Includeranges Toggle

Include parameter range information in descriptions for context (ranges are never enforced in schema)

Default:
True
Include Sequence Size (Includesequencesize) op('tool_parameter').par.Includesequencesize Toggle

Include current block count in sequence tool descriptions

Default:
False
v1.3.02025-09-01

added sequence support and dramatically upgraded the paramter handling. and removed biase out of the tool. now defines a more generic value get/set tool. but can use sequence as arrays for more things with available edit / insert/ delete specific index

v1.1.02025-08-17

ADDED undo block support for parameter adjustments.