Skip to content
  1. OPERATORS
  2. RETRIEVERS

Graph

v1.0.0new

graph builds and queries a relationship index from TouchDesigner DAT content. Use it when source rows or text need to become nodes, edges, evidence records, query results, and agent-readable graph context.

The operator ingests observations from Source DAT or Manual Text, stores them through a selected graph storage module, and projects them into nodes and edges through a selected Projection Logic module. Queries can run as keyword, hybrid, or neighborhood searches, and the result tables expose graph nodes, edges, observations, evidence, paths, stats, and a readable context DAT.

Bundled projection modules include TD documentation, LOPs repo, TD network, simple text, and conversation projections. The simple text projection extracts entities, relation phrases, source nodes, and observation nodes from general text or table rows.

  1. On the Storage page, choose a Storage module and set Store Folder / Graph Name if you want save/load persistence.
  2. On the Projection page, choose Projection Logic, or set Projection Code DAT / Projection Folder and pulse Scan Modules.
  3. On the Graph page, set Source DAT and Source Format, then pulse Ingest Source.
  4. Leave Auto Project enabled for automatic projection, or pulse Project Source after ingesting.
  5. Set Query Text, Query Mode, Top K, and Max Hops, then pulse Query Graph.
  6. Use View Mode and Refresh View to inspect Nodes, Edges, Observations, Evidence, Query, Paths, or Stats.
  • Inputs: No formal connector inputs in metadata. The operator primarily reads Source DAT; the extension also falls back to input connector 0 when present.
  • Output 1: nodes_view, the graph node table.
  • Output 2: edges_view, the graph edge table.
  • Output 3: query_results, the last query result table.
  • Output 4: stats, graph counts and storage statistics.
  • Additional DAT references on the Outputs page expose paths, observations, evidence, and context.

graph exposes GetTool() when Enable GetTool is on. Tool Name prefixes the callable tools, so the default names are graph_query, graph_neighbors, graph_get_evidence, graph_add_observation, and graph_link.

Tool Preset controls the writable surface. Read Only exposes query, neighbors, and evidence lookup. Query and Link also exposes add observation and link. Full Graph currently exposes the same listed tool set.

  • agent: Lets an agent query or extend the graph through the exposed tools.
  • source_dat: Supplies table or text observations for ingestion.
  • source_crawl4ai: Feeds crawled content into graph projection workflows.
  • context_grabber: Can consume query context for downstream prompt assembly.
  • search_text: Complements graph traversal with direct text retrieval.
  • Storage must resolve to a real module before ingest, query, save, or load operations can work.
  • Projection modules can add dynamic parameters to the Projection page; those controls change when you change Projection Logic.
  • Project Mode controls whether projection appends only unprojected observations or replaces existing projection output.
  • SQLite sidecar storage is asynchronous. Operations may return pending while callbacks refresh status and view tables.
  • Manual edges require node labels that already exist in the graph.
  • Projection Code DAT is useful for quick iteration, but Scan Modules must run before that DAT appears as a selectable projection.
Status (Status) op('graph').par.Status Str

Current Graph operation status.

Default:
"" (Empty String)
Source Header
Source DAT (Sourceop) op('graph').par.Sourceop DAT

DAT containing rows or text to ingest as observations.

Default:
"" (Empty String)
Source Format (Sourceformat) op('graph').par.Sourceformat Menu

How to interpret the Source DAT.

Default:
auto
Options:
auto, table, text, conversation
Manual Text (Manualtext) op('graph').par.Manualtext Str

Single observation text for quick manual adds.

Default:
"" (Empty String)
Ingest Source (Ingestsource) op('graph').par.Ingestsource Pulse
Default:
False
Add Manual (Addmanual) op('graph').par.Addmanual Pulse
Default:
False
Query Header
Query Text (Querytext) op('graph').par.Querytext Str
Default:
"" (Empty String)
Query Mode (Querymode) op('graph').par.Querymode Menu
Default:
hybrid
Options:
hybrid, keyword, neighborhood
Top K (Topk) op('graph').par.Topk Int
Default:
10
Range:
1 to 500
Max Hops (Maxhops) op('graph').par.Maxhops Int
Default:
1
Range:
0 to 8
Query Graph (Querygraph) op('graph').par.Querygraph Pulse
Default:
False
View Header
View Mode (Viewmode) op('graph').par.Viewmode Menu
Default:
nodes
Options:
nodes, edges, observations, evidence, query, paths, stats
Selected Node (Selectednode) op('graph').par.Selectednode Str
Default:
"" (Empty String)
Get Neighbors (Getneighbors) op('graph').par.Getneighbors Pulse
Default:
False
Max Rows (Maxrows) op('graph').par.Maxrows Int
Default:
200
Range:
1 to 100000
Offset (Offset) op('graph').par.Offset Int
Default:
0
Range:
0 to 1
Refresh View (Refreshview) op('graph').par.Refreshview Pulse
Default:
False
Logicstatus (Logicstatus) op('graph').par.Logicstatus Str

