{
  "schemaVersion": "1.0",
  "item": {
    "slug": "brek-ai",
    "name": "Agent Hotel Booking",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/leo9/brek-ai",
    "canonicalUrl": "https://clawhub.ai/leo9/brek-ai",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/brek-ai",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=brek-ai",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "agents/openai.yaml",
      "references/call-control.md",
      "references/api-templates.md",
      "references/payment-and-billing.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/brek-ai"
    },
    "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/brek-ai",
    "agentPageUrl": "https://openagent3.xyz/skills/brek-ai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/brek-ai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/brek-ai/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": "Brek AI Partner Core Chat",
        "body": "Execute Brek through /api/partner/v1/core-chat.\n\nUse this execution order:\n\nCreate one session per end user (POST /sessions) with a stable actor.actorId.\nReuse that session for all follow-up messages (POST /events).\nRead the latest state when needed (GET /sessions/{sessionId}).\n\nDo not share one session across different users."
      },
      {
        "title": "Required runtime inputs",
        "body": "Require these inputs before calling Brek:\n\nBREK_BASE_URL\nBREK_PARTNER_API_KEY\nactorId (stable partner-side end-user ID)\nworkspaceId or tenant context if your product uses workspaces\npartnerId (stable partner tenant ID for idempotency and billing grouping)\nclientActionId for each write-like event kind\n\nIf one required input is missing, stop and request it.\n\nIf BREK_PARTNER_API_KEY is missing:\n\nstop outbound calls\nask the user to get the key from their internal owner or approved support channel\nnever request secrets through unapproved channels"
      },
      {
        "title": "Call safety guardrails",
        "body": "Apply these guardrails before every upstream call:\n\nEnforce local budget limits from references/call-control.md.\nAttach a deterministic idempotencyKey for all write-like event kinds.\nRespect 429 with retry-after and exponential backoff.\nOpen a circuit breaker after repeated 5xx or timeout failures.\nLog x-request-id, x-partner-id, x-ratelimit-limit, and x-ratelimit-remaining.\n\nNever retry booking or payment-confirm actions without the same idempotencyKey."
      },
      {
        "title": "Event-kind rules",
        "body": "When kind is one of:\n\ncommand_book_by_option_id\naction_book_option\naction_confirm_price_change\naction_confirm_payment_card\naction_cancel_booking\n\nAlways include idempotencyKey.\n\nGenerate idempotencyKey as:\n\n<partnerId>:<sessionId>:<kind>:<clientActionId>\n\nIf partnerId is unavailable in your runtime, use stable tenant context (for example workspaceId) and keep the key format deterministic."
      },
      {
        "title": "Payment handling",
        "body": "Handle payment in two layers:\n\nEnd-user card setup and confirmation in secure portal flow.\nAgent-to-agent usage billing and settlement.\n\nFollow references/payment-and-billing.md for both layers.\n\nHard rules:\n\nNever request or store raw card number, CVV, or full PAN in chat.\nAccept only tokenized paymentMethodId from provider-hosted fields.\nRequire explicit user confirmation before action_confirm_payment_card and booking actions."
      },
      {
        "title": "Response mapping",
        "body": "Map Brek response as:\n\ndata.result.status -> state machine key for UI and orchestration\ndata.result.message.text -> user-visible assistant text\ndata.result.artifacts -> structured payload (shortlist, payment setup URL, booking metadata)"
      },
      {
        "title": "Error handling",
        "body": "400: request validation failed. Fix payload.\n401/403: API key issue. Stop calls. Tell user to rotate or provision key through their internal owner or approved support channel.\n404: session not found or wrong tenant.\n409: actor/session mismatch. Recreate correct session.\n429: throttle locally and retry by retry-after.\n5xx: retry with backoff, then open breaker."
      },
      {
        "title": "References",
        "body": "Read only what you need:\n\nAPI payload templates: references/api-templates.md\nCall-control and anti-abuse policy: references/call-control.md\nPayment and billing orchestration: references/payment-and-billing.md"
      }
    ],
    "body": "Brek AI Partner Core Chat\n\nExecute Brek through /api/partner/v1/core-chat.\n\nUse this execution order:\n\nCreate one session per end user (POST /sessions) with a stable actor.actorId.\nReuse that session for all follow-up messages (POST /events).\nRead the latest state when needed (GET /sessions/{sessionId}).\n\nDo not share one session across different users.\n\nRequired runtime inputs\n\nRequire these inputs before calling Brek:\n\nBREK_BASE_URL\nBREK_PARTNER_API_KEY\nactorId (stable partner-side end-user ID)\nworkspaceId or tenant context if your product uses workspaces\npartnerId (stable partner tenant ID for idempotency and billing grouping)\nclientActionId for each write-like event kind\n\nIf one required input is missing, stop and request it.\n\nIf BREK_PARTNER_API_KEY is missing:\n\nstop outbound calls\nask the user to get the key from their internal owner or approved support channel\nnever request secrets through unapproved channels\nCall safety guardrails\n\nApply these guardrails before every upstream call:\n\nEnforce local budget limits from references/call-control.md.\nAttach a deterministic idempotencyKey for all write-like event kinds.\nRespect 429 with retry-after and exponential backoff.\nOpen a circuit breaker after repeated 5xx or timeout failures.\nLog x-request-id, x-partner-id, x-ratelimit-limit, and x-ratelimit-remaining.\n\nNever retry booking or payment-confirm actions without the same idempotencyKey.\n\nEvent-kind rules\n\nWhen kind is one of:\n\ncommand_book_by_option_id\naction_book_option\naction_confirm_price_change\naction_confirm_payment_card\naction_cancel_booking\n\nAlways include idempotencyKey.\n\nGenerate idempotencyKey as:\n\n<partnerId>:<sessionId>:<kind>:<clientActionId>\n\nIf partnerId is unavailable in your runtime, use stable tenant context (for example workspaceId) and keep the key format deterministic.\n\nPayment handling\n\nHandle payment in two layers:\n\nEnd-user card setup and confirmation in secure portal flow.\nAgent-to-agent usage billing and settlement.\n\nFollow references/payment-and-billing.md for both layers.\n\nHard rules:\n\nNever request or store raw card number, CVV, or full PAN in chat.\nAccept only tokenized paymentMethodId from provider-hosted fields.\nRequire explicit user confirmation before action_confirm_payment_card and booking actions.\nResponse mapping\n\nMap Brek response as:\n\ndata.result.status -> state machine key for UI and orchestration\ndata.result.message.text -> user-visible assistant text\ndata.result.artifacts -> structured payload (shortlist, payment setup URL, booking metadata)\nError handling\n400: request validation failed. Fix payload.\n401/403: API key issue. Stop calls. Tell user to rotate or provision key through their internal owner or approved support channel.\n404: session not found or wrong tenant.\n409: actor/session mismatch. Recreate correct session.\n429: throttle locally and retry by retry-after.\n5xx: retry with backoff, then open breaker.\nReferences\n\nRead only what you need:\n\nAPI payload templates: references/api-templates.md\nCall-control and anti-abuse policy: references/call-control.md\nPayment and billing orchestration: references/payment-and-billing.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/leo9/brek-ai",
    "publisherUrl": "https://clawhub.ai/leo9/brek-ai",
    "owner": "leo9",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/brek-ai",
    "downloadUrl": "https://openagent3.xyz/downloads/brek-ai",
    "agentUrl": "https://openagent3.xyz/skills/brek-ai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/brek-ai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/brek-ai/agent.md"
  }
}