Tool Parameter
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.
Use the Tool Debugger operator to inspect exact tool definitions, schemas, and parameters.
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.
Key Features
Section titled “Key Features”- 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
Input/Output
Section titled “Input/Output”Inputs
Section titled “Inputs”None — target operators are added via the Add / Remove Target Ops sequence on the Settings page.
Outputs
Section titled “Outputs”- Output DAT: JSON result of the last tool operation
Usage Examples
Section titled “Usage Examples”Exposing Parameters to an Agent
Section titled “Exposing Parameters to an Agent”- Create a
tool_parameteroperator. - On the Settings page, add a new entry in the Add / Remove Target Ops sequence.
- Set Tool Name to a descriptive name (e.g., “adjust_noise”).
- Drag the operator you want to control onto the Select Target Op parameter.
- Optionally filter which Pages and Parameters are exposed (default
*exposes all custom parameters). - Connect the
tool_parameterto anagentvia the agent’s External Op Tools parameter. - The agent can now read and adjust parameters on that operator by name.
Filtering Parameters
Section titled “Filtering Parameters”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.
Controlling Multiple Operators
Section titled “Controlling Multiple Operators”Add multiple entries in the Add / Remove Target Ops sequence — each becomes a separate named tool. For example:
- Entry 0: “adjust_noise” → Noise TOP (Pages:
*, Mode: Enabled) - Entry 1: “adjust_filter” → Filter CHOP (Pages:
*, Mode: Enabled) - Entry 2: “set_resolution” → Render TOP (Parameters:
resolutionw,resolutionh, Mode: Enabled)
The agent sees three distinct tools it can call independently.
Sequence Parameter Editing
Section titled “Sequence Parameter Editing”For operators with sequence parameters (e.g., the Agent’s Tool sequence), enable the sequence editing tools on the Tool Toggles page:
| Toggle | Description |
|---|---|
| Enable Sequence as Array | Replace an entire sequence at once with an array of blocks |
| Enable Single Block Edit | Edit one block within a sequence by index |
| Enable Sequence Insert | Insert a new block at a position |
| Enable Sequence Delete | Delete a block by index |
Tool Description Tuning
Section titled “Tool Description Tuning”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.
Best Practices
Section titled “Best Practices”- 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.
Troubleshooting
Section titled “Troubleshooting”- 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.
Parameters
Section titled “Parameters”Settings
Section titled “Settings”op('tool_parameter').par.Enableoperations Toggle Master switch for all parameter operations
- Default:
True
op('tool_parameter').par.Optool Sequence - Default:
0
op('tool_parameter').par.Optool0name Str - Default:
"" (Empty String)
op('tool_parameter').par.Optool0info Str - Default:
"" (Empty String)
op('tool_parameter').par.Optool0ops OP - Default:
"" (Empty String)
Tool Toggles
Section titled “Tool Toggles”op('tool_parameter').par.Enablesetcurrent Toggle Expose tools for setting current parameter values (main value setting operation)
- Default:
True
op('tool_parameter').par.Enablegetcurrent Toggle Expose tool for getting current parameter values
- Default:
True
op('tool_parameter').par.Enablefullsequenceedit Toggle Expose tools for replacing entire sequences
- Default:
False
op('tool_parameter').par.Enablesequencesingleedit Toggle Expose tools for editing individual sequence blocks
- Default:
False
op('tool_parameter').par.Enablesequenceinsert Toggle Expose tools for inserting new blocks into sequences
- Default:
False
op('tool_parameter').par.Enablesequencedelete Toggle Expose tools for deleting blocks from sequences
- Default:
False
op('tool_parameter').par.Includehelp Toggle Include parameter help text in tool descriptions
- Default:
True
op('tool_parameter').par.Includecurrent Toggle Include current parameter values in tool descriptions
- Default:
True
op('tool_parameter').par.Includedefault Toggle Include default parameter values in tool descriptions
- Default:
True
op('tool_parameter').par.Includeranges Toggle Include parameter range information in descriptions for context (ranges are never enforced in schema)
- Default:
True
op('tool_parameter').par.Includesequencesize Toggle Include current block count in sequence tool descriptions
- Default:
False
Changelog
Section titled “Changelog”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.