Add Example Agent
GetBindu/Bindu
Add a new self-contained example agent under examples/. An agent skill from GetBindu/Bindu.
Design state schemas, implement reducers, configure persistence, and debug state issues for LangGraph applications.
$ npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install soba-labs/langchain-agent-skills langgraph-state-management --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/soba-labs/langchain-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/langgraph-state-management .claude/skills/langgraph-state-management && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "langgraph-state-management" agent skill from https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-management into .claude/skills/langgraph-state-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langgraph-state-management", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-managementType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install soba-labs/langchain-agent-skills langgraph-state-management --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/soba-labs/langchain-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/langgraph-state-management .agents/skills/langgraph-state-management && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "langgraph-state-management" agent skill from https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-management into .agents/skills/langgraph-state-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langgraph-state-management", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install soba-labs/langchain-agent-skills langgraph-state-management --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/soba-labs/langchain-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/langgraph-state-management .cursor/skills/langgraph-state-management && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "langgraph-state-management" agent skill from https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-management into .cursor/skills/langgraph-state-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langgraph-state-management", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/soba-labs/langchain-agent-skills.git --path skills/langgraph-state-management--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install soba-labs/langchain-agent-skills langgraph-state-management --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/soba-labs/langchain-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/langgraph-state-management .gemini/skills/langgraph-state-management && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "langgraph-state-management" agent skill from https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-management into .gemini/skills/langgraph-state-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langgraph-state-management", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install soba-labs/langchain-agent-skills langgraph-state-managementInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/soba-labs/langchain-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/langgraph-state-management .github/skills/langgraph-state-management && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "langgraph-state-management" agent skill from https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-management into .github/skills/langgraph-state-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langgraph-state-management", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install soba-labs/langchain-agent-skills langgraph-state-management --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/soba-labs/langchain-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/langgraph-state-management .opencode/skills/langgraph-state-management && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "langgraph-state-management" agent skill from https://github.com/soba-labs/langchain-agent-skills/tree/main/skills/langgraph-state-management into .opencode/skills/langgraph-state-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langgraph-state-management", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
langgraph-state-managementDesign state schemas, implement reducers, configure persistence, and debug state issues for LangGraph applications.
Langgraph State Management is an agent skill from soba-labs/langchain-agent-skills. Design state schemas, implement reducers, configure persistence, and debug state issues for LangGraph applications. Use when users want to (1) design or define state schemas for LangGraph graphs, (2) implement reducer functions for state accumulation, (3) configure persistence with checkpointers (InMemorySaver/MemorySaver, SqliteSaver, PostgresSaver), (4) debug state update issues or unexpected state behavior, (5) migrate state schemas between versions, (6) validate state schema structure, (7) choose between…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts, reference files and assets (for example `assets/chat_state.py`, `assets/research_state.py` and `assets/tool_calling_state.py`).
It sits in AI & LLM Engineering, covering State management and Building AI agents. It works with LangGraph, Python and TypeScript. The repository describes itself as: A collection of agent-optimized LangChain, LangGraph and LangSmith skills for AI coding assistants. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a2d4a10. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 4 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Langgraph State Management loads about 3.4k tokens when it runs, and up to ~25k if it reads all its reference files. Until then it costs about 198 tokens; SKILL.md has 688 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from soba-labs/langchain-agent-skills at commit a2d4a10, republished under its MIT licence (© soba-labs). 688 words, ~3,359 tokens.
.claude/skills/langgraph-state-management/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.Follow this workflow when designing or modifying state for a LangGraph application:
from langgraph.graph import StateGraph, START, END, MessagesState
from langchain_core.messages import AIMessage
class State(MessagesState):
pass
def chat_node(state: State):
return {"messages": [AIMessage(content="Hello!")]}
graph = StateGraph(State).add_node("chat", chat_node)
graph.add_edge(START, "chat").add_edge("chat", END)
app = graph.compile()For convenience, subclass the built-in MessagesState (includes messages with add_messages reducer):
from langgraph.graph import MessagesState
class State(MessagesState):
documents: list[str]
query: strimport { StateGraph, StateSchema, MessagesValue, ReducedValue, START, END } from "@langchain/langgraph";
import { AIMessage } from "@langchain/core/messages";
import { z } from "zod/v4";
const State = new StateSchema({
messages: MessagesValue,
documents: z.array(z.string()).default(() => []),
count: new ReducedValue(
z.number().default(0),
{ reducer: (current, update) => current + update }
),
});
const graph = new StateGraph(State)
.addNode("chat", (state) => ({ messages: [new AIMessage("Hello!")] }))
.addEdge(START, "chat")
.addEdge("chat", END)
.compile();Choose the pattern matching the application type. See references/schema-patterns.md for complete examples with both Python and TypeScript.
| Pattern | Use Case | Key Fields |
|---|---|---|
| Chat | Conversational agents | Built-in messages from MessagesState |
| Research | Information gathering | query, search_results, summary |
| Workflow | Task orchestration | task, status (Literal), steps_completed |
| Tool-Calling | Agents with tools | messages, tool_calls_made, should_continue |
| RAG | Retrieval-augmented generation | query, retrieved_docs, response |
Template files are available in assets/ for each pattern:
assets/chat_state.py — Chat applicationassets/research_state.py — Research agentassets/workflow_state.py — Workflow orchestrationassets/tool_calling_state.py — Tool-calling agentFor RAG state patterns, use reference examples in references/schema-patterns.md.
Reducers control how state updates merge when nodes write to the same field.
(existing_value, new_value) and returns the merged resultfrom typing import Annotated
import operator
from langgraph.graph import MessagesState
class State(MessagesState):
# Overwrite (no reducer)
query: str
# Sum integers
count: Annotated[int, operator.add]
# Custom reducer
results: Annotated[list[str], lambda left, right: left + right]const State = new StateSchema({
query: z.string(), // Last-write-wins
messages: MessagesValue, // Built-in message reducer
count: new ReducedValue( // Custom reducer
z.number().default(0),
{ reducer: (current, update) => current + update }
),
});| Reducer | Import | Behavior |
|---|---|---|
add_messages | langgraph.graph.message | Append, update by ID, delete |
operator.add | operator | Numeric addition or list concatenation |
MessagesValue | @langchain/langgraph | JS equivalent of add_messages |
Replace accumulated state instead of merging:
from langgraph.types import Overwrite
def reset_messages(state: State):
return {"messages": Overwrite(["fresh start"])}from langchain_core.messages import RemoveMessage
from langgraph.graph.message import REMOVE_ALL_MESSAGES
# Delete specific message
{"messages": [RemoveMessage(id="msg_123")]}
# Delete all messages
{"messages": [RemoveMessage(id=REMOVE_ALL_MESSAGES)]}For advanced reducer patterns (deduplication, deep merge, conditional update, size-limited accumulators), see references/reducers.md.
Persistence enables multi-turn conversations, human-in-the-loop, time travel, and crash recovery.
| Backend | Package | Use Case |
|---|---|---|
| InMemorySaver | langgraph-checkpoint (included) | Development, testing |
| SqliteSaver | langgraph-checkpoint-sqlite | Local workflows, single-instance |
| PostgresSaver | langgraph-checkpoint-postgres | Production, multi-instance |
| CosmosDBSaver | langgraph-checkpoint-cosmosdb | Azure production |
Agent Server note: When using LangGraph Agent Server, checkpointers are configured automatically — no manual setup needed.
# Development
from langgraph.checkpoint.memory import InMemorySaver
graph = builder.compile(checkpointer=InMemorySaver())
# Production (PostgreSQL)
from langgraph.checkpoint.postgres import PostgresSaver
DB_URI = "postgresql://user:pass@host:5432/db"
with PostgresSaver.from_conn_string(DB_URI) as checkpointer:
# checkpointer.setup() # Run once for initial schema
graph = builder.compile(checkpointer=checkpointer)
result = graph.invoke(
{"messages": [{"role": "user", "content": "Hi"}]},
{"configurable": {"thread_id": "session-1"}}
)// Development
import { MemorySaver } from "@langchain/langgraph";
const graph = builder.compile({ checkpointer: new MemorySaver() });
// Production (PostgreSQL)
import { PostgresSaver } from "@langchain/langgraph-checkpoint-postgres";
const checkpointer = PostgresSaver.fromConnString(DB_URI);
// await checkpointer.setup(); // Run once
const graph = builder.compile({ checkpointer });Every invocation requires a thread_id to identify the conversation:
config = {"configurable": {"thread_id": "user-123-session-1"}}
result = graph.invoke({"messages": [...]}, config)Provide the checkpointer only on the parent graph — LangGraph propagates it to subgraphs automatically:
parent_graph = parent_builder.compile(checkpointer=checkpointer)
# Subgraphs inherit the checkpointerTo give a subgraph its own separate memory:
subgraph = sub_builder.compile(checkpointer=True)For backend-specific configuration, migration between backends, and TTL settings, see references/persistence-backends.md.
from typing import TypedDict, Annotated, Literal
class AgentState(TypedDict):
messages: Annotated[list[BaseMessage], add_messages]
next: Literal["agent1", "agent2", "FINISH"]
context: dictNote:
create_agentstate schemas supportTypedDictfor custom agent state. Prefer TypedDict for agent state extensions.
import { StateSchema, MessagesValue, ReducedValue, UntrackedValue } from "@langchain/langgraph";
import { z } from "zod/v4";
const AgentState = new StateSchema({
messages: MessagesValue,
currentStep: z.string(),
retryCount: z.number().default(0),
// Custom reducer
allSteps: new ReducedValue(
z.array(z.string()).default(() => []),
{ inputSchema: z.string(), reducer: (current, newStep) => [...current, newStep] }
),
// Transient state (not checkpointed)
tempCache: new UntrackedValue(z.record(z.string(), z.unknown())),
});
// Extract types for use outside the graph builder
type State = typeof AgentState.State;
type Update = typeof AgentState.Update;For Pydantic validation, advanced type patterns, and migration from untyped state, see references/state-typing.md.
Run the validation script to check schema structure:
uv run scripts/validate_state_schema.py my_agent/state.py:MyState --verboseChecks for: schema parsing issues, empty schemas, reducer annotation problems, message fields without reducers, routing fields without Literal types, and unsupported/unclear schema class patterns.
Test reducer functions for correctness and edge cases:
uv run scripts/test_reducers.py my_agent/reducers.py:extend_list --verboseTests: basic merge, empty inputs, None handling, type consistency, nested structures, large inputs.
Debug state evolution by inspecting saved checkpoints:
# List recent checkpoints
uv run scripts/inspect_checkpoints.py ./checkpoints.db
# Inspect specific checkpoint
uv run scripts/inspect_checkpoints.py ./checkpoints.db --checkpoint-id abc123 --thread-id thread-1
# View full history for a thread
uv run scripts/inspect_checkpoints.py ./checkpoints.db --thread-id thread-1 --historyinspect_checkpoints.py accepts either a direct SQLite DB path or a directory containing checkpoints.db.
When state shape changes require updating persisted checkpoint values:
# Dry run first
uv run scripts/migrate_state.py ./checkpoints.db migrations/add_field.py --dry-run
# Apply migration
uv run scripts/migrate_state.py ./checkpoints.db migrations/add_field.pyMigration script format:
def migrate(old_state: dict) -> dict:
new_state = old_state.copy()
new_state["new_field"] = "default_value" # Add field
new_state.pop("deprecated_field", None) # Remove field
return new_state| Symptom | Likely Cause | Fix |
|---|---|---|
| State not updating | Missing reducer | Add Annotated[type, reducer] |
| Messages overwritten | No add_messages reducer | Use MessagesState (or Annotated[list[BaseMessage], add_messages]) |
| Duplicate entries | Reducer appends without dedup | Use dedup reducer from references/reducers.md |
| State grows unbounded | No cleanup | Use RemoveMessage or trim strategy |
| Agent state schema rejected | Non-TypedDict state_schema in create_agent | Use a TypedDict agent state schema |
| Parallel update conflict | Multiple Overwrite on same key | Only one node per super-step can use Overwrite |
For detailed debugging techniques, LangSmith tracing, and checkpoint inspection patterns, see references/state-debugging.md.
| Script | Purpose |
|---|---|
scripts/validate_state_schema.py | Validate schema structure and typing |
scripts/test_reducers.py | Test reducer functions |
scripts/inspect_checkpoints.py | Inspect checkpoint data |
scripts/migrate_state.py | Migrate checkpoint state values |
| File | Content |
|---|---|
| references/schema-patterns.md | Schema examples for chat, research, workflow, RAG, tool-calling |
| references/reducers.md | Reducer patterns, Overwrite, custom reducers, testing |
| references/persistence-backends.md | Backend setup, thread management, migration |
| references/state-typing.md | TypedDict, Pydantic, Zod, validation strategies |
| references/state-debugging.md | Debugging techniques, LangSmith tracing, common issues |
| File | Pattern |
|---|---|
assets/chat_state.py | Chat with MessagesState |
assets/research_state.py | Research with custom reducers |
assets/workflow_state.py | Workflow with Literal status |
assets/tool_calling_state.py | Tool-calling agent with MessagesState |
© soba-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 13 other files (scripts, references, assets) in skills/langgraph-state-management of soba-labs/langchain-agent-skills.
Open the folder on GitHubat commit a2d4a10
Langgraph State Management next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Langgraph State Management this skillsoba-labs/langchain-agent-skills | 107 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Add Example AgentGetBindu/Bindu | 10k | — | ~1.1k | Automated safety check: Notes | Custom licence | |
| Failproof AI SDK IntegrationFailproofAI/failproofai | 5.3k | — | ~6k | Automated safety check: Pass | Custom licence | |
| Langgraph Human In The Looplangchain-ai/langchain-skills | 1.3k | 1 repos | ~4.1k | Automated safety check: Pass | MIT | |
| Langgraph Persistencelangchain-ai/langchain-skills | 1.3k | 1 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Tool Designagentailor/fullstack-langgraph-nextjs-agent | 132 | — | ~3.2k | Automated safety check: Pass | MIT |
GetBindu/Bindu
Add a new self-contained example agent under examples/. An agent skill from GetBindu/Bindu.
FailproofAI/failproofai
Helps instrument a custom Python or TypeScript agent to record events for Failproof AI, verify what gets written, and run an evaluator worker that scores the runs.
langchain-ai/langchain-skills
INVOKE THIS SKILL when implementing human-in-the-loop patterns, pausing for approval, or handling errors in LangGraph.
langchain-ai/langchain-skills
INVOKE THIS SKILL when your LangGraph needs to persist state, remember conversations, travel through history, or configure subgraph checkpointer scoping.
agentailor/fullstack-langgraph-nextjs-agent
Design and verify tools that AI agents can actually use — for any framework or language (MCP servers, LangChain/LangGraph, function-calling, raw JSON schema; TypeScript, Python, or otherwise).
UiPath/skills
UiPath Coded Functions — deterministic Python or TypeScript/JavaScript units built with the uip function CLI (new -l py|ts|js, init, serve, run, pack, publish); the functions map in uipath.json…
soba-labs/langchain-agent-skills
Use the writetodos tool effectively for task planning and decomposition in Deep Agents.
soba-labs/langchain-agent-skills
Initialize, validate, and troubleshoot Deep Agents projects in Python or JavaScript using the deepagents package.
soba-labs/langchain-agent-skills
Implement multi-agent coordination patterns (supervisor-subagent, router, orchestrator-worker, handoffs) for LangGraph applications.
soba-labs/langchain-agent-skills
Implement LangGraph error handling with current v1 patterns.
soba-labs/langchain-agent-skills
Initialize and configure LangGraph projects with proper structure, langgraph.json configuration, environment variables, and dependency management.
soba-labs/langchain-agent-skills
A skill your agent uses when you need to test or evaluate LangGraph/LangChain agents: writing unit or integration tests, generating test scaffolds, mocking LLM/tool behavior, running trajectory…
Works with
Categories
Design state schemas, implement reducers, configure persistence, and debug state issues for LangGraph applications. Langgraph State Management is an agent skill from soba-labs/langchain-agent-skills. Design state schemas, implement reducers, configure persistence, and debug state issues for LangGraph applications.
Langgraph State Management fits situations like: define state schemas for LangGraph graphs; implement reducer functions for state accumulation; configure persistence with checkpointers (InMemorySaver/MemorySaver; debug state update issues.
Run `npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a claude-code`. Or copy the skill folder (skills/langgraph-state-management in soba-labs/langchain-agent-skills) into .claude/skills/langgraph-state-management in your project. Claude Code loads it when a task matches its description.
Run `npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a codex`. Or copy the skill folder (skills/langgraph-state-management in soba-labs/langchain-agent-skills) into .agents/skills/langgraph-state-management in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add soba-labs/langchain-agent-skills --skill langgraph-state-management -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/langgraph-state-management, .gemini/skills/langgraph-state-management, .github/skills/langgraph-state-management and .opencode/skills/langgraph-state-management in your project.
Going by SKILL.md and its folder, Langgraph State Management needs Python for the scripts in its folder and the command-line tools its instructions call (uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Langgraph State Management is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Langgraph State Management: Add Example Agent (GetBindu/Bindu, 10k stars), Failproof AI SDK Integration (FailproofAI/failproofai, 5.3k stars), Langgraph Human In The Loop (langchain-ai/langchain-skills, 1.3k stars) and Langgraph Persistence (langchain-ai/langchain-skills, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
soba-labs (a GitHub organization) maintains it in soba-labs/langchain-agent-skills, which has 107 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on August 17, 2026.
Source: soba-labs/langchain-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.