Knot
A ⋈ Knot merges several inbound text wires into one result, using a strategy you choose.
It is the fan-in counterpart to ply’s fan-out.
Three opinions, one answer. Without the knot, those three texts would arrive at the output joined by blank lines.
Why it exists
Section titled “Why it exists”Wire three agents into one output and threadle joins their texts with blank lines — quietly — if that input still has capacity. Many transforms (Delay, Text → Prompt, …) only accept one inbound wire; dumping three agents onto an output is refused. A knot is the intentional multi-in merge you can see on the canvas.
Strategies
Section titled “Strategies”| Strategy | Behavior | Good for |
|---|---|---|
| concat | Join candidates with a separator | Collecting sections written in parallel |
| first | Take the first inbound text | Fastest-wins races, fallback chains |
| majority | The most common answer wins | Verification — “do 2 of 3 agree?” |
| synthesize | Build a labeled candidate prompt; with a model set on the node, run it to write the synthesis | Turning N drafts into one text |
Empty inbound texts are ignored before merging, so a starved branch doesn’t blank your result.
Synthesize in detail
Section titled “Synthesize in detail”With no model set, a synthesize knot emits the labeled candidates plus an instruction to merge them — useful as the prompt body for a downstream agent:
### candidate 1
…
### candidate 2
…
---
Synthesize the candidates above into one coherent result.Prefer agreement; note conflicts briefly.Set a provider and model on the node and the knot runs that model itself, emitting the finished synthesis. The run log records which model did the merging.
Wiring
Section titled “Wiring”Any text producer → knot → any text consumer. Knots chain: a majority knot over three agents can feed a synthesize knot alongside a fourth opinion.
A knot requires at least one inbound wire; an unwired knot is flagged by loose ends and blocks a detached run.
Patterns
Section titled “Patterns”Verify by vote. Same prompt → three agents → majority knot. Cheap, and it catches the case where one model confidently invents something.
Cross-provider synthesis. Claude, opencode and Cursor answer the same question; a synthesize knot with your preferred model writes the merged answer. Only threadle can wire that in one graph.
Fallback chain. Primary and backup agents into a first knot, so a failed primary doesn’t stop the run.
Examples
Section titled “Examples”▶ Knot concat and Knot first-wins — no agent required. ▶ Ply fan + majority knot — parallel asks merged by vote.
Related
Section titled “Related”- Ply — running the branches in parallel
- Lanes & value types — what happens without a knot
- Iterator — the one-to-many counterpart