{
  "schemaVersion": "1.0",
  "item": {
    "slug": "relayplane",
    "name": "Relayplane",
    "source": "tencent",
    "type": "skill",
    "category": "其他",
    "sourceUrl": "https://clawhub.ai/RelayPlane/relayplane",
    "canonicalUrl": "https://clawhub.ai/RelayPlane/relayplane",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/relayplane",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=relayplane",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/relayplane"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/relayplane",
    "agentPageUrl": "https://openagent3.xyz/skills/relayplane/agent",
    "manifestUrl": "https://openagent3.xyz/skills/relayplane/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/relayplane/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "RelayPlane",
        "body": "OpenRouter routes. RelayPlane observes, governs, and learns.\n\nAgent ops for OpenClaw power users. Your agents make hundreds of API calls per session — RelayPlane gives you visibility, cost control, and governance over all of them."
      },
      {
        "title": "What It Does",
        "body": "RelayPlane is an optional optimization layer that sits in your agent's request pipeline. It routes simple tasks to cheaper models, enforces budgets, and logs everything — with automatic fallback to direct provider calls if anything goes wrong.\n\nKey principle: RelayPlane is never a dependency. If the proxy dies, your agents keep working. Zero downtime, guaranteed."
      },
      {
        "title": "Installation",
        "body": "npm install -g @relayplane/proxy@latest"
      },
      {
        "title": "Quick Start",
        "body": "# 1. Start the proxy (runs on localhost:4100 by default)\nrelayplane-proxy\n\n# 2. Add to your openclaw.json:\n#    { \"relayplane\": { \"enabled\": true } }\n\n# 3. That's it. OpenClaw routes through RelayPlane when healthy,\n#    falls back to direct provider calls automatically."
      },
      {
        "title": "⚠️ Important: Do NOT Set BASE_URL",
        "body": "Never do this:\n\n# ❌ WRONG — hijacks ALL traffic, breaks OpenClaw if proxy dies\nexport ANTHROPIC_BASE_URL=http://localhost:4100\n\nInstead, use the config approach:\n\n// ✅ RIGHT — openclaw.json\n{\n  \"relayplane\": {\n    \"enabled\": true\n  }\n}\n\nThe config approach uses a circuit breaker — if the proxy is down, traffic goes direct. The BASE_URL approach has no fallback and will take down your entire system."
      },
      {
        "title": "Architecture",
        "body": "Agent → OpenClaw Gateway → Circuit Breaker → RelayPlane Proxy → Provider\n                                   ↓ (on failure)\n                              Direct to Provider\n\nCircuit breaker: 3 consecutive failures → proxy bypassed for 30s\nAuto-recovery: Health probes detect when proxy comes back\nProcess management: Gateway can spawn/manage the proxy automatically"
      },
      {
        "title": "Configuration",
        "body": "Minimal (everything else has defaults):\n\n{\n  \"relayplane\": {\n    \"enabled\": true\n  }\n}\n\nFull options:\n\n{\n  \"relayplane\": {\n    \"enabled\": true,\n    \"proxyUrl\": \"http://127.0.0.1:4100\",\n    \"autoStart\": true,\n    \"circuitBreaker\": {\n      \"failureThreshold\": 3,\n      \"resetTimeoutMs\": 30000,\n      \"requestTimeoutMs\": 3000\n    }\n  }\n}"
      },
      {
        "title": "Commands",
        "body": "CommandDescriptionrelayplane-proxyStart the proxy serverrelayplane-proxy statsView usage and cost breakdownrelayplane-proxy --port 8080Custom portrelayplane-proxy --offlineNo telemetryrelayplane-proxy --helpShow all options"
      },
      {
        "title": "Programmatic Usage (v1.3.0+)",
        "body": "import { RelayPlaneMiddleware, resolveConfig } from '@relayplane/proxy';\n\nconst config = resolveConfig({ enabled: true });\nconst middleware = new RelayPlaneMiddleware(config);\n\n// Route a request — tries proxy, falls back to direct\nconst response = await middleware.route(request, directSend);\n\n// Check status\nconst status = middleware.getStatus();\nconsole.log(middleware.formatStatus());"
      },
      {
        "title": "Advanced: Full Agent Ops Proxy",
        "body": "import { createSandboxedProxyServer } from '@relayplane/proxy';\n\nconst { server, middleware } = createSandboxedProxyServer({\n  enableLearning: true,    // Enable pattern detection\n  enforcePolicies: true,   // Enforce budget/model policies\n  relayplane: { enabled: true },  // Circuit breaker wrapping\n});\n\nawait server.start();\n// All three pillars active: Observes + Governs + Learns\n// Circuit breaker protects against proxy failures"
      },
      {
        "title": "What's New in v1.4.0",
        "body": "Three Pillars — All Integrated:\n\nObserves (Learning Ledger) — every run captured, full decision explainability\nGoverns (Policy Engine) — budget caps, model allowlists, approval gates\nLearns (Learning Engine) — pattern detection, cost suggestions, rule management\n\nSandbox Architecture (v1.3.0+):\n\nCircuit breaker — automatic failover, no more system outages\nProcess manager — proxy runs as managed child process\nHealth probes — active recovery detection\nStats & observability — p50/p95/p99 latencies, request counts, circuit state\n\nLearning Engine Endpoints (v1.4.0):\n\nGET /v1/analytics/summary — analytics with date range\nPOST /v1/analytics/analyze — detect patterns, anomalies, generate suggestions\nGET /v1/suggestions — list pending suggestions\nPOST /v1/suggestions/:id/approve / reject — suggestion workflow\nGET /v1/rules — active rules\nGET /v1/rules/:id/effectiveness — is this rule helping?"
      },
      {
        "title": "Privacy",
        "body": "Your prompts stay local — never sent to RelayPlane servers\nAnonymous telemetry — only token counts, latency, model used\nOpt-out anytime — relayplane-proxy telemetry off\nFully offline mode — relayplane-proxy --offline"
      },
      {
        "title": "Links",
        "body": "Docs: https://relayplane.com/docs\nGitHub: https://github.com/RelayPlane/proxy\nnpm: https://www.npmjs.com/package/@relayplane/proxy"
      }
    ],
    "body": "RelayPlane\n\nOpenRouter routes. RelayPlane observes, governs, and learns.\n\nAgent ops for OpenClaw power users. Your agents make hundreds of API calls per session — RelayPlane gives you visibility, cost control, and governance over all of them.\n\nWhat It Does\n\nRelayPlane is an optional optimization layer that sits in your agent's request pipeline. It routes simple tasks to cheaper models, enforces budgets, and logs everything — with automatic fallback to direct provider calls if anything goes wrong.\n\nKey principle: RelayPlane is never a dependency. If the proxy dies, your agents keep working. Zero downtime, guaranteed.\n\nInstallation\nnpm install -g @relayplane/proxy@latest\n\nQuick Start\n# 1. Start the proxy (runs on localhost:4100 by default)\nrelayplane-proxy\n\n# 2. Add to your openclaw.json:\n#    { \"relayplane\": { \"enabled\": true } }\n\n# 3. That's it. OpenClaw routes through RelayPlane when healthy,\n#    falls back to direct provider calls automatically.\n\n⚠️ Important: Do NOT Set BASE_URL\n\nNever do this:\n\n# ❌ WRONG — hijacks ALL traffic, breaks OpenClaw if proxy dies\nexport ANTHROPIC_BASE_URL=http://localhost:4100\n\n\nInstead, use the config approach:\n\n// ✅ RIGHT — openclaw.json\n{\n  \"relayplane\": {\n    \"enabled\": true\n  }\n}\n\n\nThe config approach uses a circuit breaker — if the proxy is down, traffic goes direct. The BASE_URL approach has no fallback and will take down your entire system.\n\nArchitecture\nAgent → OpenClaw Gateway → Circuit Breaker → RelayPlane Proxy → Provider\n                                   ↓ (on failure)\n                              Direct to Provider\n\nCircuit breaker: 3 consecutive failures → proxy bypassed for 30s\nAuto-recovery: Health probes detect when proxy comes back\nProcess management: Gateway can spawn/manage the proxy automatically\nConfiguration\n\nMinimal (everything else has defaults):\n\n{\n  \"relayplane\": {\n    \"enabled\": true\n  }\n}\n\n\nFull options:\n\n{\n  \"relayplane\": {\n    \"enabled\": true,\n    \"proxyUrl\": \"http://127.0.0.1:4100\",\n    \"autoStart\": true,\n    \"circuitBreaker\": {\n      \"failureThreshold\": 3,\n      \"resetTimeoutMs\": 30000,\n      \"requestTimeoutMs\": 3000\n    }\n  }\n}\n\nCommands\nCommand\tDescription\nrelayplane-proxy\tStart the proxy server\nrelayplane-proxy stats\tView usage and cost breakdown\nrelayplane-proxy --port 8080\tCustom port\nrelayplane-proxy --offline\tNo telemetry\nrelayplane-proxy --help\tShow all options\nProgrammatic Usage (v1.3.0+)\nimport { RelayPlaneMiddleware, resolveConfig } from '@relayplane/proxy';\n\nconst config = resolveConfig({ enabled: true });\nconst middleware = new RelayPlaneMiddleware(config);\n\n// Route a request — tries proxy, falls back to direct\nconst response = await middleware.route(request, directSend);\n\n// Check status\nconst status = middleware.getStatus();\nconsole.log(middleware.formatStatus());\n\nAdvanced: Full Agent Ops Proxy\nimport { createSandboxedProxyServer } from '@relayplane/proxy';\n\nconst { server, middleware } = createSandboxedProxyServer({\n  enableLearning: true,    // Enable pattern detection\n  enforcePolicies: true,   // Enforce budget/model policies\n  relayplane: { enabled: true },  // Circuit breaker wrapping\n});\n\nawait server.start();\n// All three pillars active: Observes + Governs + Learns\n// Circuit breaker protects against proxy failures\n\nWhat's New in v1.4.0\n\nThree Pillars — All Integrated:\n\nObserves (Learning Ledger) — every run captured, full decision explainability\nGoverns (Policy Engine) — budget caps, model allowlists, approval gates\nLearns (Learning Engine) — pattern detection, cost suggestions, rule management\n\nSandbox Architecture (v1.3.0+):\n\nCircuit breaker — automatic failover, no more system outages\nProcess manager — proxy runs as managed child process\nHealth probes — active recovery detection\nStats & observability — p50/p95/p99 latencies, request counts, circuit state\n\nLearning Engine Endpoints (v1.4.0):\n\nGET /v1/analytics/summary — analytics with date range\nPOST /v1/analytics/analyze — detect patterns, anomalies, generate suggestions\nGET /v1/suggestions — list pending suggestions\nPOST /v1/suggestions/:id/approve / reject — suggestion workflow\nGET /v1/rules — active rules\nGET /v1/rules/:id/effectiveness — is this rule helping?\nPrivacy\nYour prompts stay local — never sent to RelayPlane servers\nAnonymous telemetry — only token counts, latency, model used\nOpt-out anytime — relayplane-proxy telemetry off\nFully offline mode — relayplane-proxy --offline\nLinks\nDocs: https://relayplane.com/docs\nGitHub: https://github.com/RelayPlane/proxy\nnpm: https://www.npmjs.com/package/@relayplane/proxy"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/RelayPlane/relayplane",
    "publisherUrl": "https://clawhub.ai/RelayPlane/relayplane",
    "owner": "RelayPlane",
    "version": "4.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/relayplane",
    "downloadUrl": "https://openagent3.xyz/downloads/relayplane",
    "agentUrl": "https://openagent3.xyz/skills/relayplane/agent",
    "manifestUrl": "https://openagent3.xyz/skills/relayplane/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/relayplane/agent.md"
  }
}