Mem0 Platform SDK
mem0ai/mem0
Adds persistent memory to AI apps with the Mem0 Python and TypeScript SDKs: store, search, update and delete user memories, with framework integrations.
Agent skill
by jeremylongshore in jeremylongshore/tons-of-skills-marketplace
Compose LangGraph 1.0 subgraphs correctly — shared state key propagation, Send / Command(graph=...) dispatch, callback scoping, per-subgraph recursion budgets, and testing each subgraph in isolation.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-subgraphs --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/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/langchain-langgraph-subgraphs .claude/skills/langchain-langgraph-subgraphs && 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 "langchain-langgraph-subgraphs" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphs into .claude/skills/langchain-langgraph-subgraphs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-subgraphs", 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/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphsType 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 jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-subgraphs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/langchain-langgraph-subgraphs .agents/skills/langchain-langgraph-subgraphs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "langchain-langgraph-subgraphs" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphs into .agents/skills/langchain-langgraph-subgraphs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-subgraphs", 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 jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-subgraphs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/langchain-langgraph-subgraphs .cursor/skills/langchain-langgraph-subgraphs && 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 "langchain-langgraph-subgraphs" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphs into .cursor/skills/langchain-langgraph-subgraphs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-subgraphs", 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/jeremylongshore/tons-of-skills-marketplace.git --path skills/.curated/langchain-langgraph-subgraphs--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 jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-subgraphs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/langchain-langgraph-subgraphs .gemini/skills/langchain-langgraph-subgraphs && 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 "langchain-langgraph-subgraphs" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphs into .gemini/skills/langchain-langgraph-subgraphs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-subgraphs", 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 jeremylongshore/tons-of-skills-marketplace langchain-langgraph-subgraphsInstalls 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 jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/langchain-langgraph-subgraphs .github/skills/langchain-langgraph-subgraphs && 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 "langchain-langgraph-subgraphs" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphs into .github/skills/langchain-langgraph-subgraphs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-subgraphs", 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 jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-langgraph-subgraphs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/langchain-langgraph-subgraphs .opencode/skills/langchain-langgraph-subgraphs && 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 "langchain-langgraph-subgraphs" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/langchain-langgraph-subgraphs into .opencode/skills/langchain-langgraph-subgraphs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "langchain-langgraph-subgraphs", 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.
langchain-langgraph-subgraphsCompose LangGraph 1.0 subgraphs correctly — shared state key propagation, Send / Command(graph=...) dispatch, callback scoping, per-subgraph recursion budgets, and testing each subgraph in isolation.
Langchain Langgraph Subgraphs is an agent skill from jeremylongshore/tons-of-skills-marketplace. Compose LangGraph 1.0 subgraphs correctly — shared state key propagation, Send / Command(graph=...) dispatch, callback scoping, per-subgraph recursion budgets, and testing each subgraph in isolation. Use when building a planner + executor, a nested agent team, or a reusable subgraph library. Trigger with "langgraph subgraph", "langgraph composition", "langgraph send", "nested agents", "langgraph state propagation", "Command(graph=...)", "langgraph subgraph callbacks".
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/callback-scoping.md`, `references/dispatch-patterns.md` and `references/one-pager.md`). Compatibility notes: Designed for Claude Code
It sits in AI & LLM Engineering, covering Building AI agents. It works with LangGraph and LangChain. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBash(python:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
langchain-ai.github.ioblog.langchain.comFrom 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.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
Langchain Langgraph Subgraphs loads about 4.1k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 126 tokens; SKILL.md has 1,459 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); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 1,459 words, ~4,145 tokens.
.claude/skills/langchain-langgraph-subgraphs/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.A parent StateGraph invokes a compiled child subgraph as a node. The child
node writes state["answer"] = "42" and returns. The parent's next node reads
state["answer"] and gets None. No error, no warning, no deprecation notice —
just a silent None that surfaces as a wrong answer three nodes later when the
router picks the "couldn't find it" branch.
The cause is pain-catalog entry P21: LangGraph subgraphs run on an
independent state schema. Only keys declared in both the parent's
TypedDict and the child's TypedDict propagate across the subgraph boundary.
answer existed in the child schema but not the parent schema, so it was
discarded on return. The fix is to declare answer in both schemas (with
matching reducers, if the field is a list) or to use explicit
Command(graph=ParentGraph, update={"answer": "42"}) to bubble it up.
The second silent failure waits one step further. Attach a tracing callback to
the parent runnable via parent.with_config(callbacks=[tracer]) and invoke.
The tracer fires on parent nodes and never on child tool calls. This is
pain-catalog entry P28: LangGraph creates a fresh runtime per subgraph, so
callbacks bound at definition time do not inherit. The fix is to pass
callbacks at invocation time via config["callbacks"], which does propagate.
This skill walks through the shared-state contract, three dispatch patterns
(compiled subgraph as a node, Send fan-out, Command(graph=Parent) bubble-up),
callback scoping, per-subgraph recursion_limit budgets, and a testing pattern
that exercises every subgraph in isolation before composition. Pin:
langgraph 1.0.x, langchain-core 1.0.x. Pain-catalog anchors: P21, P28,
with supporting references to P18 (reducers), P19 (stream modes on nested
graphs), and P55 (recursion budget).
A planner-executor is typically 1 parent + 2-4 subgraphs; a hierarchical
agent team with a supervisor and N specialists is 1 parent + N subgraphs.
Each subgraph has its own independent recursion_limit (default 25) — a parent
at step 20 can still invoke a child that runs 25 of its own steps.
langgraph >= 1.0, < 2.0langchain-core >= 1.0, < 2.0langchain-langgraph-basics (L25) — StateGraph, TypedDict
state, Annotated[list, add_messages] reducer, MemorySaver checkpointingpytest, langchain_core.language_models.fake_chat_models.FakeListChatModelThe single most important decision when composing subgraphs is: which keys
cross the boundary? Every key that must survive the call must appear in
both TypedDict schemas with compatible types and reducers.
from typing import Annotated, TypedDict
from langchain_core.messages import AnyMessage
from langgraph.graph.message import add_messages
# Keys both schemas declare -> these propagate
# Keys only in parent -> invisible to child
# Keys only in child -> discarded on return (P21)
class ParentState(TypedDict):
# Shared with every subgraph
messages: Annotated[list[AnyMessage], add_messages] # P18 reducer required
session_id: str
# Parent-only coordination fields
plan: list[str]
current_step: int
class ExecutorState(TypedDict):
# Shared with parent — must match reducer exactly (P18)
messages: Annotated[list[AnyMessage], add_messages]
session_id: str
# Executor-only scratch — parent never sees these
tool_result: dict | None
retries: intIf messages on the child used a different reducer (or no reducer), list
updates would silently replace instead of append on one side of the boundary
(P18). The messages + session_id pair is the propagation contract. Everything
else is private to its owner.
See State Contract for the full state-propagation matrix and the "subset rule" for schema inheritance.
Three ways a parent can invoke a subgraph, and each solves a different problem.
A. Compiled subgraph as a node — Simplest. Subgraph runs, returns a state update, parent continues.
from langgraph.graph import StateGraph, END
executor_graph = (
StateGraph(ExecutorState)
.add_node("run_tool", run_tool_node)
.add_node("summarize", summarize_node)
.add_edge("run_tool", "summarize")
.add_edge("summarize", END)
.set_entry_point("run_tool")
.compile()
)
parent_graph = (
StateGraph(ParentState)
.add_node("plan", planner_node)
.add_node("execute", executor_graph) # compiled subgraph as a node
.add_node("finalize", finalize_node)
.add_edge("plan", "execute")
.add_edge("execute", "finalize")
.set_entry_point("plan")
.compile()
)Only messages and session_id cross the boundary in either direction (from
Step 1). tool_result stays inside the child; plan stays inside the parent.
B. Send(graph, state) for fan-out — One parent step spawns N parallel
subgraph invocations, each with a different slice of state.
from langgraph.types import Send
def dispatch_specialists(state: ParentState) -> list[Send]:
return [
Send("specialist_graph", {"messages": state["messages"],
"session_id": state["session_id"],
"topic": topic})
for topic in state["plan"]
]Use Send when the number of subgraph calls depends on runtime state.
Reducers on shared keys merge the parallel results.
C. Command(graph=ParentGraph, update=...) to bubble up — A subgraph node
jumps control back to the parent with an explicit state update, skipping the
rest of the subgraph.
from langgraph.types import Command
def specialist_early_exit(state: ExecutorState) -> Command:
if state.get("tool_result") and state["tool_result"].get("done"):
return Command(
graph=Command.PARENT,
update={"messages": [AIMessage("done")]},
goto="finalize",
)
return {"retries": state.get("retries", 0) + 1}Command(graph=Command.PARENT) is the explicit opposite of P21 — it forces a
field up to the parent scope regardless of schema overlap.
See Dispatch Patterns for the full decision
tree (inline function vs subgraph-as-node vs Send vs Command vs separate
service) and a sizing guide.
# WRONG — callbacks bind at definition time and do NOT propagate to subgraphs (P28)
traced_parent = parent_graph.with_config(callbacks=[tracer])
traced_parent.invoke({"messages": [HumanMessage("...")], "session_id": "s1"})
# tracer fires on parent nodes only. Child tool calls are invisible.
# RIGHT — callbacks pass via config at invocation time, propagating into every subgraph
parent_graph.invoke(
{"messages": [HumanMessage("...")], "session_id": "s1"},
config={
"configurable": {"thread_id": "s1"},
"callbacks": [tracer],
},
)
# tracer fires on parent nodes AND every child tool, LLM, and chain event.Every production invocation path — API handler, batch worker, test harness —
should pass callbacks via config["callbacks"]. Lint for
with_config(callbacks= on compiled graphs in CI and flag it.
See Callback Scoping for the debugging playbook when a callback "should be firing but isn't."
LangGraph's recursion_limit (default 25 supersteps) is per-graph, not
global. A parent graph at superstep 20 invoking a subgraph resets the counter
inside that subgraph to zero. Pros: one runaway subgraph cannot starve the
parent. Cons: adding subgraphs does not reduce your global budget — a poorly
bounded specialist can still rack up 25 of its own steps while the parent
thinks it spent only one.
# Parent gets 10 steps of its own planning.
# Each executor call gets its own 15-step budget, independent of the parent's 10.
parent_graph.invoke(
initial_state,
config={
"configurable": {"thread_id": "s1"},
"recursion_limit": 10,
},
)
executor_graph.invoke(
sub_state,
config={"recursion_limit": 15},
)For a parent that dispatches N specialists via Send, worst-case step count
is parent_limit + N * specialist_limit. Monitor the actual distribution with
a callback on on_chain_start / on_chain_end at each graph boundary —
GraphRecursionError with no obvious loop is P55 in the pain catalog, and
subgraph composition is the most common cause.
A subgraph that works alone and breaks in composition is almost always a
state-contract bug (Step 1) or a callback-scoping bug (Step 3). Catch both by
unit-testing each subgraph with a FakeListChatModel and an in-memory
checkpointer before wiring it into a parent.
from langchain_core.language_models.fake_chat_models import FakeListChatModel
from langgraph.checkpoint.memory import MemorySaver
def test_executor_subgraph_standalone():
fake = FakeListChatModel(responses=['{"done": true, "result": 42}'])
graph = build_executor(llm=fake).compile(checkpointer=MemorySaver())
out = graph.invoke(
{"messages": [HumanMessage("do the thing")],
"session_id": "test",
"tool_result": None,
"retries": 0},
config={"configurable": {"thread_id": "test"},
"recursion_limit": 5},
)
# Assert the shared-contract fields (Step 1) are present on return
assert "messages" in out
assert out["session_id"] == "test"
# Assert child-only field is scoped correctly
assert out["tool_result"] == {"done": True, "result": 42}See Testing Subgraphs for the full isolation pattern — fixtures, state-shape assertions per node, and how to assert callback propagation with a capturing handler.
A reusable subgraph should ship with its own semantic version and a pinned schema contract. Breaking either the shared-state contract (Step 1) or the dispatch signature (Step 2) is a major-version bump; adding a new private child-only field is a patch.
# executor_subgraph/__init__.py
__version__ = "1.2.0"
SHARED_KEYS = frozenset({"messages", "session_id"}) # parent must declare these
def build_executor(llm) -> StateGraph:
"""v1.2.0 executor — adds 'retries' field (child-only, backward-compatible)."""
...Parents pin executor_subgraph>=1.2.0,<2.0.0. A v2.0.0 that renames session_id
forces every parent to re-sync its TypedDict. This is how you catch P21 at
pip install time instead of at runtime.
ParentState + per-subgraph child TypedDicts with the shared-key contract
declared explicitly; every shared list field has a matching reducerSend vs Command(graph=PARENT))
with rationale recorded in code commentscallbacks via
config["callbacks"] so observability propagates into every subgraphrecursion_limit set explicitly on parent and each subgraph, with the
worst-case superstep count documented__version__ and a frozen
SHARED_KEYS set| Error / Symptom | Cause | Fix |
|---|---|---|
Parent reads state["foo"] and gets None after subgraph call | Key declared only in child schema; discarded on return (P21) | Add foo to parent TypedDict; use matching reducer; or return Command(graph=Command.PARENT, update={"foo": ...}) |
| Tracer attached to parent never fires on child tool calls | Callback bound at definition time via .with_config(callbacks=[...]) (P28) | Pass callbacks=[tracer] in config at each invoke() / ainvoke() call |
TypeError: unhashable type from the message reducer in the parent after a Send fan-out | Child schema used list instead of Annotated[list, add_messages] (P18) | Match reducers on both sides of the boundary |
GraphRecursionError: Recursion limit of 25 reached inside a subgraph only | Subgraph has its own 25-step budget; long sub-loop (P55) | Set config={"recursion_limit": N} explicitly or restructure subgraph |
Subgraph returns state but parent sees empty messages | List field not using add_messages reducer on the parent side (P18) | messages: Annotated[list[AnyMessage], add_messages] in both TypedDicts |
Command(goto="next_node") halts instead of continuing | Command did not set graph=Command.PARENT — tried to goto a parent node from inside the child scope | Use Command(graph=Command.PARENT, goto="next_node", update=...) |
| Subgraph runs but thread state never persists | Checkpointer attached only to parent; child invoke() without thread_id | Compile subgraphs with checkpointer too, or invoke with a thread_id matching the parent |
The prototypical 1 + 2-4 composition: a planner writes a step list, an executor
runs each step, a finalizer summarizes. messages and session_id cross every
boundary; plan is parent-only; tool_result and retries are executor-only.
Uses a compiled-subgraph-as-node dispatch (Step 2A). See
Dispatch Patterns for the full worked example.
A supervisor picks which specialists to invoke and calls Send("specialist", ...) in parallel. Each specialist runs its own subgraph with its own recursion
budget. Results merge via the messages reducer. See
Dispatch Patterns for the Send-based
fan-out and the callback propagation pattern needed to trace the team.
An executor_subgraph package exports build_executor(llm) and a frozen
SHARED_KEYS set, ships with a semantic version, and its CI fails if
SHARED_KEYS changes without a major-version bump. See
State Contract for the schema-pinning pattern.
A CaptureHandler subclasses BaseCallbackHandler, appends every on_* event
to a list, and asserts both parent and child events are present after a single
parent_graph.invoke(..., config={"callbacks": [handler]}). Catches P28 at PR
review. See Testing Subgraphs for the full
fixture and assertion pattern.
Send API referenceCommand API referencelangchain-langgraph-basics (L25) — prerequisite StateGraph, reducers, checkpointingdocs/pain-catalog.md (entries P18, P19, P21, P28, P55)© jeremylongshore, 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 5 other files (references) in skills/.curated/langchain-langgraph-subgraphs of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Langchain Langgraph Subgraphs 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 |
|---|---|---|---|---|---|---|
| Langchain Langgraph Subgraphs this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Mem0 Platform SDKmem0ai/mem0 | 67k | 1 repos | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| LangSmith Trace DebuggingComposioHQ/awesome-claude-skills | 77k | 8 repos | ~2.7k | Automated safety check: Pass | None | |
| 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 | |
| Edgeone Makers MigrationTencentEdgeOne/edgeone-makers-tools | 1.9k | 1 repos | ~4.1k | Automated safety check: Pass | MIT |
mem0ai/mem0
Adds persistent memory to AI apps with the Mem0 Python and TypeScript SDKs: store, search, update and delete user memories, with framework integrations.
ComposioHQ/awesome-claude-skills
Debugs LangChain and LangGraph agents by pulling recent execution traces with the langsmith-fetch CLI and reporting errors, tool calls, timings and token use.
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.
TencentEdgeOne/edgeone-makers-tools
Migrate existing AI agent projects (LangChain, LangGraph, OpenAI Agents SDK, Claude Agent SDK, CrewAI) to EdgeOne Makers platform conventions.
omnigent-ai/omnigent
Scans Python agent code for framework imports and recommends the matching Omnigent executor type, or says when the framework is not natively supported yet.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Categories
Compose LangGraph 1.0 subgraphs correctly — shared state key propagation, Send / Command(graph=...) dispatch, callback scoping, per-subgraph recursion budgets, and testing each subgraph in isolation. Langchain Langgraph Subgraphs is an agent skill from jeremylongshore/tons-of-skills-marketplace.) dispatch, callback scoping, per-subgraph recursion budgets, and testing each subgraph in isolation.
Langchain Langgraph Subgraphs fits situations like: building a planner + executor; A nested agent team; A reusable subgraph library; with langgraph subgraph.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a claude-code`. Or copy the skill folder (skills/.curated/langchain-langgraph-subgraphs in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/langchain-langgraph-subgraphs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a codex`. Or copy the skill folder (skills/.curated/langchain-langgraph-subgraphs in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/langchain-langgraph-subgraphs 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 jeremylongshore/tons-of-skills-marketplace --skill langchain-langgraph-subgraphs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/langchain-langgraph-subgraphs, .gemini/skills/langchain-langgraph-subgraphs, .github/skills/langchain-langgraph-subgraphs and .opencode/skills/langchain-langgraph-subgraphs in your project.
Going by SKILL.md and its folder, Langchain Langgraph Subgraphs needs the command-line tools its instructions call (pip). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(python:*). Compatibility (from SKILL.md): Designed for Claude Code.
SKILL.md names 2 domains. As links in the text: langchain-ai.github.io and blog.langchain.com. 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. Review the folder before installing.
Langchain Langgraph Subgraphs is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k 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 7.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Langchain Langgraph Subgraphs: Mem0 Platform SDK (mem0ai/mem0, 67k stars), LangSmith Trace Debugging (ComposioHQ/awesome-claude-skills, 77k stars), Add Example Agent (GetBindu/Bindu, 10k stars) and Failproof AI SDK Integration (FailproofAI/failproofai, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.