Skip to content

Tool DAT Operator

  • Complete rewrite as StagedDatToolEXT with staged editing workflow
  • Explicit operation enum replacing multi-purpose tool
  • Staged preview system with dedicated staging/diff DATs
  • Confirmation workflow with Apply/Always Allow/Cancel options
  • Undo/Redo support with proper TouchDesigner undo blocks
  • New operations: create_dat, insert_row, insert_column
  • Enhanced find_replace with regex and case sensitivity
  • Improved parameter organization and validation
🔧 GetTool Enabled 1 tool

This operator exposes 1 tool that allow Agent and Gemini Live LOPs to manipulate Table and Text DATs within TouchDesigner, enabling agents to perform operations like appending, inserting, deleting, updating, and finding/replacing content.

The Tool DAT operator provides a versatile interface for manipulating both Table and Text DATs within TouchDesigner. It enables users to perform a variety of operations such as appending, inserting, deleting, updating, and finding/replacing content. By linking this operator in the Agent LOP’s Tools parameter page, it can be called by the agent to perform operations on DATs based on user instructions. This allows for dynamic modification and management of data within TouchDesigner projects, enhancing automation and interactivity.

  • None (standard TouchDesigner installation).
  • Must be linked in an Agent LOP’s Tools parameter page to be used by an agent.

None

  • Target DAT (Table/Text): The DAT specified by the Target DAT parameter, which is modified by the operations.
  • Operation Log (Table DAT): Logs operations performed. Columns: Timestamp, Operation, Target, Status, Details.
Target DAT (Datselect) op('tool_dat').par.Datselect DAT
Default:
None
DAT Type (Dattype) op('tool_dat').par.Dattype Menu
Default:
table
Auto-create Missing DATs (Createifmissing) op('tool_dat').par.Createifmissing Toggle
Default:
None
Response Verbosity (Responseverbosity) op('tool_dat').par.Responseverbosity Menu
Default:
minimal
Skip Confirm (Always Allow) (Alwaysallow) op('tool_dat').par.Alwaysallow Toggle
Default:
None
Tool Name (Toolname) op('tool_dat').par.Toolname Str
Default:
None
Max Rows (Maxrows) op('tool_dat').par.Maxrows Int
Default:
None
Max Columns (Maxcolumns) op('tool_dat').par.Maxcolumns Int
Default:
None
Max Characters (Text) (Maxchars) op('tool_dat').par.Maxchars Int
Default:
None
Table Bias (Tablebias) op('tool_dat').par.Tablebias Menu
Default:
none
Enable Read (Enableread) op('tool_dat').par.Enableread Toggle
Default:
None
Enable DAT Creation (Enablecreation) op('tool_dat').par.Enablecreation Toggle
Default:
None
Enable Replace All (Enablereplaceall) op('tool_dat').par.Enablereplaceall Toggle
Default:
None
Enable Find/Replace (Enablefindreplace) op('tool_dat').par.Enablefindreplace Toggle
Default:
None
Enable Insert Row (Enableinsertrow) op('tool_dat').par.Enableinsertrow Toggle
Default:
None
Enable Insert Column (Enableinsertcolumn) op('tool_dat').par.Enableinsertcolumn Toggle
Default:
None
Enable Replace Row (Enablereplacerow) op('tool_dat').par.Enablereplacerow Toggle
Default:
None
Enable Replace Column (Enablereplacecolumn) op('tool_dat').par.Enablereplacecolumn Toggle
Default:
None
Enable Update Cell (Enableupdatecell) op('tool_dat').par.Enableupdatecell Toggle
Default:
None
Enable Delete Row (Enabledeleterow) op('tool_dat').par.Enabledeleterow Toggle
Default:
None
Enable Delete Column (Enabledeletecolumn) op('tool_dat').par.Enabledeletecolumn Toggle
Default:
None
Enable Append Text (Enableappendtext) op('tool_dat').par.Enableappendtext Toggle
Default:
None
Enable Update Line (Enableupdateline) op('tool_dat').par.Enableupdateline Toggle
Default:
None
Enable Delete Line (Enabledeleteline) op('tool_dat').par.Enabledeleteline Toggle
Default:
None
Bypass (Bypass) op('tool_dat').par.Bypass Toggle
Default:
None
Show Built-in Parameters (Showbuiltin) op('tool_dat').par.Showbuiltin Toggle
Default:
None
Enable Logging (Enablelogging) op('tool_dat').par.Enablelogging Toggle
Default:
None
Version (Version) op('tool_dat').par.Version Str
Default:
None
Last Updated (Lastupdated) op('tool_dat').par.Lastupdated Str
Default:
None
Creator (Creator) op('tool_dat').par.Creator Str
Default:
None
Website (Website) op('tool_dat').par.Website Str
Default:
None
ChatTD Operator (Chattd) op('tool_dat').par.Chattd OP
Default:
None
  • Logging adds overhead; disable if not needed.
  • Very large DATs will consume more memory and may slow down find/replace operations.
  • Context injection adds data to the Agent prompt, potentially increasing token usage.
  1. Create a tool_dat operator.
  2. Open the agent LOP parameters.
  3. Go to the ‘Tools’ page.
  4. Drag the tool_dat operator onto an empty Tool parameter (e.g., Tool 1).
  5. Ensure the corresponding ‘Enable Tool’ toggle is On.

Appending to a Table DAT

  1. Set the Target DAT parameter on the tool_dat operator to your table.
  2. Enable the Enable Insert Row toggle.
  3. In your agent, ask it to append a row: “Use the dat_tool to append a row to the table with the values ‘Apple’, ‘Red’, ‘Fruit’.”

Updating a Text DAT

  1. Set the Target DAT parameter on the tool_dat operator to your text DAT.
  2. Enable the Enable Update Line toggle.
  3. In your agent, ask it to update a line: “Use the dat_tool to update line 3 of the text DAT to ‘This is the updated third line’.”
  • Allowing an Agent LOP to dynamically modify data tables.
  • Automating data entry or transformation based on conversation.
  • Managing configuration files or settings via chat instructions.
  • Populating UI elements connected to the target DAT.
  • Creating interactive data manipulation tools driven by natural language.