- OPERATORS
- RETRIEVERS
Graph
v1.0.0newgraph 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.
What It Does
Section titled “What It Does”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.
Typical Workflow
Section titled “Typical Workflow”- On the Storage page, choose a Storage module and set Store Folder / Graph Name if you want save/load persistence.
- On the Projection page, choose Projection Logic, or set Projection Code DAT / Projection Folder and pulse Scan Modules.
- On the Graph page, set Source DAT and Source Format, then pulse Ingest Source.
- Leave Auto Project enabled for automatic projection, or pulse Project Source after ingesting.
- Set Query Text, Query Mode, Top K, and Max Hops, then pulse Query Graph.
- Use View Mode and Refresh View to inspect Nodes, Edges, Observations, Evidence, Query, Paths, or Stats.
Inputs And Outputs
Section titled “Inputs And Outputs”- 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.
Agent Tool Use
Section titled “Agent Tool Use”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.
Works Well With
Section titled “Works Well With”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.
Gotchas
Section titled “Gotchas”- 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.
Parameters
Section titled “Parameters”op('graph').par.Status Str Current Graph operation status.
- Default:
"" (Empty String)
op('graph').par.Sourceop DAT DAT containing rows or text to ingest as observations.
- Default:
"" (Empty String)
op('graph').par.Manualtext Str Single observation text for quick manual adds.
- Default:
"" (Empty String)
op('graph').par.Ingestsource Pulse - Default:
False
op('graph').par.Addmanual Pulse - Default:
False
op('graph').par.Querytext Str - Default:
"" (Empty String)
op('graph').par.Topk Int - Default:
10- Range:
- 1 to 500
op('graph').par.Maxhops Int - Default:
1- Range:
- 0 to 8
op('graph').par.Querygraph Pulse - Default:
False
op('graph').par.Selectednode Str - Default:
"" (Empty String)
op('graph').par.Getneighbors Pulse - Default:
False
op('graph').par.Maxrows Int - Default:
200- Range:
- 1 to 100000
op('graph').par.Offset Int - Default:
0- Range:
- 0 to 1
op('graph').par.Refreshview Pulse - Default:
False
Projection
Section titled “Projection”op('graph').par.Logicstatus Str Current projection logic status.
- Default:
"" (Empty String)
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)
op('graph').par.Projectionfolder Folder Optional folder containing projection_*.py modules.
- Default:
"" (Empty String)
op('graph').par.Scanmodules Pulse - Default:
False
op('graph').par.Authoringguide DAT Projection authoring guide shipped inside this operator.
- Default:
"" (Empty String)
op('graph').par.Autoproject Toggle Project new observations immediately after ingesting them.
- Default:
True
op('graph').par.Projectsource Pulse - Default:
False
op('graph').par.Extractparameters Toggle - Default:
True
op('graph').par.Extractmethods Toggle - Default:
True
op('graph').par.Extractmembers Toggle - Default:
True
op('graph').par.Maxparamsperop Int - Default:
64- Range:
- 0 to 256
op('graph').par.Maxmethodsperop Int - Default:
64- Range:
- 0 to 256
Storage
Section titled “Storage”op('graph').par.Storagestatus Str Current graph storage status.
- Default:
"" (Empty String)
op('graph').par.Storagefolder Folder Optional folder containing storage_*.py modules.
- Default:
"" (Empty String)
op('graph').par.Storefolder Folder Folder for saved graph files or SQLite databases.
- Default:
"" (Empty String)
op('graph').par.Graphname Str - Default:
graph
op('graph').par.Savegraph Pulse - Default:
False
op('graph').par.Loadgraph Pulse - Default:
False
op('graph').par.Cleargraph Pulse - Default:
False
op('graph').par.Linksource Str - Default:
"" (Empty String)
op('graph').par.Linkrelation Str - Default:
related_to
op('graph').par.Linktarget Str - Default:
"" (Empty String)
op('graph').par.Linkevidence Str - Default:
"" (Empty String)
op('graph').par.Addlink Pulse - Default:
False
op('graph').par.Lastoperation Str - Default:
"" (Empty String)
op('graph').par.Enablegettool Toggle - Default:
True
op('graph').par.Toolname Str - Default:
graph
op('graph').par.Tooldescription Str Description exposed to agents for the query tool.
- Default:
Query the graph and return matching nodes plus relationship paths.
op('graph').par.Neighborstooldescription Str Description exposed to agents for the neighbors tool.
- Default:
Return graph neighbors for a node id or label.
op('graph').par.Evidencetooldescription Str Description exposed to agents for the get_evidence tool.
- Default:
Fetch evidence or observation detail by id.
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.
op('graph').par.Linktooldescription Str Description exposed to agents for the link tool.
- Default:
Create a relationship edge between two labels.
op('graph').par.Toolresultlimit Int - Default:
10- Range:
- 1 to 100
op('graph').par.Autorefreshview Toggle - Default:
True
Outputs
Section titled “Outputs”op('graph').par.Nodesview DAT Table DAT containing all graph nodes (id, key, label, kind, metadata, timestamps).
- Default:
"" (Empty String)
op('graph').par.Edgesview DAT Table DAT containing all graph edges (source, relation, target, weight, evidence, temporal validity).
- Default:
"" (Empty String)
op('graph').par.Queryresultsview DAT Table DAT containing the last query results (query, node_id, label, kind, score, content).
- Default:
"" (Empty String)
op('graph').par.Pathsview DAT Table DAT containing multi-hop neighborhood traversal paths.
- Default:
"" (Empty String)
op('graph').par.Observationsview DAT Table DAT containing ingested observations before/after projection.
- Default:
"" (Empty String)
op('graph').par.Evidenceview DAT Table DAT containing evidence records supporting edges and nodes.
- Default:
"" (Empty String)
op('graph').par.Statsview DAT Table DAT with graph statistics (node count, edge count, etc.).
- Default:
"" (Empty String)
op('graph').par.Contextview DAT Text DAT with a human-readable summary of the last query results.
- Default:
"" (Empty String)
Changelog
Section titled “Changelog”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