{"id":"ac245be6-55a3-4c97-ad02-e340fe85f50e","entityType":"agent","slug":"spillwavesolutions-mastering-langgraph-agent-skill","name":"mastering-langgraph","canonicalUrl":"https://www.xpersona.co/agent/spillwavesolutions-mastering-langgraph-agent-skill","canonicalPath":"/agent/spillwavesolutions-mastering-langgraph-agent-skill","generatedAt":"2026-10-09T09:03:42.133Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory, human-in-the-loop oversight, and production monitoring. Use when - (1) building agents that use tools and loop until task complete, (2) creating multi-step workflows with conditional branches, (3) adding persistence/memory across turns with checkpointers, (4) implementing human approval with interrupt(), (5) debugging via time-travel or LangSmith. Covers StateGraph, nodes, edges, add_conditional_edges, MessagesState, thread_id, Command objects, and ToolMessage handling. Examples include chatbots, calculator agents, and structured workflows. --- name: mastering-langgraph description: Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory, human-in-the-loop oversight, and production monitoring. Use when - (1) building agents that use tools and loop until task complete, (2) creating multi-step workflows with conditional branches, (3) adding persistence/","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 31 GitHub stars reported by the source. Last updated 4/15/2026.","installCommand":"git clone https://github.com/SpillwaveSolutions/mastering-langgraph-agent-skill.git","sourceUrl":"https://github.com/SpillwaveSolutions/mastering-langgraph-agent-skill","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/SpillwaveSolutions/mastering-langgraph-agent-skill","kind":"source"}],"safetyScore":91,"overallRank":34.8,"popularityScore":38,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory,"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"format","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":2,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"format","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:format|supported|profile"}},"adoption":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"medium","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"stars":31,"forks":2,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":"31 GitHub stars"},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-04-15T04:12:21.053Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-04-15T04:12:21.053Z","lastIndexedAt":null,"nextCrawlAt":"2026-04-16T04:12:21.053Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"git clone https://github.com/SpillwaveSolutions/mastering-langgraph-agent-skill.git","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T09:03:42.132Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/spillwavesolutions-mastering-langgraph-agent-skill/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"---\nname: mastering-langgraph\ndescription: Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory, human-in-the-loop oversight, and production monitoring. Use when - (1) building agents that use tools and loop until task complete, (2) creating multi-step workflows with conditional branches, (3) adding persistence/memory across turns with checkpointers, (4) implementing human approval with interrupt(), (5) debugging via time-travel or LangSmith. Covers StateGraph, nodes, edges, add_conditional_edges, MessagesState, thread_id, Command objects, and ToolMessage handling. Examples include chatbots, calculator agents, and structured workflows.\nlicense: MIT\nmetadata:\n  version: 1.0.0\n  framework: LangGraph\n  python: \">=3.9\"\n---\n\n# LangGraph Development Guide\n\nBuild stateful AI agents and workflows by defining graphs of nodes (steps) connected by edges (transitions).\n\n## Contents\n\n- [Quick Start](#quick-start)\n- [Common Build Scenarios](#common-build-scenarios)\n- [Core Principles](#core-principles)\n- [Development Workflow](#development-workflow)\n- [Common Pitfalls](#common-pitfalls)\n- [Environment Setup](#environment-setup)\n- [Quick Verification](#quick-verification)\n- [API Essentials](#api-essentials)\n- [Next Steps](#next-steps)\n\n## Quick Start\n\nMinimal chatbot with memory:\n\n```python\nfrom langgraph.graph import StateGraph, START, END\nfrom langgraph.checkpoint.memory import InMemorySaver\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.messages import HumanMessage, AnyMessage\nfrom typing_extensions import TypedDict, Annotated\nimport operator\n\n# 1. Define state\nclass State(TypedDict):\n    messages: Annotated[list[AnyMessage], operator.add]  # Append mode\n\n# 2. Define node\nllm = ChatOpenAI(model=\"gpt-4\")\n\ndef chat(state: State) -> dict:\n    response = llm.invoke(state[\"messages\"])\n    return {\"messages\": [response]}\n\n# 3. Build graph\ngraph = StateGraph(State)\ngraph.add_node(\"chat\", chat)\ngraph.add_edge(START, \"chat\")\ngraph.add_edge(\"chat\", END)\n\n# 4. Compile with memory\nchain = graph.compile(checkpointer=InMemorySaver())\n\n# 5. Invoke with thread_id for persistence\nresult = chain.invoke(\n    {\"messages\": [HumanMessage(content=\"Hello!\")]},\n    config={\"configurable\": {\"thread_id\": \"user-123\"}}\n)\nprint(result[\"messages\"][-1].content)\n```\n\nKey patterns:\n- `Annotated[list, operator.add]` — append to list instead of replace\n- `InMemorySaver()` — enables memory across invocations\n- `thread_id` — identifies conversation for persistence\n\n## Common Build Scenarios\n\n### Simple Chatbot / Q&A\nThe Quick Start above covers this. Add more nodes for preprocessing or postprocessing as needed.\n\n### Tool-Using Agent\nAgent that calls external tools (APIs, calculators, search) in a loop until task complete.\n→ See [references/tool-agent-pattern.md](references/tool-agent-pattern.md)\n\n### Structured Workflow\nMulti-step pipeline with conditional branches, parallel execution, or prompt chaining.\n→ See [references/workflow-patterns.md](references/workflow-patterns.md)\n\n### Agent with Long-Term Memory\nPersist conversation across sessions, enable time-travel debugging, survive crashes.\n→ See [references/persistence-memory.md](references/persistence-memory.md)\n\n### Human-in-the-Loop\nPause for human approval, correction, or additional input mid-workflow.\n→ See [references/hitl-patterns.md](references/hitl-patterns.md)\n\n### Debugging / Production Monitoring\nUnit test nodes, visualize graphs, trace with LangSmith.\n→ See [references/debugging-monitoring.md](references/debugging-monitoring.md)\n\n### Multi-Agent Systems\nBuild supervisor or swarm-based multi-agent workflows with handoff tools.\n→ See [references/multi-agent-patterns.md](references/multi-agent-patterns.md)\n\n### Production Deployment\nDeploy to LangGraph Platform (cloud/self-hosted) or custom infrastructure.\n→ See [references/production-deployment.md](references/production-deployment.md)\n\n### New to LangGraph?\nLearn core concepts: State, Nodes, Edges, Graph APIs.\n→ See [references/core-api.md](references/core-api.md)\n\n## Core Principles\n\n### 1. Keep State Raw\nStore facts, not formatted prompts. Each node can format data as needed.\n\n```python\n# ✓ Good: raw data\nclass State(TypedDict):\n    user_question: str\n    retrieved_docs: list[str]\n    intent: str\n\n# ✗ Bad: pre-formatted\nclass State(TypedDict):\n    full_prompt: str  # Mixes data with formatting\n```\n\n### 2. Single-Purpose Nodes\nEach node does one thing. Name it descriptively.\n\n```python\n# ✓ Good: clear responsibilities\ngraph.add_node(\"classify_intent\", classify_intent)\ngraph.add_node(\"search_knowledge\", search_knowledge)\ngraph.add_node(\"generate_response\", generate_response)\n```\n\n### 3. Explicit Routing\nUse conditional edges for decisions. Don't hide routing logic inside nodes.\n\n```python\ndef route_by_intent(state) -> str:\n    if state[\"intent\"] == \"billing\":\n        return \"billing_handler\"\n    return \"general_handler\"\n\ngraph.add_conditional_edges(\"classify\", route_by_intent, \n    [\"billing_handler\", \"general_handler\"])\n```\n\n### 4. Use Aggregators for Lists\nAny list field that accumulates values needs `operator.add`:\n\n```python\nclass State(TypedDict):\n    messages: Annotated[list, operator.add]      # ✓ Appends\n    current_step: str                             # Replaces (no annotation)\n```\n\n### 5. Handle Errors Deliberately\n\n| Error Type | Strategy |\n|------------|----------|\n| Transient (network) | Use `RetryPolicy` on node |\n| LLM-recoverable (parse fail) | Feed error to LLM via state, loop back |\n| User-fixable (missing info) | Use `interrupt()` to pause and ask |\n| Unexpected (bugs) | Let bubble up for debugging |\n\n## Development Workflow\n\n1. **Define Steps** — Break task into discrete operations (each becomes a node)\n2. **Categorize Steps** — LLM call? Data retrieval? Action? User input?\n3. **Design State** — TypedDict with all needed fields; keep it raw\n4. **Implement Nodes** — `def node(state) -> dict` for each step\n5. **Connect Graph** — `add_node()`, `add_edge()`, `add_conditional_edges()`\n6. **Compile & Test** — `graph.compile()`, test with sample inputs\n\n## Common Pitfalls\n\n### 1. Forgetting `operator.add` on Lists\n**Symptom:** Messages disappear, only last message retained.\n```python\n# ✗ Wrong: messages: list[AnyMessage]\n# ✓ Fix: messages: Annotated[list[AnyMessage], operator.add]\n```\n\n### 2. Missing `thread_id` for Memory\n**Symptom:** Agent forgets previous turns.\n```python\n# ✓ Fix: Always pass config with thread_id\nchain.invoke(input, config={\"configurable\": {\"thread_id\": \"unique-id\"}})\n```\n\n### 3. Not Compiling Before Invoke\n**Symptom:** AttributeError on graph object.\n```python\n# ✗ Wrong: graph.invoke(input)\n# ✓ Fix: chain = graph.compile(); chain.invoke(input)\n```\n\n### 4. Non-Deterministic Nodes Without @task\n**Symptom:** Different results on resume from checkpoint.\n```python\nfrom langgraph.func import task\n\n@task  # Wrap for durable execution\ndef fetch_data(state):\n    return {\"data\": requests.get(url).json()}\n```\n\n### 5. Circular Imports with Type Hints\n**Symptom:** ImportError when defining state classes.\n```python\n# ✓ Fix: Use string annotations\nfrom __future__ import annotations\n```\n\n## Environment Setup\n\n```bash\n# Core\npip install -U langgraph\n\n# LLM providers (pick one or more)\npip install langchain-openai\npip install langchain-anthropic\n\n# Production persistence\npip install langgraph-checkpoint-postgres\n\n# Observability\npip install langsmith\n```\n\nEnvironment variables:\n```bash\nexport OPENAI_API_KEY=\"sk-...\"\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"\nexport LANGSMITH_API_KEY=\"ls-...\"\nexport LANGSMITH_TRACING=true\n```\n\n## Quick Verification\n\n### Before Building\n- [ ] `python -c \"import langgraph; print(langgraph.__version__)\"` works\n- [ ] LLM API key set (`OPENAI_API_KEY` or `ANTHROPIC_API_KEY`)\n- [ ] Optional: `LANGSMITH_API_KEY` for tracing\n\n### After Building\n- [ ] Graph compiles without error: `chain = graph.compile()`\n- [ ] Visualization renders: `print(chain.get_graph().draw_mermaid())`\n- [ ] Invoke succeeds with sample input: `chain.invoke({...})`\n- [ ] Lists accumulate correctly (verify `operator.add` annotations)\n- [ ] Memory persists across invocations (test same `thread_id` twice)\n- [ ] Conditional routing works as expected (test each branch)\n\n## API Essentials\n\n```python\n# Imports\nfrom langgraph.graph import StateGraph, START, END\nfrom langgraph.checkpoint.memory import InMemorySaver\nfrom typing_extensions import TypedDict, Annotated\nimport operator\n\n# State with append-mode list\nclass State(TypedDict):\n    messages: Annotated[list, operator.add]\n\n# Node signature\ndef node(state: State) -> dict:\n    return {\"messages\": [new_message]}\n\n# Graph construction\ngraph = StateGraph(State)\ngraph.add_node(\"name\", node_fn)\ngraph.add_edge(START, \"name\")\ngraph.add_edge(\"name\", END)\n\n# Conditional routing\ngraph.add_conditional_edges(\"from\", router_fn, [\"option1\", \"option2\", END])\n\n# Compile and run\nchain = graph.compile(checkpointer=InMemorySaver())\nresult = chain.invoke(input, config={\"configurable\": {\"thread_id\": \"id\"}})\n\n# Visualization\nprint(chain.get_graph().draw_mermaid())\n```\n\nFor detailed API reference → See [references/core-api.md](references/core-api.md)\n\n## Next Steps\n\n- **Tool agents**: [references/tool-agent-pattern.md](references/tool-agent-pattern.md)\n- **Workflows**: [references/workflow-patterns.md](references/workflow-patterns.md)\n- **Persistence**: [references/persistence-memory.md](references/persistence-memory.md)\n- **Human-in-the-loop**: [references/hitl-patterns.md](references/hitl-patterns.md)\n- **Testing/Monitoring**: [references/debugging-monitoring.md](references/debugging-monitoring.md)\n- **Multi-agent**: [references/multi-agent-patterns.md](references/multi-agent-patterns.md)\n- **Production**: [references/production-deployment.md](references/production-deployment.md)\n- **Core concepts**: [references/core-api.md](references/core-api.md)\n- **Official docs**: [references/official-resources.md](references/official-resources.md)\n","readmeExcerpt":"--- name: mastering-langgraph description: Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory, human-in-the-loop oversight, and production monitoring. Use when - (1) building agents that use tools and loop until task complete, (2) creating multi-step workflows with conditional branches, (3) adding persistence/","codeSnippets":[],"executableExamples":[{"language":"python","snippet":"from langgraph.graph import StateGraph, START, END\nfrom langgraph.checkpoint.memory import InMemorySaver\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.messages import HumanMessage, AnyMessage\nfrom typing_extensions import TypedDict, Annotated\nimport operator\n\n# 1. Define state\nclass State(TypedDict):\n    messages: Annotated[list[AnyMessage], operator.add]  # Append mode\n\n# 2. Define node\nllm = ChatOpenAI(model=\"gpt-4\")\n\ndef chat(state: State) -> dict:\n    response = llm.invoke(state[\"messages\"])\n    return {\"messages\": [response]}\n\n# 3. Build graph\ngraph = StateGraph(State)\ngraph.add_node(\"chat\", chat)\ngraph.add_edge(START, \"chat\")\ngraph.add_edge(\"chat\", END)\n\n# 4. Compile with memory\nchain = graph.compile(checkpointer=InMemorySaver())\n\n# 5. Invoke with thread_id for persistence\nresult = chain.invoke(\n    {\"messages\": [HumanMessage(content=\"Hello!\")]},\n    config={\"configurable\": {\"thread_id\": \"user-123\"}}\n)\nprint(result[\"messages\"][-1].content)"},{"language":"python","snippet":"# ✓ Good: raw data\nclass State(TypedDict):\n    user_question: str\n    retrieved_docs: list[str]\n    intent: str\n\n# ✗ Bad: pre-formatted\nclass State(TypedDict):\n    full_prompt: str  # Mixes data with formatting"},{"language":"python","snippet":"# ✓ Good: clear responsibilities\ngraph.add_node(\"classify_intent\", classify_intent)\ngraph.add_node(\"search_knowledge\", search_knowledge)\ngraph.add_node(\"generate_response\", generate_response)"},{"language":"python","snippet":"def route_by_intent(state) -> str:\n    if state[\"intent\"] == \"billing\":\n        return \"billing_handler\"\n    return \"general_handler\"\n\ngraph.add_conditional_edges(\"classify\", route_by_intent, \n    [\"billing_handler\", \"general_handler\"])"},{"language":"python","snippet":"class State(TypedDict):\n    messages: Annotated[list, operator.add]      # ✓ Appends\n    current_step: str                             # Replaces (no annotation)"},{"language":"python","snippet":"# ✗ Wrong: messages: list[AnyMessage]\n# ✓ Fix: messages: Annotated[list[AnyMessage], operator.add]"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory, human-in-the-loop oversight, and production monitoring. Use when - (1) building agents that use tools and loop until task complete, (2) creating multi-step workflows with conditional branches, (3) adding persistence/memory across turns with checkpointers, (4) implementing human approval with interrupt(), (5) debugging via time-travel or LangSmith. Covers StateGraph, nodes, edges, add_conditional_edges, MessagesState, thread_id, Command objects, and ToolMessage handling. Examples include chatbots, calculator agents, and structured workflows. --- name: mastering-langgraph description: Build stateful AI agents and agentic workflows with LangGraph in Python. Covers tool-using agents with LLM-tool loops, branching workflows, conversation memory, human-in-the-loop oversight, and production monitoring. Use when - (1) building agents that use tools and loop until task complete, (2) creating multi-step workflows with conditional branches, (3) adding persistence/","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":446,"uniquenessScore":61,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T09:03:42.133Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}