Getting Started
Core Concepts
Nodes
from hypergraph import node
@node(output_name="result")
def add(x: int, y: int) -> int:
return x + y
# Properties
print(add.name) # "add"
print(add.inputs) # ("x", "y")
print(add.outputs) # ("result",)Automatic Edge Inference
Creating Your First Node
Simple Function
Side-Effect Only Nodes
Multiple Outputs
Working with Nodes
Renaming Inputs and Outputs
Renaming the Node
Chaining Renames
Building Graphs
Basic Graph Construction
Graph Properties
Binding Values
Type Validation with strict_types
Why This Matters
Enable strict_types
Type Mismatch Errors
Missing Annotations
Union Types
When to Use strict_types
Execution Modes
1. Synchronous Function (Default)
2. Asynchronous Function
3. Synchronous Generator
4. Asynchronous Generator
Function Node Properties
name
nameinputs
inputsoutputs
outputsfunc
funccache
cacheis_async
is_asyncis_generator
is_generatordefinition_hash
definition_hashError Handling: RenameError
Running Graphs
Basic Execution with SyncRunner
Async Execution with Concurrent Nodes
Batch Processing with runner.map()
Map Modes: zip vs product
Selecting Specific Outputs
Error Handling
Conditional Routing
Basic Routing
Terminating Early with END
Agentic Loops
Next Steps
Common Patterns
Creating Multiple Variants
Reconfiguring an Existing Node
Conditional Output Names
Last updated