from netra import workflow, agent, task, SpanWrapper
# Node function with task decorator
@task()
def process_node(state: GraphState) -> GraphState:
span = SpanWrapper("node-processing", {
"node.name": "process",
"state.messages": len(state["messages"])
}).start()
result = {
"messages": state["messages"] + ["Processed"]
}
span.end()
return result
# Build graph with workflow decorator
@workflow()
def build_graph():
workflow.add_node("process", process_node)
workflow.set_entry_point("process")
workflow.set_finish_point("process")
return workflow.compile()