{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agentgate",
    "name": "Agentgate Clawhub",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/monteslu/agentgate",
    "canonicalUrl": "https://clawhub.ai/monteslu/agentgate",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agentgate",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agentgate",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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. 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. 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/agentgate"
    },
    "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/agentgate",
    "agentPageUrl": "https://openagent3.xyz/skills/agentgate/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentgate/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentgate/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "agentgate",
        "body": "API gateway for AI agents to access personal data with human-in-the-loop write approval.\n\nReads (GET) execute immediately\nWrites (POST/PUT/PATCH/DELETE) go through an approval queue\nBypass mode available for trusted agents (writes execute immediately)\n\nGitHub: https://github.com/monteslu/agentgate\nDocs: https://agentgate.org"
      },
      {
        "title": "Setup",
        "body": "agentgate server runs on a separate machine from OpenClaw. This is by design — your agent should not have direct access to the server holding your credentials. Install and run agentgate on a different computer (or VPS/container on a different host). See https://agentgate.org for setup instructions.\n\nOnce agentgate is running, configure these environment variables for your OpenClaw agent:\n\nAGENT_GATE_URL — agentgate base URL (e.g., http://your-agentgate-host:3050)\nAGENT_GATE_TOKEN — your agent's API key (create in the agentgate Admin UI → API Keys)"
      },
      {
        "title": "Authentication",
        "body": "All requests require the API key in the Authorization header:\n\nAuthorization: Bearer $AGENT_GATE_TOKEN"
      },
      {
        "title": "First Steps — Service Discovery",
        "body": "After connecting, discover what's available on your instance:\n\nGET $AGENT_GATE_URL/api/agent_start_here\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nReturns your agent's config, available services, accounts, and full API documentation."
      },
      {
        "title": "Instance-Specific Skills",
        "body": "agentgate generates additional skills tailored to your instance with your specific accounts and endpoints. See the agentgate skills documentation for details on how to install and update them."
      },
      {
        "title": "Supported Services",
        "body": "agentgate supports many services out of the box. Common ones include:\n\nCode: GitHub, Jira\nSocial: Bluesky, Mastodon, LinkedIn\nSearch: Brave Search, Google Search\nPersonal: Google Calendar, YouTube, Fitbit\nIoT: Home Assistant\nMessaging: Twilio, Plivo\n\nNew services are added regularly. Check GET /api/agent_start_here for what's configured on your instance."
      },
      {
        "title": "Reading Data",
        "body": "GET $AGENT_GATE_URL/api/{service}/{accountName}/{path}\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nExample: GET $AGENT_GATE_URL/api/github/myaccount/repos/owner/repo"
      },
      {
        "title": "Writing Data",
        "body": "Writes go through the approval queue:\n\nPOST $AGENT_GATE_URL/api/queue/{service}/{accountName}/submit\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{\n  \"requests\": [\n    {\n      \"method\": \"POST\",\n      \"path\": \"/the/api/path\",\n      \"body\": { \"your\": \"payload\" }\n    }\n  ],\n  \"comment\": \"Explain what you are doing and why\"\n}\n\nAlways include a clear comment explaining your intent. Include links to relevant resources."
      },
      {
        "title": "Check write status",
        "body": "GET $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nStatuses: pending → approved → executing → completed (or rejected/failed/withdrawn)"
      },
      {
        "title": "Withdraw a pending request",
        "body": "DELETE $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"reason\": \"No longer needed\" }"
      },
      {
        "title": "Binary uploads",
        "body": "For binary data (images, files), set binaryBase64: true in the request body:\n\n{\n  \"method\": \"POST\",\n  \"path\": \"com.atproto.repo.uploadBlob\",\n  \"binaryBase64\": true,\n  \"headers\": { \"Content-Type\": \"image/jpeg\" },\n  \"body\": \"<base64 encoded data>\"\n}"
      },
      {
        "title": "Inter-Agent Messaging",
        "body": "Agents can message each other through agentgate for multi-agent coordination."
      },
      {
        "title": "Send a message",
        "body": "POST $AGENT_GATE_URL/api/agents/message\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"to_agent\": \"agent_name\", \"message\": \"Hello!\" }"
      },
      {
        "title": "Read messages",
        "body": "GET $AGENT_GATE_URL/api/agents/messages?unread=true\nAuthorization: Bearer $AGENT_GATE_TOKEN"
      },
      {
        "title": "Mark as read",
        "body": "POST $AGENT_GATE_URL/api/agents/messages/{id}/read\nAuthorization: Bearer $AGENT_GATE_TOKEN"
      },
      {
        "title": "Broadcast to all agents",
        "body": "POST $AGENT_GATE_URL/api/agents/broadcast\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"message\": \"Team announcement\" }"
      },
      {
        "title": "Discover agents",
        "body": "GET $AGENT_GATE_URL/api/agents/messageable\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nMessaging modes (configured by admin): off, supervised (requires approval), open (immediate delivery)."
      },
      {
        "title": "Mementos (Persistent Memory)",
        "body": "Store and retrieve notes across sessions using keyword tags."
      },
      {
        "title": "Store a memento",
        "body": "POST $AGENT_GATE_URL/api/agents/memento\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"content\": \"Important info to remember\", \"keywords\": [\"project\", \"notes\"] }"
      },
      {
        "title": "Search by keyword",
        "body": "GET $AGENT_GATE_URL/api/agents/memento/search?keywords=project&limit=10\nAuthorization: Bearer $AGENT_GATE_TOKEN"
      },
      {
        "title": "Fetch full content by IDs",
        "body": "GET $AGENT_GATE_URL/api/agents/memento/42,38\nAuthorization: Bearer $AGENT_GATE_TOKEN"
      },
      {
        "title": "List your keywords",
        "body": "GET $AGENT_GATE_URL/api/agents/memento/keywords\nAuthorization: Bearer $AGENT_GATE_TOKEN"
      },
      {
        "title": "Important Notes",
        "body": "Always include clear comments on write requests\nBe patient with writes — approval requires human action\nUse GET /api/agent_start_here to discover available services\nSee agentgate docs for instance-specific skill setup"
      }
    ],
    "body": "agentgate\n\nAPI gateway for AI agents to access personal data with human-in-the-loop write approval.\n\nReads (GET) execute immediately\nWrites (POST/PUT/PATCH/DELETE) go through an approval queue\nBypass mode available for trusted agents (writes execute immediately)\n\nGitHub: https://github.com/monteslu/agentgate Docs: https://agentgate.org\n\nSetup\n\nagentgate server runs on a separate machine from OpenClaw. This is by design — your agent should not have direct access to the server holding your credentials. Install and run agentgate on a different computer (or VPS/container on a different host). See https://agentgate.org for setup instructions.\n\nOnce agentgate is running, configure these environment variables for your OpenClaw agent:\n\nAGENT_GATE_URL — agentgate base URL (e.g., http://your-agentgate-host:3050)\nAGENT_GATE_TOKEN — your agent's API key (create in the agentgate Admin UI → API Keys)\nAuthentication\n\nAll requests require the API key in the Authorization header:\n\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nFirst Steps — Service Discovery\n\nAfter connecting, discover what's available on your instance:\n\nGET $AGENT_GATE_URL/api/agent_start_here\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\n\nReturns your agent's config, available services, accounts, and full API documentation.\n\nInstance-Specific Skills\n\nagentgate generates additional skills tailored to your instance with your specific accounts and endpoints. See the agentgate skills documentation for details on how to install and update them.\n\nSupported Services\n\nagentgate supports many services out of the box. Common ones include:\n\nCode: GitHub, Jira\nSocial: Bluesky, Mastodon, LinkedIn\nSearch: Brave Search, Google Search\nPersonal: Google Calendar, YouTube, Fitbit\nIoT: Home Assistant\nMessaging: Twilio, Plivo\n\nNew services are added regularly. Check GET /api/agent_start_here for what's configured on your instance.\n\nReading Data\nGET $AGENT_GATE_URL/api/{service}/{accountName}/{path}\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\n\nExample: GET $AGENT_GATE_URL/api/github/myaccount/repos/owner/repo\n\nWriting Data\n\nWrites go through the approval queue:\n\nPOST $AGENT_GATE_URL/api/queue/{service}/{accountName}/submit\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{\n  \"requests\": [\n    {\n      \"method\": \"POST\",\n      \"path\": \"/the/api/path\",\n      \"body\": { \"your\": \"payload\" }\n    }\n  ],\n  \"comment\": \"Explain what you are doing and why\"\n}\n\n\nAlways include a clear comment explaining your intent. Include links to relevant resources.\n\nCheck write status\nGET $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\n\nStatuses: pending → approved → executing → completed (or rejected/failed/withdrawn)\n\nWithdraw a pending request\nDELETE $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"reason\": \"No longer needed\" }\n\nBinary uploads\n\nFor binary data (images, files), set binaryBase64: true in the request body:\n\n{\n  \"method\": \"POST\",\n  \"path\": \"com.atproto.repo.uploadBlob\",\n  \"binaryBase64\": true,\n  \"headers\": { \"Content-Type\": \"image/jpeg\" },\n  \"body\": \"<base64 encoded data>\"\n}\n\nInter-Agent Messaging\n\nAgents can message each other through agentgate for multi-agent coordination.\n\nSend a message\nPOST $AGENT_GATE_URL/api/agents/message\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"to_agent\": \"agent_name\", \"message\": \"Hello!\" }\n\nRead messages\nGET $AGENT_GATE_URL/api/agents/messages?unread=true\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nMark as read\nPOST $AGENT_GATE_URL/api/agents/messages/{id}/read\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nBroadcast to all agents\nPOST $AGENT_GATE_URL/api/agents/broadcast\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"message\": \"Team announcement\" }\n\nDiscover agents\nGET $AGENT_GATE_URL/api/agents/messageable\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\n\nMessaging modes (configured by admin): off, supervised (requires approval), open (immediate delivery).\n\nMementos (Persistent Memory)\n\nStore and retrieve notes across sessions using keyword tags.\n\nStore a memento\nPOST $AGENT_GATE_URL/api/agents/memento\nAuthorization: Bearer $AGENT_GATE_TOKEN\nContent-Type: application/json\n\n{ \"content\": \"Important info to remember\", \"keywords\": [\"project\", \"notes\"] }\n\nSearch by keyword\nGET $AGENT_GATE_URL/api/agents/memento/search?keywords=project&limit=10\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nFetch full content by IDs\nGET $AGENT_GATE_URL/api/agents/memento/42,38\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nList your keywords\nGET $AGENT_GATE_URL/api/agents/memento/keywords\nAuthorization: Bearer $AGENT_GATE_TOKEN\n\nImportant Notes\nAlways include clear comments on write requests\nBe patient with writes — approval requires human action\nUse GET /api/agent_start_here to discover available services\nSee agentgate docs for instance-specific skill setup"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/monteslu/agentgate",
    "publisherUrl": "https://clawhub.ai/monteslu/agentgate",
    "owner": "monteslu",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agentgate",
    "downloadUrl": "https://openagent3.xyz/downloads/agentgate",
    "agentUrl": "https://openagent3.xyz/skills/agentgate/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentgate/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentgate/agent.md"
  }
}