Winnow ActorFlow

n8n for actors. The nodes think, and the canvas compiles.

n8n's canvas was the spark, so we built one for our own actor system. Drag actors and stream stages onto a board, wire them into a pipeline, and it generates the Akka.NET C# and runs it. Then it became something n8n isn't: every node reports how it changed the system's understanding of the task, so the router can learn which nodes to trust. It turned out to be crazy good for running agents.

Get on the canvas See how nodes are graded →
Live flow · member-document intake (demo data) adhoc run
sourceDocument Stack Intakemixed PDF envelope
flowSplit Document Stackseparator + headers
flowExtract IDMember ID regex
flowCategorize5 routes
flowBuild Folder PlanID-scoped paths
flowSchema Extractionprocess_medical_record
sinkAPI SinkPOST, retry, idempotent

Categorize fans into claims, authorizations, medical records, member documents, and marketing, each with its own downstream pipeline. Every edge carries a typed message contract.

The canvas looks familiar. Three things underneath it are not.

01 · Substrate

Real actors, not HTTP glue

Every node is an Akka.NET actor or Akka.Streams stage, so concurrency, supervision, mailboxes, and streaming backpressure are the substrate, not a plugin. Nodes are fetched live from the running actor system over the VirtualQAEngine API, alongside MCP tools.

02 · Output

The design compiles to production

A flow is not trapped in a runtime. Generate the C# for the actor system and check it in, or execute the flow adhoc straight from the canvas to watch it run. Export and import the whole design as JSON. No lock-in, no black-box scheduler you can't leave.

03 · Control

Deterministic control in the pipe

IFTTT rule stages apply explicit if-this-then-that logic to each item before the next stage: match a field, then route, tag, drop, or set a property. Control flow is inspectable and versioned, not buried in a prompt. It is business rules as tolerances, right there on the board.

One palette, four kinds of node

Drag from the sidebar. Actors and tools come from the live system; sources, flows, and sinks are the streaming vocabulary.

Actorslive
GPT ActorCode Analysis ActorReliability ActorAnalysis ActorMethod Extractor ActorUser Hub Actor
Sourcesin
Document Stack IntakeMedical Document IntakeSpeech to TextAgentic InboxHTTP · File · User
Flowsthru
IFTTT RuleSplit Document StackExtract ID · CategorizePDF Parse · MinerUSchema ExtractionWindow Merge
Sinks & toolsout
API SinkText to SpeechAgentic Inbox ReplyConsole · FileMCP tools
Node Bench

Why it's crazy good for agents: every node is a benchmarkable unit of judgment.

n8n asks how fast a node runs. Node Bench asks a different question: how did this node change the system's understanding of reality? A signal tap on each side of a node captures a worldview snapshot before and after, and the difference is the thing we grade.

Worldview snapshot · before

risk0.72 uncertainty0.31 complexity0.84 reversibility0.12 blastRadius0.77 confidence0.63 constraints[zero_downtime, audit_required] failureModes[schema_drift, cache_inconsistency]

Cognitive diff · what the node did

riskDelta+0.41 uncertaintyDelta-0.18 confidenceDelta+0.22 constraintsAdded[human_review_required] failureModesFound[rollback_incompatibility]

This node earned its keep: it caught a rollback risk and raised a review flag a fast, cheap node would have missed. That is a signal worth training on.

Fitness score

fitness = correctness + stability + signal_quality + explainabilityhallucination_rateoperational_riskcost

Each node gets a production-readiness score from replayed runs against fixed scenario packs. The router reads fitness at routing time, so the flow prefers the node that has earned the position, not the one that happens to be cheapest.

What gets stored

position → move → outcome

Not raw conversation history. Deterministic, replayable artifacts. That is the training set: it feeds routing heuristics and becomes Mempack™ lineage, so a node's judgment compounds across versions instead of resetting every run.

A canvas that designs the flow, ships the code, and grades the thinking.

Orchestration was the start. Measurable, replayable, evolving judgment is why it stuck. It is how our agents run in production, and it is where the routing and Mempack™ work becomes real.

Request access How the line is built →