跳到主要内容
知仓学习社ZHICANG

langgraph-state-graph

LangGraph StateGraph builder with state schema design. Create stateful agent workflows with cycles, conditionals, and persistence.

不碰外部(只输出文字)无严重或高危命中a5c-ai/babysitter

它会碰到什么

扫了多少2 个文本文件,14 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

langgraph-state-graph

Build stateful agent workflows using LangGraph's StateGraph pattern. Design state schemas, create nodes, define edges with conditional routing, and enable persistence.

Overview

LangGraph is a library for building stateful, multi-actor applications with LLMs. The StateGraph is the core abstraction that enables:

  • Cyclical computation graphs (unlike DAGs)
  • State persistence and checkpointing
  • Human-in-the-loop interaction patterns
  • Conditional branching and routing
  • Multi-agent coordination

Capabilities

State Schema Design

  • Define typed state schemas with TypedDict or Pydantic
  • Configure state channels for message passing
  • Set up reducer functions for state updates
  • Design accumulator patterns for conversation history

Graph Construction

  • Create nodes as functions or runnables
  • Define edges (normal, conditional, entry points)
  • Configure start and end nodes
  • Implement routing logic for conditional edges

Persistence & Checkpointing

  • Configure checkpoint backends (SQLite, PostgreSQL, Redis)
  • Enable state snapshots at each step
  • Support for resuming interrupted workflows
  • Thread-based conversation persistence

Human-in-the-Loop

  • Insert interrupt points in workflows
  • Collect human feedback before continuing
  • Support approval gates and input collection
  • Resume from interrupt with updated state

Usage

Basic StateGraph Pattern

from typing import TypedDict, Annotated
from langgraph.graph import StateGraph, END
from langgraph.graph.message import add_messages

# Define state schema
class AgentState(TypedDict):
    messages: Annotated[list, add_messages]
    current_step: str
    iteration: int

# Create nodes
def agent_node(state: AgentState) -> AgentState:
    # Process state and return updates
    return {"current_step": "processed", "iteration": state["iteration"] + 1}

def tool_node(state: AgentState) -> AgentState:
    # Execute tools based on agent decisions
    return {"current_step": "tools_executed"}

# Build graph
graph = StateGraph(AgentState)
graph.add_node("agent", agent_node)
graph.add_node("tools", tool_node)

# Define edges
graph.set_entry_point("agent")
graph.add_edge("agent", "tools")
graph.add_conditional_edges(
    "tools",
    lambda state: "end" if state["iteration"] >= 3 else "continue",
    {"end": END, "continue": "agent"}
)

# Compile
app = graph.compile()

Conditional Routing

def router(state: AgentState) -> str:
    """Route based on state conditions."""
    last_message = state["messages"][-1]

    if hasattr(last_message, "tool_calls") and last_message.tool_calls:
        return "tools"
    elif state["iteration"] >= state.get("max_iterations", 10):
        return "end"
    else:
        return "agent"

graph.add_conditional_edges(
    "agent",
    router,
    {
        "tools": "tool_executor",
        "agent": "agent",
        "end": END
    }
)

Persistence with Checkpointing

from langgraph.checkpoint.sqlite import SqliteSaver

# Configure checkpointer
memory = SqliteSaver.from_conn_string(":memory:")

# Compile with persistence
app = graph.compile(checkpointer=memory)

# Run with thread_id for persistence
config = {"configurable": {"thread_id": "conversation-1"}}
result = app.invoke(initial_state, config=config)

# Resume from checkpoint
result = app.invoke(None, config=config)  # Continues from last state

Human-in-the-Loop

from langgraph.graph import StateGraph

graph = StateGraph(AgentState)
# ... add nodes ...

# Compile with interrupt points
app = graph.compile(
    checkpointer=memory,
    interrupt_before=["tool_executor"]  # Pause before tool execution
)

# First invocation - pauses at interrupt
result = app.invoke(initial_state, config)

# After human approval, resume
result = app.invoke(None, config)  # Continues past interrupt

Task Definition

const langgraphStateGraphTask = defineTask({
  name: 'langgraph-state-graph-design',
  description: 'Design and implement a LangGraph StateGraph workflow',

  inputs: {
    workflowName: { type: 'string', required: true },
    stateSchema: { type: 'object', required: true },
    nodes: { type: 'array', required: true },
    edges: { type: 'array', required: true },
    enablePersistence: { type: 'boolean', default: true },
    interruptPoints: { type: 'array', default: [] }
  },

  outputs: {
    graphCode: { type: 'string' },
    stateSchemaCode: { type: 'string' },
    compiledGraph: { type: 'boolean' },
    artifacts: { type: 'array' }
  },

  async run(inputs, taskCtx) {
    return {
      kind: 'skill',
      title: `Design StateGraph: ${inputs.workflowName}`,
      skill: {
        name: 'langgraph-state-graph',
        context: {
          workflowName: inputs.workflowName,
          stateSchema: inputs.stateSchema,
          nodes: inputs.nodes,
          edges: inputs.edges,
          enablePersistence: inputs.enablePersistence,
          interruptPoints: inputs.interruptPoints,
          instructions: [
            'Analyze workflow requirements and state needs',
            'Design state schema with proper typing',
            'Create node functions with state transformations',
            'Define edges and conditional routing logic',
            'Configure persistence if enabled',
            'Add interrupt points for human-in-the-loop',
            'Compile and validate the graph'
          ]
        }
      },
      io: {
        inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
        outputJsonPath: `tasks/${taskCtx.effectId}/result.json`
      }
    };
  }
});

Applicable Processes

  • langgraph-workflow-design
  • multi-agent-system
  • plan-and-execute-agent
  • conversational-memory-system

External Dependencies

  • langgraph Python package
  • langchain-core
  • Optional: langgraph-checkpoint-sqlite, langgraph-checkpoint-postgres

References

Related Skills

  • SK-LG-002 langgraph-checkpoint
  • SK-LG-003 langgraph-hitl
  • SK-LG-004 langgraph-routing
  • SK-LG-005 langgraph-subgraph

Related Agents

  • AG-AA-004 langgraph-workflow-designer
  • AG-MEM-004 state-machine-designer

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,796
本站分层T1
该仓技能数2115
原文件路径library/specializations/ai-agents-conversational/skills/langgraph-state-graph/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 2115 个技能