All nodes/Data/DataFrame Ops

DataFrame Tool

Connects a set of DataFrame tools to the AI Agent: CSV/XLSX loading, filtering, merging, aggregation, saving. Requires a connected file_store for read/write operations.

DataFrame ToolT
File store

Type in the graph: dataframe_tool

Tool

Try it

Minimal working workflow

Entry
AI Agent
DataFrame ToolT
LLM
Buffer MemoryS
Exit
  • Execute + Data
  • Extension
  • LLM
  • Memory
  • Execute + Data + Streaming
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Runs as pasted

When to use it

Gives an AI agent a set of table tools: the model decides which file to open, what to filter by, what to join with what, and where to save the result. This is the answer to requests like “look at the export and tell me who is overdue”, where nobody knows in advance which columns will be needed.

If the sequence of operations is known, build it from the df_* nodes instead: they spend no tokens, do not depend on the model’s judgement, and repeat identically run after run. The tool earns its place where the steps are chosen mid-conversation.

The node connects to the agent’s Extensions port with a link_extension edge and is not an execution step of its own: outside an agent it does nothing.

How it works

Tables never travel through the conversation. A tool that produces a table stores it in the run and returns the model a short identifier (df_…) plus a preview — the schema and a few rows. The next call refers to that identifier.

Identifiers live for one agent turn. Once the agent has answered, the store is cleared, and an old df_… is no longer found in the next message.

The “Enabled tools” list offers: loading CSV and XLSX, describing a table, filtering rows, selecting columns, joining, grouping with aggregates, exporting to JSON, and saving to CSV or XLSX. Sorting, updating, stacking and de-duplication are not among them — those exist only as nodes.

Files are read and written through a file store. “From the run context” uses this workspace’s store, and “Subfolder” narrows it to one directory (the field takes templates, so sessions/{{ variables.session_id }} works). “External connection” exposes the “File store” port for a store config node.

Common mistakes

  • Expecting a table on the graph’s output. The node has no data output. Only what the model puts into its answer, or the file it saves, leaves the agent.
  • Referring to an identifier from an earlier message. The tool answers that no such table exists; the file has to be loaded again.
  • Load and save tools with no store configured. They return an error to the model, while the rest keep working.

Inputs

PortWirePayloadNotes
File storefile_storeDatadata

shown when connection_source ≠ "auto"

Outputs

PortWirePayloadNotes
tool_outExtensionlink_extension

Configuration

FieldTypeDefaultDescription
Connection sourceconnection_sourcestringauto

Where this node gets its connection. 'From the run context' uses what the platform already knows (the Telegram bot this workflow is deployed to / this workspace's own file store) and needs no wiring. 'External connection' shows the resource port so a config node can be wired into it.

Options: auto — From the run context, external — External connection (wire a config node)

Subfolderstore_subfolderstring""

Optional folder inside this workspace's store to treat as the root, e.g. `reports` or `sessions/{{ variables.session_id }}`. Blank = the store root.

supports templates

shown when connection_source = auto

Enabled toolsenabled_toolsarray<string>["df_load_csv","df_load_xlsx","df_describe","df_query","df_select","df_merge"…

Which DataFrame tools the agent may call.