Jarvis Docs
Architecture

Workflow Spec Comparison

How the Nous workflow package format compares with n8n, LangGraph, ComfyUI, GitHub Actions, and Temporal.

Workflow Spec Comparison

This comparison is informational, not normative. Its job is to explain the design space around workflow formats and clarify why Nous uses a composite package with separate topology, node content, contracts, and templates.

Comparison Matrix

SystemTopology ModelNode SurfaceSerializationVisual Editor FitExtensibility
NousFlat nodes[] + connections[] inside workflow.yaml, paired with package files on diskTyped nous.<category>.<action> topology plus nodes/<id>/node.md contentYAML + Markdown package filesStrong fit: positions live in topology and node content stays inspectable on diskStrong: contracts, templates, and skill references compose without changing the core graph
n8nDirected node graph with rich per-node configLarge app and automation connector catalogJSON workflow documentVery strong fit: editor-first and graph-nativeStrong for integrations, weaker for repo-first human authoring
LangGraphState graph centered on Python/JS callable nodesCode-defined nodes and reducersCode, not a portable content packageModerate fit: graph visualizers exist, but code is the source of truthStrong for agent orchestration logic, weaker for non-code artifact packaging
ComfyUIGraph of visual blocks with typed ports and media pipelinesVisual nodes with explicit port wiringJSON graph documentVery strong fit for canvas editingStrong for multimodal pipelines, less suited to workflow documents and review artifacts
GitHub ActionsJob and step DAG with event triggersJobs, steps, reusable actionsYAMLModerate fit: graph is derived, not the primary editing surfaceStrong for CI/CD reuse, limited for rich per-node instruction packages
TemporalDurable workflow code with runtime-managed historyCode-first workflow and activity functionsCode + runtime stateWeak fit for repo-first visual authoringVery strong for long-running execution guarantees, weaker for human-readable package composition

What Nous Keeps

  • Like n8n and ComfyUI, Nous keeps an explicit graph representation that a visual editor can load without first executing code.
  • Like GitHub Actions, Nous favors YAML for the topology because it diffs well in git and is easy to review.
  • Like LangGraph and Temporal, Nous keeps room for richer runtime behavior behind the graph rather than forcing all semantics into the static document.

What Nous Adds

  • The topology is only one layer of the package. Node instructions live in nodes/<id>/node.md, which keeps the graph concise while preserving rich per-node guidance.
  • Named skill references let a node pull in reusable judgment without inlining that knowledge into every workflow file.
  • Contracts and templates are first-class package artifacts, so structural requirements are not hidden in prose or duplicated across nodes.

Why Nous Uses a Composite Package

Nous is optimizing for three things at once:

  1. A visual builder needs a stable graph format with node positions.
  2. Git-based development needs reviewable, human-readable files.
  3. Agent workflows need richer per-node context than a single JSON blob can comfortably hold.

The composite package format solves that by splitting concerns cleanly:

  • workflow.md carries package metadata and dependencies.
  • workflow.yaml carries the graph.
  • nodes/<id>/node.md carries instructions and bindings.
  • contracts/ carries rules.
  • templates/ carries structural output shapes.

Tradeoffs

  • Nous is more verbose on disk than a single JSON workflow document.
  • The split package structure asks the loader to assemble multiple artifacts before execution.
  • In exchange, reviews stay readable, reusable guidance is easier to isolate, and workflow packages can grow from simple examples to complex orchestration surfaces without changing the underlying format.

On this page