Current projection logic status.

Default:
"" (Empty String)
Projection Logic Header
Projection Logic (Projectionlogic) op('graph').par.Projectionlogic StrMenu

Projects TouchDesigner documentation chunks into operator/family/class/parameter/method graph. Expected input: TD documentation chunks with metadata such as operator_name, operator_family, block_type, chunk_type, doc_id, title, and content. Capabilities: td_operators, td_families, td_classes, td_parameters, td_methods, inheritance

Default:
td_docs
Menu Options:
  • TD Documentation (td_docs)
  • LOPs Repo Projection (lops_repo)
  • TD Network Projection (td_network)
  • Simple Text Projection (simple_text)
  • Conversation Projection (conversation)
Projection Code DAT (Projectioncode) op('graph').par.Projectioncode DAT

Optional Text DAT containing projection code. Selected DAT Projection details: Projects TouchDesigner documentation chunks into operator/family/class/parameter/method graph.

Default:
"" (Empty String)
Projection Folder (Projectionfolder) op('graph').par.Projectionfolder Folder

Optional folder containing projection_*.py modules.

Default:
"" (Empty String)
Scan Modules (Scanmodules) op('graph').par.Scanmodules Pulse
Default:
False
Authoring Guide (Authoringguide) op('graph').par.Authoringguide DAT

Projection authoring guide shipped inside this operator.

Default:
"" (Empty String)
Auto Project (Autoproject) op('graph').par.Autoproject Toggle

Project new observations immediately after ingesting them.

Default:
True
Project Mode (Projectmode) op('graph').par.Projectmode Menu

Append only unprojected observations, or reproject all selected observations.

Default:
append
Options:
append, replace
Project Source (Projectsource) op('graph').par.Projectsource Pulse
Default:
False
Extract Parameters (Extractparameters) op('graph').par.Extractparameters Toggle
Default:
True
Extract Methods (Extractmethods) op('graph').par.Extractmethods Toggle
Default:
True
Extract Members (Extractmembers) op('graph').par.Extractmembers Toggle
Default:
True
Max Params Per Op (Maxparamsperop) op('graph').par.Maxparamsperop Int
Default:
64
Range:
0 to 256
Max Methods Per Op (Maxmethodsperop) op('graph').par.Maxmethodsperop Int
Default:
64
Range:
0 to 256
Storagestatus (Storagestatus) op('graph').par.Storagestatus Str

Current graph storage status.

Default:
"" (Empty String)
Graph Storage Header
Storage (Storage) op('graph').par.Storage StrMenu

Not found

Default:
none
Menu Options:
  • No modules found (none)
Storage Module Folder (Storagefolder) op('graph').par.Storagefolder Folder

Optional folder containing storage_*.py modules.

Default:
"" (Empty String)
Store Folder (Storefolder) op('graph').par.Storefolder Folder

Folder for saved graph files or SQLite databases.

Default:
"" (Empty String)
Graph Name (Graphname) op('graph').par.Graphname Str
Default:
graph
Save Graph (Savegraph) op('graph').par.Savegraph Pulse
Default:
False
Load Graph (Loadgraph) op('graph').par.Loadgraph Pulse
Default:
False
Clear Graph (Cleargraph) op('graph').par.Cleargraph Pulse
Default:
False
Manual Edge Header
Source (Linksource) op('graph').par.Linksource Str
Default:
"" (Empty String)
Relation (Linkrelation) op('graph').par.Linkrelation Str
Default:
related_to
Target (Linktarget) op('graph').par.Linktarget Str
Default:
"" (Empty String)
Evidence (Linkevidence) op('graph').par.Linkevidence Str
Default:
"" (Empty String)
Add Edge (Addlink) op('graph').par.Addlink Pulse
Default:
False
Lastoperation (Lastoperation) op('graph').par.Lastoperation Str
Default:
"" (Empty String)
Agent Tools Header
Enable GetTool (Enablegettool) op('graph').par.Enablegettool Toggle
Default:
True
Tool Name (Toolname) op('graph').par.Toolname Str
Default:
graph
Query Tool Description (Tooldescription) op('graph').par.Tooldescription Str

