{"id":"c868eacf-ff55-40f1-98fa-7d47ad09873d","shortId":"BRPQ2j","kind":"skill","title":"langgraph","tagline":"Expert in LangGraph - the production-grade framework for building","description":"# LangGraph\n\nExpert in LangGraph - the production-grade framework for building stateful, multi-actor\nAI applications. Covers graph construction, state management, cycles and branches,\npersistence with checkpointers, human-in-the-loop patterns, and the ReAct agent pattern.\nUsed in production at LinkedIn, Uber, and 400+ companies. This is LangChain's recommended\napproach for building agents.\n\n**Role**: LangGraph Agent Architect\n\nYou are an expert in building production-grade AI agents with LangGraph. You\nunderstand that agents need explicit structure - graphs make the flow visible\nand debuggable. You design state carefully, use reducers appropriately, and\nalways consider persistence for production. You know when cycles are needed\nand how to prevent infinite loops.\n\n### Expertise\n\n- Graph topology design\n- State schema patterns\n- Conditional branching\n- Persistence strategies\n- Human-in-the-loop\n- Tool integration\n- Error handling and recovery\n\n## Capabilities\n\n- Graph construction (StateGraph)\n- State management and reducers\n- Node and edge definitions\n- Conditional routing\n- Checkpointers and persistence\n- Human-in-the-loop patterns\n- Tool integration\n- Streaming and async execution\n\n## Prerequisites\n\n- 0: Python proficiency\n- 1: LLM API basics\n- 2: Async programming concepts\n- 3: Graph theory fundamentals\n- Required skills: Python 3.9+, langgraph package, LLM API access (OpenAI, Anthropic, etc.), Understanding of graph concepts\n\n## Scope\n\n- 0: Python-only (TypeScript in early stages)\n- 1: Learning curve for graph concepts\n- 2: State management complexity\n- 3: Debugging can be challenging\n\n## Ecosystem\n\n### Primary\n\n- LangGraph\n- LangChain\n- LangSmith (observability)\n\n### Common_integrations\n\n- OpenAI / Anthropic / Google\n- Tavily (search)\n- SQLite / PostgreSQL (persistence)\n- Redis (state store)\n\n### Platforms\n\n- Python applications\n- FastAPI / Flask backends\n- Cloud deployments\n\n## Patterns\n\n### Basic Agent Graph\n\nSimple ReAct-style agent with tools\n\n**When to use**: Single agent with tool calling\n\nfrom typing import Annotated, TypedDict\nfrom langgraph.graph import StateGraph, START, END\nfrom langgraph.graph.message import add_messages\nfrom langgraph.prebuilt import ToolNode\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.tools import tool\n\n# 1. Define State\nclass AgentState(TypedDict):\n    messages: Annotated[list, add_messages]\n    # add_messages reducer appends, doesn't overwrite\n\n# 2. Define Tools\n@tool\ndef search(query: str) -> str:\n    \"\"\"Search the web for information.\"\"\"\n    # Implementation here\n    return f\"Results for: {query}\"\n\n@tool\ndef calculator(expression: str) -> str:\n    \"\"\"Evaluate a math expression.\"\"\"\n    return str(eval(expression))\n\ntools = [search, calculator]\n\n# 3. Create LLM with tools\nllm = ChatOpenAI(model=\"gpt-4o\").bind_tools(tools)\n\n# 4. Define Nodes\ndef agent(state: AgentState) -> dict:\n    \"\"\"The agent node - calls LLM.\"\"\"\n    response = llm.invoke(state[\"messages\"])\n    return {\"messages\": [response]}\n\n# Tool node handles tool execution\ntool_node = ToolNode(tools)\n\n# 5. Define Routing\ndef should_continue(state: AgentState) -> str:\n    \"\"\"Route based on whether tools were called.\"\"\"\n    last_message = state[\"messages\"][-1]\n    if last_message.tool_calls:\n        return \"tools\"\n    return END\n\n# 6. Build Graph\ngraph = StateGraph(AgentState)\n\n# Add nodes\ngraph.add_node(\"agent\", agent)\ngraph.add_node(\"tools\", tool_node)\n\n# Add edges\ngraph.add_edge(START, \"agent\")\ngraph.add_conditional_edges(\"agent\", should_continue, [\"tools\", END])\ngraph.add_edge(\"tools\", \"agent\")  # Loop back\n\n# Compile\napp = graph.compile()\n\n# 7. Run\nresult = app.invoke({\n    \"messages\": [(\"user\", \"What is 25 * 4?\")]\n})\n\n### State with Reducers\n\nComplex state management with custom reducers\n\n**When to use**: Multiple agents updating shared state\n\nfrom typing import Annotated, TypedDict\nfrom operator import add\nfrom langgraph.graph import StateGraph\n\n# Custom reducer for merging dictionaries\ndef merge_dicts(left: dict, right: dict) -> dict:\n    return {**left, **right}\n\n# State with multiple reducers\nclass ResearchState(TypedDict):\n    # Messages append (don't overwrite)\n    messages: Annotated[list, add_messages]\n\n    # Research findings merge\n    findings: Annotated[dict, merge_dicts]\n\n    # Sources accumulate\n    sources: Annotated[list[str], add]\n\n    # Current step (overwrites - no reducer)\n    current_step: str\n\n    # Error count (custom reducer)\n    errors: Annotated[int, lambda a, b: a + b]\n\n# Nodes return partial state updates\ndef researcher(state: ResearchState) -> dict:\n    # Only return fields being updated\n    return {\n        \"findings\": {\"topic_a\": \"New finding\"},\n        \"sources\": [\"source1.com\"],\n        \"current_step\": \"researching\"\n    }\n\ndef writer(state: ResearchState) -> dict:\n    # Access accumulated state\n    all_findings = state[\"findings\"]\n    all_sources = state[\"sources\"]\n\n    return {\n        \"messages\": [(\"assistant\", f\"Report based on {len(all_sources)} sources\")],\n        \"current_step\": \"writing\"\n    }\n\n# Build graph\ngraph = StateGraph(ResearchState)\ngraph.add_node(\"researcher\", researcher)\ngraph.add_node(\"writer\", writer)\n# ... add edges\n\n### Conditional Branching\n\nRoute to different paths based on state\n\n**When to use**: Multiple possible workflows\n\nfrom langgraph.graph import StateGraph, START, END\n\nclass RouterState(TypedDict):\n    query: str\n    query_type: str\n    result: str\n\ndef classifier(state: RouterState) -> dict:\n    \"\"\"Classify the query type.\"\"\"\n    query = state[\"query\"].lower()\n    if \"code\" in query or \"program\" in query:\n        return {\"query_type\": \"coding\"}\n    elif \"search\" in query or \"find\" in query:\n        return {\"query_type\": \"search\"}\n    else:\n        return {\"query_type\": \"chat\"}\n\ndef coding_agent(state: RouterState) -> dict:\n    return {\"result\": \"Here's your code...\"}\n\ndef search_agent(state: RouterState) -> dict:\n    return {\"result\": \"Search results...\"}\n\ndef chat_agent(state: RouterState) -> dict:\n    return {\"result\": \"Let me help...\"}\n\n# Routing function\ndef route_query(state: RouterState) -> str:\n    \"\"\"Route to appropriate agent.\"\"\"\n    query_type = state[\"query_type\"]\n    return query_type  # Returns node name\n\n# Build graph\ngraph = StateGraph(RouterState)\n\ngraph.add_node(\"classifier\", classifier)\ngraph.add_node(\"coding\", coding_agent)\ngraph.add_node(\"search\", search_agent)\ngraph.add_node(\"chat\", chat_agent)\n\ngraph.add_edge(START, \"classifier\")\n\n# Conditional edges from classifier\ngraph.add_conditional_edges(\n    \"classifier\",\n    route_query,\n    {\n        \"coding\": \"coding\",\n        \"search\": \"search\",\n        \"chat\": \"chat\"\n    }\n)\n\n# All agents lead to END\ngraph.add_edge(\"coding\", END)\ngraph.add_edge(\"search\", END)\ngraph.add_edge(\"chat\", END)\n\napp = graph.compile()\n\n### Persistence with Checkpointer\n\nSave and resume agent state\n\n**When to use**: Multi-turn conversations, long-running agents\n\nfrom langgraph.graph import StateGraph\nfrom langgraph.checkpoint.sqlite import SqliteSaver\nfrom langgraph.checkpoint.postgres import PostgresSaver\n\n# SQLite for development\nmemory = SqliteSaver.from_conn_string(\":memory:\")\n# Or persistent file\nmemory = SqliteSaver.from_conn_string(\"agent_state.db\")\n\n# PostgreSQL for production\n# memory = PostgresSaver.from_conn_string(DATABASE_URL)\n\n# Compile with checkpointer\napp = graph.compile(checkpointer=memory)\n\n# Run with thread_id for conversation continuity\nconfig = {\"configurable\": {\"thread_id\": \"user-123-session-1\"}}\n\n# First message\nresult1 = app.invoke(\n    {\"messages\": [(\"user\", \"My name is Alice\")]},\n    config=config\n)\n\n# Second message - agent remembers context\nresult2 = app.invoke(\n    {\"messages\": [(\"user\", \"What's my name?\")]},\n    config=config\n)\n# Agent knows name is Alice!\n\n# Get conversation history\nstate = app.get_state(config)\nprint(state.values[\"messages\"])\n\n# List all checkpoints\nfor checkpoint in app.get_state_history(config):\n    print(checkpoint.config, checkpoint.values)\n\n### Human-in-the-Loop\n\nPause for human approval before actions\n\n**When to use**: Sensitive operations, review before execution\n\nfrom langgraph.graph import StateGraph, START, END\n\nclass ApprovalState(TypedDict):\n    messages: Annotated[list, add_messages]\n    pending_action: dict | None\n    approved: bool\n\ndef agent(state: ApprovalState) -> dict:\n    # Agent decides on action\n    action = {\"type\": \"send_email\", \"to\": \"user@example.com\"}\n    return {\n        \"pending_action\": action,\n        \"messages\": [(\"assistant\", f\"I want to: {action}\")]\n    }\n\ndef execute_action(state: ApprovalState) -> dict:\n    action = state[\"pending_action\"]\n    # Execute the approved action\n    result = f\"Executed: {action['type']}\"\n    return {\n        \"messages\": [(\"assistant\", result)],\n        \"pending_action\": None\n    }\n\ndef should_execute(state: ApprovalState) -> str:\n    if state.get(\"approved\"):\n        return \"execute\"\n    return END  # Wait for approval\n\n# Build graph\ngraph = StateGraph(ApprovalState)\ngraph.add_node(\"agent\", agent)\ngraph.add_node(\"execute\", execute_action)\n\ngraph.add_edge(START, \"agent\")\ngraph.add_conditional_edges(\"agent\", should_execute, [\"execute\", END])\ngraph.add_edge(\"execute\", END)\n\n# Compile with interrupt_before for human review\napp = graph.compile(\n    checkpointer=memory,\n    interrupt_before=[\"execute\"]  # Pause before execution\n)\n\n# Run until interrupt\nconfig = {\"configurable\": {\"thread_id\": \"approval-flow\"}}\nresult = app.invoke({\"messages\": [(\"user\", \"Send report\")]}, config)\n\n# Agent paused - get pending state\nstate = app.get_state(config)\npending = state.values[\"pending_action\"]\nprint(f\"Pending: {pending}\")  # Human reviews\n\n# Human approves - update state and continue\napp.update_state(config, {\"approved\": True})\nresult = app.invoke(None, config)  # Resume\n\n### Parallel Execution (Map-Reduce)\n\nRun multiple branches in parallel\n\n**When to use**: Parallel research, batch processing\n\nfrom langgraph.graph import StateGraph, START, END, Send\nfrom langgraph.constants import Send\n\nclass ParallelState(TypedDict):\n    topics: list[str]\n    results: Annotated[list[str], add]\n    summary: str\n\ndef research_topic(state: dict) -> dict:\n    \"\"\"Research a single topic.\"\"\"\n    topic = state[\"topic\"]\n    result = f\"Research on {topic}...\"\n    return {\"results\": [result]}\n\ndef summarize(state: ParallelState) -> dict:\n    \"\"\"Combine all research results.\"\"\"\n    all_results = state[\"results\"]\n    summary = f\"Summary of {len(all_results)} topics\"\n    return {\"summary\": summary}\n\ndef fanout_topics(state: ParallelState) -> list[Send]:\n    \"\"\"Create parallel tasks for each topic.\"\"\"\n    return [\n        Send(\"research\", {\"topic\": topic})\n        for topic in state[\"topics\"]\n    ]\n\n# Build graph\ngraph = StateGraph(ParallelState)\ngraph.add_node(\"research\", research_topic)\ngraph.add_node(\"summarize\", summarize)\n\n# Fan out to parallel research\ngraph.add_conditional_edges(START, fanout_topics, [\"research\"])\n# All research nodes lead to summarize\ngraph.add_edge(\"research\", \"summarize\")\ngraph.add_edge(\"summarize\", END)\n\napp = graph.compile()\n\nresult = app.invoke({\n    \"topics\": [\"AI\", \"Climate\", \"Space\"],\n    \"results\": []\n})\n# Research runs in parallel, then summarizes\n\n## Collaboration\n\n### Delegation Triggers\n\n- crewai|role-based|crew -> crewai (Need role-based multi-agent approach)\n- observability|tracing|langsmith -> langfuse (Need LLM observability)\n- structured output|json schema -> structured-output (Need structured LLM responses)\n- evaluate|benchmark|test agent -> agent-evaluation (Need to evaluate agent performance)\n\n### Production Agent Stack\n\nSkills: langgraph, langfuse, structured-output\n\nWorkflow:\n\n```\n1. Design agent graph with LangGraph\n2. Add structured outputs for tool responses\n3. Integrate Langfuse for observability\n4. Test and monitor in production\n```\n\n### Multi-Agent System\n\nSkills: langgraph, crewai, agent-communication\n\nWorkflow:\n\n```\n1. Design agent roles (CrewAI patterns)\n2. Implement as LangGraph with subgraphs\n3. Add inter-agent communication\n4. Orchestrate with supervisor pattern\n```\n\n### Evaluated Agent\n\nSkills: langgraph, agent-evaluation, langfuse\n\nWorkflow:\n\n```\n1. Build agent with LangGraph\n2. Create evaluation suite\n3. Monitor with Langfuse\n4. Iterate based on metrics\n```\n\n## Related Skills\n\nWorks well with: `crewai`, `autonomous-agents`, `langfuse`, `structured-output`\n\n## When to Use\n- User mentions or implies: langgraph\n- User mentions or implies: langchain agent\n- User mentions or implies: stateful agent\n- User mentions or implies: agent graph\n- User mentions or implies: react agent\n- User mentions or implies: agent workflow\n- User mentions or implies: multi-step agent\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["langgraph","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-langgraph","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/langgraph","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 37911 github stars · SKILL.md body (12,965 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:51:16.717Z","embedding":null,"createdAt":"2026-04-18T20:36:27.954Z","updatedAt":"2026-05-18T18:51:16.717Z","lastSeenAt":"2026-05-18T18:51:16.717Z","tsv":"'-1':426,922 '-123':920 '0':177,209 '1':180,217,307,1405,1440,1472 '2':184,223,325,1411,1446,1477 '25':482 '3':188,227,363,1418,1452,1481 '3.9':195 '4':377,483,1423,1458,1485 '400':58 '4o':373 '5':406 '6':434 '7':474 'access':200,613 'accumul':556,614 'action':988,1012,1025,1026,1034,1035,1042,1045,1049,1052,1056,1060,1067,1098,1161 'actor':26 'add':292,316,318,440,451,509,545,561,651,1009,1222,1412,1453 'agent':49,68,71,83,89,261,267,274,381,386,444,445,456,460,468,497,728,740,750,770,795,800,805,827,851,863,937,950,1018,1022,1092,1093,1102,1106,1149,1363,1386,1388,1393,1396,1407,1431,1437,1442,1456,1464,1468,1474,1498,1516,1522,1527,1534,1539,1548 'agent-commun':1436 'agent-evalu':1387,1467 'agent_state.db':891 'agentst':311,383,413,439 'ai':27,82,1338 'alic':932,954 'alway':108 'annot':281,314,504,543,551,558,575,1007,1219 'anthrop':202,241 'api':182,199 'app':472,843,904,1122,1333 'app.get':959,971,1155 'app.invoke':477,926,941,1143,1180,1336 'app.update':1174 'append':321,538 'applic':28,253 'approach':65,1364 'appropri':106,769 'approv':986,1015,1055,1077,1084,1140,1169,1177 'approval-flow':1139 'approvalst':1004,1020,1047,1073,1089 'architect':72 'ask':1582 'assist':626,1037,1064 'async':174,185 'autonom':1497 'autonomous-ag':1496 'b':579,581 'back':470 'backend':256 'base':416,629,659,1354,1360,1487 'basic':183,260 'batch':1199 'benchmark':1384 'bind':374 'bool':1016 'boundari':1590 'branch':36,133,654,1191 'build':11,22,67,78,435,638,782,1085,1293,1473 'calcul':348,362 'call':277,388,421,429 'capabl':147 'care':103 'challeng':231 'chat':725,749,803,804,824,825,841 'chatopenai':302,369 'checkpoint':39,161,847,903,906,967,969,1124 'checkpoint.config':976 'checkpoint.values':977 'clarif':1584 'class':310,534,674,1003,1212 'classifi':685,689,789,790,809,813,817 'clear':1557 'climat':1339 'cloud':257 'code':698,708,727,737,793,794,820,821,833 'collabor':1348 'combin':1251 'common':238 'communic':1438,1457 'compani':59 'compil':471,901,1115 'complex':226,487 'concept':187,207,222 'condit':132,159,458,653,810,815,1104,1313 'config':915,933,934,948,949,961,974,1135,1148,1157,1176,1182 'configur':916,1136 'conn':881,889,897 'consid':109 'construct':31,149 'context':939 'continu':411,462,914,1173 'convers':859,913,956 'count':571 'cover':29 'creat':364,1277,1478 'crew':1355 'crewai':1351,1356,1435,1444,1495 'criteria':1593 'current':562,567,605,635 'curv':219 'custom':491,514,572 'cycl':34,116 'databas':899 'debug':228 'debugg':99 'decid':1023 'def':329,347,380,409,519,587,608,684,726,738,748,761,1017,1043,1069,1225,1246,1270 'defin':308,326,378,407 'definit':158 'deleg':1349 'deploy':258 'describ':1561 'design':101,128,1406,1441 'develop':878 'dict':384,521,523,525,526,552,554,591,612,688,731,743,753,1013,1021,1048,1229,1230,1250 'dictionari':518 'differ':657 'doesn':322 'earli':215 'ecosystem':232 'edg':157,452,454,459,466,652,807,811,816,832,836,840,1100,1105,1112,1314,1326,1330 'elif':709 'els':721 'email':1029 'end':288,433,464,673,830,834,838,842,1002,1081,1110,1114,1206,1332 'environ':1573 'environment-specif':1572 'error':143,570,574 'etc':203 'eval':358 'evalu':352,1383,1389,1392,1463,1469,1479 'execut':175,401,996,1044,1053,1059,1071,1079,1096,1097,1108,1109,1113,1128,1131,1185 'expert':2,13,76,1578 'expertis':125 'explicit':91 'express':349,355,359 'f':342,627,1038,1058,1163,1239,1260 'fan':1307 'fanout':1271,1316 'fastapi':254 'field':594 'file':886 'find':548,550,598,602,617,619,714 'first':923 'flask':255 'flow':96,1141 'framework':9,20 'function':760 'fundament':191 'get':955,1151 'googl':242 'gpt':372 'gpt-4o':371 'grade':8,19,81 'graph':30,93,126,148,189,206,221,262,436,437,639,640,783,784,1086,1087,1294,1295,1408,1528 'graph.add':442,446,453,457,465,643,647,787,791,796,801,806,814,831,835,839,1090,1094,1099,1103,1111,1298,1303,1312,1325,1329 'graph.compile':473,844,905,1123,1334 'handl':144,399 'help':758 'histori':957,973 'human':41,137,165,979,985,1120,1166,1168 'human-in-the-loop':40,136,164,978 'id':911,918,1138 'implement':339,1447 'impli':1509,1514,1520,1526,1532,1538,1544 'import':280,285,291,296,301,305,503,508,512,670,866,870,874,999,1203,1210 'infinit':123 'inform':338 'input':1587 'int':576 'integr':142,171,239,1419 'inter':1455 'inter-ag':1454 'interrupt':1117,1126,1134 'iter':1486 'json':1374 'know':114,951 'lambda':577 'langchain':62,235,299,1515 'langchain_core.tools':304 'langfus':1368,1400,1420,1470,1484,1499 'langgraph':1,4,12,15,70,85,196,234,1399,1410,1434,1449,1466,1476,1510 'langgraph.checkpoint.postgres':873 'langgraph.checkpoint.sqlite':869 'langgraph.constants':1209 'langgraph.graph':284,511,669,865,998,1202 'langgraph.graph.message':290 'langgraph.prebuilt':295 'langsmith':236,1367 'last':422 'last_message.tool':428 'lead':828,1322 'learn':218 'left':522,528 'len':631,1263 'let':756 'limit':1549 'linkedin':55 'list':315,544,559,965,1008,1216,1220,1275 'llm':181,198,365,368,389,1370,1381 'llm.invoke':391 'long':861 'long-run':860 'loop':44,124,140,168,469,982 'lower':696 'make':94 'manag':33,152,225,489 'map':1187 'map-reduc':1186 'match':1558 'math':354 'memori':879,883,887,895,907,1125 'mention':1507,1512,1518,1524,1530,1536,1542 'merg':517,520,549,553 'messag':293,313,317,319,393,395,423,425,478,537,542,546,625,924,927,936,942,964,1006,1010,1036,1063,1144 'metric':1489 'miss':1595 'model':370 'monitor':1426,1482 'multi':25,857,1362,1430,1546 'multi-actor':24 'multi-ag':1361,1429 'multi-step':1545 'multi-turn':856 'multipl':496,532,665,1190 'name':781,930,947,952 'need':90,118,1357,1369,1379,1390 'new':601 'node':155,379,387,398,403,441,443,447,450,582,644,648,780,788,792,797,802,1091,1095,1299,1304,1321 'none':1014,1068,1181 'observ':237,1365,1371,1422 'openai':201,240,300 'oper':507,993 'orchestr':1459 'output':1373,1378,1403,1414,1502,1567 'overwrit':324,541,564 'packag':197 'parallel':1184,1193,1197,1278,1310,1345 'parallelst':1213,1249,1274,1297 'partial':584 'path':658 'pattern':45,50,131,169,259,1445,1462 'paus':983,1129,1150 'pend':1011,1033,1051,1066,1152,1158,1160,1164,1165 'perform':1394 'permiss':1588 'persist':37,110,134,163,247,845,885 'platform':251 'possibl':666 'postgresql':246,892 'postgressav':875 'postgressaver.from':896 'prerequisit':176 'prevent':122 'primari':233 'print':962,975,1162 'process':1200 'product':7,18,53,80,112,894,1395,1428 'production-grad':6,17,79 'profici':179 'program':186,702 'python':178,194,211,252 'python-on':210 'queri':331,345,677,679,691,693,695,700,704,706,712,716,718,723,763,771,774,777,819 'react':48,265,1533 'react-styl':264 'recommend':64 'recoveri':146 'redi':248 'reduc':105,154,320,486,492,515,533,566,573,1188 'relat':1490 'rememb':938 'report':628,1147 'requir':192,1586 'research':547,588,607,645,646,1198,1226,1231,1240,1253,1285,1300,1301,1311,1318,1320,1327,1342 'researchst':535,590,611,642 'respons':390,396,1382,1417 'result':343,476,682,733,745,747,755,1057,1065,1142,1179,1218,1238,1244,1245,1254,1256,1258,1265,1335,1341 'result1':925 'result2':940 'resum':850,1183 'return':341,356,394,430,432,527,583,593,597,624,705,717,722,732,744,754,776,779,1032,1062,1078,1080,1243,1267,1283 'review':994,1121,1167,1579 'right':524,529 'role':69,1353,1359,1443 'role-bas':1352,1358 'rout':160,408,415,655,759,762,767,818 'routerst':675,687,730,742,752,765,786 'run':475,862,908,1132,1189,1343 'safeti':1589 'save':848 'schema':130,1375 'scope':208,1560 'search':244,330,334,361,710,720,739,746,798,799,822,823,837 'second':935 'send':1028,1146,1207,1211,1276,1284 'sensit':992 'session':921 'share':499 'simpl':263 'singl':273,1233 'skill':193,1398,1433,1465,1491,1552 'skill-langgraph' 'sourc':555,557,603,621,623,633,634 'source-sickn33' 'source1.com':604 'space':1340 'specif':1574 'sqlite':245,876 'sqlitesav':871 'sqlitesaver.from':880,888 'stack':1397 'stage':216 'start':287,455,672,808,1001,1101,1205,1315 'state':23,32,102,129,151,224,249,309,382,392,412,424,484,488,500,530,585,589,610,615,618,622,661,686,694,729,741,751,764,773,852,958,960,972,1019,1046,1050,1072,1153,1154,1156,1171,1175,1228,1236,1248,1257,1273,1291,1521 'state.get':1076 'state.values':963,1159 'stategraph':150,286,438,513,641,671,785,867,1000,1088,1204,1296 'step':563,568,606,636,1547 'stop':1580 'store':250 'str':332,333,350,351,357,414,560,569,678,681,683,766,1074,1217,1221,1224 'strategi':135 'stream':172 'string':882,890,898 'structur':92,1372,1377,1380,1402,1413,1501 'structured-output':1376,1401,1500 'style':266 'subgraph':1451 'substitut':1570 'success':1592 'suit':1480 'summar':1247,1305,1306,1324,1328,1331,1347 'summari':1223,1259,1261,1268,1269 'supervisor':1461 'system':1432 'task':1279,1556 'tavili':243 'test':1385,1424,1576 'theori':190 'thread':910,917,1137 'tool':141,170,269,276,306,327,328,346,360,367,375,376,397,400,402,405,419,431,448,449,463,467,1416 'toolnod':297,404 'topic':599,1215,1227,1234,1235,1237,1242,1266,1272,1282,1286,1287,1289,1292,1302,1317,1337 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'topolog':127 'trace':1366 'treat':1565 'trigger':1350 'true':1178 'turn':858 'type':279,502,680,692,707,719,724,772,775,778,1027,1061 'typeddict':282,312,505,536,676,1005,1214 'typescript':213 'uber':56 'understand':87,204 'updat':498,586,596,1170 'url':900 'use':51,104,272,495,664,855,991,1196,1505,1550 'user':479,919,928,943,1145,1506,1511,1517,1523,1529,1535,1541 'user@example.com':1031 'valid':1575 'visibl':97 'wait':1082 'want':1040 'web':336 'well':1493 'whether':418 'work':1492 'workflow':667,1404,1439,1471,1540 'write':637 'writer':609,649,650","prices":[{"id":"95896b79-37c1-44c6-81ef-2ad07eabd633","listingId":"c868eacf-ff55-40f1-98fa-7d47ad09873d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:36:27.954Z"}],"sources":[{"listingId":"c868eacf-ff55-40f1-98fa-7d47ad09873d","source":"github","sourceId":"sickn33/antigravity-awesome-skills/langgraph","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/langgraph","isPrimary":false,"firstSeenAt":"2026-04-18T21:39:41.223Z","lastSeenAt":"2026-05-18T18:51:16.717Z"},{"listingId":"c868eacf-ff55-40f1-98fa-7d47ad09873d","source":"skills_sh","sourceId":"sickn33/antigravity-awesome-skills/langgraph","sourceUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/langgraph","isPrimary":true,"firstSeenAt":"2026-04-18T20:36:27.954Z","lastSeenAt":"2026-05-07T22:40:43.812Z"}],"details":{"listingId":"c868eacf-ff55-40f1-98fa-7d47ad09873d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"langgraph","github":{"repo":"sickn33/antigravity-awesome-skills","stars":37911,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-05-18T08:24:49Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"d6487fc05458b69e4660b4439c3f4da4f9832a12","skill_md_path":"skills/langgraph/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/langgraph"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"langgraph","description":"Expert in LangGraph - the production-grade framework for building"},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/langgraph"},"updatedAt":"2026-05-18T18:51:16.717Z"}}