skills/xspoonai/spoon-awesome-skill/spoon-graph-development

spoon-graph-development

SKILL.md

Graph Development

Build workflow graphs using SpoonOS StateGraph.

Quick Start

from spoon_ai.graph import StateGraph, END
from typing import TypedDict

class MyState(TypedDict):
    counter: int
    result: str

async def process(state: MyState) -> dict:
    return {"counter": state["counter"] + 1}

graph = StateGraph(MyState)
graph.add_node("process", process)
graph.set_entry_point("process")
graph.add_edge("process", END)

app = graph.compile()
result = await app.invoke({"counter": 0, "result": ""})

Scripts

Script Purpose
basic_graph.py Simple linear workflow
conditional_graph.py Conditional routing
parallel_graph.py Parallel node execution
checkpoint_graph.py State persistence

References

Reference Content
patterns.md Common graph patterns
parallel.md Parallel execution modes

Node Types

  • Function nodes: async def node(state) -> dict
  • Agent nodes: SpoonReactMCP instances
  • Subgraph nodes: Nested StateGraph

Edge Types

  • Direct: graph.add_edge("a", "b")
  • Conditional: graph.add_conditional_edges("a", router, {...})

Best Practices

  1. Use TypedDict for state schemas
  2. Return only changed fields from nodes
  3. Use checkpointing for long workflows
  4. Implement timeout for external calls
Weekly Installs
2
GitHub Stars
12
First Seen
7 days ago
Installed on
amp2
cline2
openclaw2
opencode2
cursor2
kimi-cli2