Description exposed to agents for the query tool.

Default:
Query the graph and return matching nodes plus relationship paths.
Neighbors Tool Description (Neighborstooldescription) op('graph').par.Neighborstooldescription Str

Description exposed to agents for the neighbors tool.

Default:
Return graph neighbors for a node id or label.
Evidence Tool Description (Evidencetooldescription) op('graph').par.Evidencetooldescription Str

Description exposed to agents for the get_evidence tool.

Default:
Fetch evidence or observation detail by id.
Add Observation Tool Description (Addobservationtooldescription) op('graph').par.Addobservationtooldescription Str

Description exposed to agents for the add_observation tool.

Default:
Add source material as an observation and optionally project it into graph relations.
Link Tool Description (Linktooldescription) op('graph').par.Linktooldescription Str

Description exposed to agents for the link tool.

Default:
Create a relationship edge between two labels.
Tool Preset (Toolpreset) op('graph').par.Toolpreset Menu
Default:
query_and_link
Options:
read_only, query_and_link, full_graph
Tool Result Limit (Toolresultlimit) op('graph').par.Toolresultlimit Int
Default:
10
Range:
1 to 100
Auto Refresh View (Autorefreshview) op('graph').par.Autorefreshview Toggle
Default:
True
Graph DATs Header
Nodes (Nodesview) op('graph').par.Nodesview DAT

Table DAT containing all graph nodes (id, key, label, kind, metadata, timestamps).

Default:
"" (Empty String)
Edges (Edgesview) op('graph').par.Edgesview DAT

Table DAT containing all graph edges (source, relation, target, weight, evidence, temporal validity).

Default:
"" (Empty String)
Query Results (Queryresultsview) op('graph').par.Queryresultsview DAT

Table DAT containing the last query results (query, node_id, label, kind, score, content).

Default:
"" (Empty String)
Paths (Pathsview) op('graph').par.Pathsview DAT

Table DAT containing multi-hop neighborhood traversal paths.

Default:
"" (Empty String)
Observations (Observationsview) op('graph').par.Observationsview DAT

Table DAT containing ingested observations before/after projection.

Default:
"" (Empty String)
Evidence (Evidenceview) op('graph').par.Evidenceview DAT

Table DAT containing evidence records supporting edges and nodes.

Default:
"" (Empty String)
Stats (Statsview) op('graph').par.Statsview DAT

Table DAT with graph statistics (node count, edge count, etc.).

Default:
"" (Empty String)
Context (Contextview) op('graph').par.Contextview DAT

Text DAT with a human-readable summary of the last query results.

Default:
"" (Empty String)
v1.0.02026-05-02
  • added agent_memory module for any operator (memory_save, memory_search tools via Graph)
  • added Outputs parameter page with DAT references (nodes, edges, query results, paths, observations, evidence, stats, context) - added per-tool Tooldescription pars for all 5 graph tools - replaced file-path authoring guide with embedded internal DAT - removed Openauthoringguide pulse (guide is now a DAT reference) - added _prepare_for_release cleanup method - updated category to Controllers
  • added storage module system (table, sqlite, sqlite sidecar) - added projection module system with registry and dynamic parameters - added projections: conversation, td_docs, td_network - added projection authoring guide with LLM prompt template - added sqlite sidecar subprocess for non-blocking graph operations - added agent tools (query, neighbors, evidence, add_observation, link) - replaced provider_table_graph with storage_table module - updated GraphExt with full storage/projection/sidecar/tool architecture - updated manifest to prod, added storage and projection arrays - updated README with projection authoring section - family-agnostic TDFam detection in td_network projection
  • GraphExt extension with provider/projection runtime - table_graph provider (local dependency-free graph store) - simple_text projection (heuristic entity/relation extraction) - lops_repo projection (structured repo metadata projection) - provider registry with module discovery - manifest with entry_extension, providers, projections
  • Initial graph structure
  • Initial commit