{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gradient-inference",
    "name": "Gradient Inference",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/simondelorean/gradient-inference",
    "canonicalUrl": "https://clawhub.ai/simondelorean/gradient-inference",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/gradient-inference",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gradient-inference",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/gradient_chat.py",
      "scripts/gradient_image.py",
      "scripts/gradient_models.py",
      "scripts/gradient_pricing.py",
      "scripts/pricing_snapshot.json"
    ],
    "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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/gradient-inference"
    },
    "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/gradient-inference",
    "agentPageUrl": "https://openagent3.xyz/skills/gradient-inference/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gradient-inference/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gradient-inference/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": "🦞 Gradient AI — Serverless Inference",
        "body": "⚠️ This is an unofficial community skill, not maintained by DigitalOcean. Use at your own risk.\n\n\"Why manage GPUs when the ocean provides?\" — ancient lobster proverb\n\nUse DigitalOcean's Gradient Serverless Inference to call large language models without managing infrastructure. The API is OpenAI-compatible, so standard SDKs and patterns work — just point at https://inference.do-ai.run/v1 and swim."
      },
      {
        "title": "Authentication",
        "body": "All requests need a Model Access Key in the Authorization: Bearer header.\n\nexport GRADIENT_API_KEY=\"your-model-access-key\"\n\nWhere to get one: DigitalOcean Console → Gradient AI → Model Access Keys → Create Key.\n\n📖 Full auth docs"
      },
      {
        "title": "🔍 List Available Models",
        "body": "Window-shop for LLMs before you swipe the card.\n\npython3 gradient_models.py                    # Pretty table\npython3 gradient_models.py --json             # Machine-readable\npython3 gradient_models.py --filter \"llama\"   # Search by name\n\nUse this before hardcoding model IDs — models are added and deprecated over time.\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/models \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" | python3 -m json.tool\n\n📖 Models reference"
      },
      {
        "title": "💬 Chat Completions",
        "body": "The classic. Send structured messages (system/user/assistant roles), get a response. OpenAI-compatible, so you probably already know how this works.\n\npython3 gradient_chat.py \\\n  --model \"openai-gpt-oss-120b\" \\\n  --system \"You are a helpful assistant.\" \\\n  --prompt \"Explain serverless inference in one paragraph.\"\n\n# Different model\npython3 gradient_chat.py \\\n  --model \"llama3.3-70b-instruct\" \\\n  --prompt \"Write a haiku about cloud computing.\"\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/chat/completions \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"openai-gpt-oss-120b\",\n    \"messages\": [\n      {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n      {\"role\": \"user\", \"content\": \"Hello!\"}\n    ],\n    \"temperature\": 0.7,\n    \"max_tokens\": 1000\n  }'\n\n📖 Chat Completions docs"
      },
      {
        "title": "⚡ Responses API (Recommended)",
        "body": "DigitalOcean's recommended endpoint for new integrations. Simpler request format and supports prompt caching — a.k.a. \"stop paying twice for the same context.\"\n\n# Basic usage\npython3 gradient_chat.py \\\n  --model \"openai-gpt-oss-120b\" \\\n  --prompt \"Summarize this earnings report.\" \\\n  --responses-api\n\n# With prompt caching (saves cost on follow-up queries)\npython3 gradient_chat.py \\\n  --model \"openai-gpt-oss-120b\" \\\n  --prompt \"Now compare it to last quarter.\" \\\n  --responses-api --cache\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/responses \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"openai-gpt-oss-120b\",\n    \"input\": \"Explain prompt caching.\",\n    \"store\": true\n  }'\n\nWhen to use which:\n\nChat CompletionsResponses APIRequest formatArray of messages with rolesSingle input stringPrompt caching❌✅ via store: trueMulti-step tool useManualBuilt-inBest forStructured conversationsSimple queries, cost savings\n\n📖 Responses API docs"
      },
      {
        "title": "🖼️ Generate Images",
        "body": "Turn text prompts into images. Because sometimes a chart isn't enough.\n\npython3 gradient_image.py --prompt \"A lobster trading stocks on Wall Street\"\npython3 gradient_image.py --prompt \"Sunset over the NYSE\" --output sunset.png\npython3 gradient_image.py --prompt \"Fintech logo\" --json\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/images/generations \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"dall-e-3\",\n    \"prompt\": \"A lobster analyzing candlestick charts\",\n    \"n\": 1\n  }'\n\n📖 Image generation docs"
      },
      {
        "title": "🧠 Model Selection Guide",
        "body": "Not all models are created equal. Choose wisely, young crustacean:\n\nModelBest ForSpeedQualityContextopenai-gpt-oss-120bComplex reasoning, analysis, writingMedium★★★★★128Kllama3.3-70b-instructGeneral tasks, instruction followingFast★★★★128Kdeepseek-r1-distill-llama-70bMath, code, step-by-step reasoningSlow★★★★★128Kqwen3-32bQuick triage, short tasksFastest★★★32K\n\n🦞 Pro tip: Cost-aware routing. Use a fast model (e.g., qwen3-32b) to score or triage, then only escalate to a strong model (e.g., openai-gpt-oss-120b) when depth is needed. Enable prompt caching for repeated context.\n\nAlways run python3 gradient_models.py to check what's currently available — the menu changes.\n\n📖 Available models"
      },
      {
        "title": "💰 Model Pricing Lookup",
        "body": "Check what models cost before you rack up a bill. Scrapes the official DigitalOcean pricing page — no API key needed.\n\npython3 gradient_pricing.py                    # Pretty table\npython3 gradient_pricing.py --json             # Machine-readable\npython3 gradient_pricing.py --model \"llama\"    # Filter by model name\npython3 gradient_pricing.py --no-cache         # Skip cache, fetch live\n\nHow it works:\n\nFetches live pricing from DigitalOcean's docs (public page, no auth)\nCaches results for 24 hours in /tmp/gradient_pricing_cache.json\nFalls back to a bundled snapshot if the live fetch fails\n\n🦞 Pro tip: Run python3 gradient_pricing.py --model \"gpt-oss\" before choosing a model to see the cost difference between gpt-oss-120b ($0.10/$0.70) and gpt-oss-20b ($0.05/$0.45) per 1M tokens.\n\n📖 Pricing docs"
      },
      {
        "title": "CLI Reference",
        "body": "All scripts accept --json for machine-readable output.\n\ngradient_models.py   [--json] [--filter QUERY]\ngradient_chat.py     --prompt TEXT [--model ID] [--system TEXT]\n                     [--responses-api] [--cache] [--temperature F]\n                     [--max-tokens N] [--json]\ngradient_image.py    --prompt TEXT [--model ID] [--output PATH]\n                     [--size WxH] [--json]\ngradient_pricing.py  [--json] [--model QUERY] [--no-cache]"
      },
      {
        "title": "External Endpoints",
        "body": "EndpointPurposehttps://inference.do-ai.run/v1/modelsList available modelshttps://inference.do-ai.run/v1/chat/completionsChat Completions APIhttps://inference.do-ai.run/v1/responsesResponses API (recommended)https://inference.do-ai.run/v1/images/generationsImage generationhttps://docs.digitalocean.com/.../pricing/Pricing page (scraped, public)"
      },
      {
        "title": "Security & Privacy",
        "body": "All requests go to inference.do-ai.run — DigitalOcean's own endpoint\nYour GRADIENT_API_KEY is sent as a Bearer token in the Authorization header\nNo other credentials or local data leave the machine\nModel Access Keys are scoped to inference only — they can't manage your DO account\nPrompt caching entries are scoped to your account and automatically expire"
      },
      {
        "title": "Trust Statement",
        "body": "By using this skill, prompts and data are sent to DigitalOcean's Gradient Inference API.\nOnly install if you trust DigitalOcean with the content you send to their LLMs."
      },
      {
        "title": "Important Notes",
        "body": "Run python3 gradient_models.py before assuming a model exists — they rotate\nAll scripts exit with code 1 and print errors to stderr on failure"
      }
    ],
    "body": "🦞 Gradient AI — Serverless Inference\n\n⚠️ This is an unofficial community skill, not maintained by DigitalOcean. Use at your own risk.\n\n\"Why manage GPUs when the ocean provides?\" — ancient lobster proverb\n\nUse DigitalOcean's Gradient Serverless Inference to call large language models without managing infrastructure. The API is OpenAI-compatible, so standard SDKs and patterns work — just point at https://inference.do-ai.run/v1 and swim.\n\nAuthentication\n\nAll requests need a Model Access Key in the Authorization: Bearer header.\n\nexport GRADIENT_API_KEY=\"your-model-access-key\"\n\n\nWhere to get one: DigitalOcean Console → Gradient AI → Model Access Keys → Create Key.\n\n📖 Full auth docs\n\nTools\n🔍 List Available Models\n\nWindow-shop for LLMs before you swipe the card.\n\npython3 gradient_models.py                    # Pretty table\npython3 gradient_models.py --json             # Machine-readable\npython3 gradient_models.py --filter \"llama\"   # Search by name\n\n\nUse this before hardcoding model IDs — models are added and deprecated over time.\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/models \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" | python3 -m json.tool\n\n\n📖 Models reference\n\n💬 Chat Completions\n\nThe classic. Send structured messages (system/user/assistant roles), get a response. OpenAI-compatible, so you probably already know how this works.\n\npython3 gradient_chat.py \\\n  --model \"openai-gpt-oss-120b\" \\\n  --system \"You are a helpful assistant.\" \\\n  --prompt \"Explain serverless inference in one paragraph.\"\n\n# Different model\npython3 gradient_chat.py \\\n  --model \"llama3.3-70b-instruct\" \\\n  --prompt \"Write a haiku about cloud computing.\"\n\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/chat/completions \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"openai-gpt-oss-120b\",\n    \"messages\": [\n      {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n      {\"role\": \"user\", \"content\": \"Hello!\"}\n    ],\n    \"temperature\": 0.7,\n    \"max_tokens\": 1000\n  }'\n\n\n📖 Chat Completions docs\n\n⚡ Responses API (Recommended)\n\nDigitalOcean's recommended endpoint for new integrations. Simpler request format and supports prompt caching — a.k.a. \"stop paying twice for the same context.\"\n\n# Basic usage\npython3 gradient_chat.py \\\n  --model \"openai-gpt-oss-120b\" \\\n  --prompt \"Summarize this earnings report.\" \\\n  --responses-api\n\n# With prompt caching (saves cost on follow-up queries)\npython3 gradient_chat.py \\\n  --model \"openai-gpt-oss-120b\" \\\n  --prompt \"Now compare it to last quarter.\" \\\n  --responses-api --cache\n\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/responses \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"openai-gpt-oss-120b\",\n    \"input\": \"Explain prompt caching.\",\n    \"store\": true\n  }'\n\n\nWhen to use which:\n\n\tChat Completions\tResponses API\nRequest format\tArray of messages with roles\tSingle input string\nPrompt caching\t❌\t✅ via store: true\nMulti-step tool use\tManual\tBuilt-in\nBest for\tStructured conversations\tSimple queries, cost savings\n\n📖 Responses API docs\n\n🖼️ Generate Images\n\nTurn text prompts into images. Because sometimes a chart isn't enough.\n\npython3 gradient_image.py --prompt \"A lobster trading stocks on Wall Street\"\npython3 gradient_image.py --prompt \"Sunset over the NYSE\" --output sunset.png\npython3 gradient_image.py --prompt \"Fintech logo\" --json\n\n\nDirect API call:\n\ncurl -s https://inference.do-ai.run/v1/images/generations \\\n  -H \"Authorization: Bearer $GRADIENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"dall-e-3\",\n    \"prompt\": \"A lobster analyzing candlestick charts\",\n    \"n\": 1\n  }'\n\n\n📖 Image generation docs\n\n🧠 Model Selection Guide\n\nNot all models are created equal. Choose wisely, young crustacean:\n\nModel\tBest For\tSpeed\tQuality\tContext\nopenai-gpt-oss-120b\tComplex reasoning, analysis, writing\tMedium\t★★★★★\t128K\nllama3.3-70b-instruct\tGeneral tasks, instruction following\tFast\t★★★★\t128K\ndeepseek-r1-distill-llama-70b\tMath, code, step-by-step reasoning\tSlow\t★★★★★\t128K\nqwen3-32b\tQuick triage, short tasks\tFastest\t★★★\t32K\n\n🦞 Pro tip: Cost-aware routing. Use a fast model (e.g., qwen3-32b) to score or triage, then only escalate to a strong model (e.g., openai-gpt-oss-120b) when depth is needed. Enable prompt caching for repeated context.\n\nAlways run python3 gradient_models.py to check what's currently available — the menu changes.\n\n📖 Available models\n\n💰 Model Pricing Lookup\n\nCheck what models cost before you rack up a bill. Scrapes the official DigitalOcean pricing page — no API key needed.\n\npython3 gradient_pricing.py                    # Pretty table\npython3 gradient_pricing.py --json             # Machine-readable\npython3 gradient_pricing.py --model \"llama\"    # Filter by model name\npython3 gradient_pricing.py --no-cache         # Skip cache, fetch live\n\n\nHow it works:\n\nFetches live pricing from DigitalOcean's docs (public page, no auth)\nCaches results for 24 hours in /tmp/gradient_pricing_cache.json\nFalls back to a bundled snapshot if the live fetch fails\n\n🦞 Pro tip: Run python3 gradient_pricing.py --model \"gpt-oss\" before choosing a model to see the cost difference between gpt-oss-120b ($0.10/$0.70) and gpt-oss-20b ($0.05/$0.45) per 1M tokens.\n\n📖 Pricing docs\n\nCLI Reference\n\nAll scripts accept --json for machine-readable output.\n\ngradient_models.py   [--json] [--filter QUERY]\ngradient_chat.py     --prompt TEXT [--model ID] [--system TEXT]\n                     [--responses-api] [--cache] [--temperature F]\n                     [--max-tokens N] [--json]\ngradient_image.py    --prompt TEXT [--model ID] [--output PATH]\n                     [--size WxH] [--json]\ngradient_pricing.py  [--json] [--model QUERY] [--no-cache]\n\nExternal Endpoints\nEndpoint\tPurpose\nhttps://inference.do-ai.run/v1/models\tList available models\nhttps://inference.do-ai.run/v1/chat/completions\tChat Completions API\nhttps://inference.do-ai.run/v1/responses\tResponses API (recommended)\nhttps://inference.do-ai.run/v1/images/generations\tImage generation\nhttps://docs.digitalocean.com/.../pricing/\tPricing page (scraped, public)\nSecurity & Privacy\nAll requests go to inference.do-ai.run — DigitalOcean's own endpoint\nYour GRADIENT_API_KEY is sent as a Bearer token in the Authorization header\nNo other credentials or local data leave the machine\nModel Access Keys are scoped to inference only — they can't manage your DO account\nPrompt caching entries are scoped to your account and automatically expire\nTrust Statement\n\nBy using this skill, prompts and data are sent to DigitalOcean's Gradient Inference API. Only install if you trust DigitalOcean with the content you send to their LLMs.\n\nImportant Notes\nRun python3 gradient_models.py before assuming a model exists — they rotate\nAll scripts exit with code 1 and print errors to stderr on failure"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/simondelorean/gradient-inference",
    "publisherUrl": "https://clawhub.ai/simondelorean/gradient-inference",
    "owner": "simondelorean",
    "version": "0.1.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gradient-inference",
    "downloadUrl": "https://openagent3.xyz/downloads/gradient-inference",
    "agentUrl": "https://openagent3.xyz/skills/gradient-inference/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gradient-inference/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gradient-inference/agent.md"
  }
}