{"id":1097,"date":"2026-03-12T13:06:59","date_gmt":"2026-03-12T04:06:59","guid":{"rendered":"https:\/\/openclaw.helloai.jp\/?p=1097"},"modified":"2026-03-14T16:28:27","modified_gmt":"2026-03-14T07:28:27","slug":"openclaw-%e5%a4%9akey%e8%bd%ae%e8%af%a2%e9%85%8d%e7%bd%ae%e5%ae%8c%e5%85%a8%e6%8c%87%e5%8d%97%ef%bc%88%e5%90%abtailscale-serve%ef%bc%89","status":"publish","type":"post","link":"https:\/\/openclaw.helloai.jp\/?p=1097","title":{"rendered":"OpenClaw \u591aKey\u8f6e\u8be2\u914d\u7f6e\u5b8c\u5168\u6307\u5357\uff08\u542bTailscale Serve\uff09"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">\u00a0\ud83d\udccb \u6587\u7ae0\u6982\u8ff0<\/h1>\n\n\n\n<p>\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u5728OpenClaw 3.8\u4e2d\u914d\u7f6e\u591a\u4e2aNVIDIA API Key\u5b9e\u73b0\u81ea\u52a8\u8f6e\u8be2\uff0c\u89e3\u51b3API\u9650\u6d41(429)\u95ee\u9898\uff0c\u5e76\u786e\u4fddControl UI\u901a\u8fc7Tailscale Serve\u5b9e\u73b0\u65e0\u7aef\u53e3\u8bbf\u95ee\u3002\u5305\u542b\u5b8c\u6574\u7684\u811a\u672c\u548c\u914d\u7f6e\u8bf4\u660e\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u89e3\u51b3\u7684\u95ee\u9898<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>API\u9650\u6d41(429\u9519\u8bef)<\/strong>\uff1a\u5355\u4e2aAPI Key\u6709\u901f\u7387\u9650\u5236\uff08NVIDIA 40 RPM\uff09<\/li>\n\n\n\n<li><strong>\u591aKey\u81ea\u52a8\u8f6e\u8be2<\/strong>\uff1a5\u4e2aKey\u5faa\u73af\u4f7f\u7528\uff0c\u63d0\u5347\u81f3200 RPM<\/li>\n\n\n\n<li><strong>Control UI\u8bbf\u95ee<\/strong>\uff1a\u914d\u7f6e\u4e3bKey\u8ba9Web\u754c\u9762\u6b63\u5e38\u5de5\u4f5c<\/li>\n\n\n\n<li><strong>\u8de8\u7f51\u7edc\u8bbf\u95ee<\/strong>\uff1a\u901a\u8fc7Tailscale Serve\u5b9e\u73b0\u4f18\u96c5\u7684\u65e0\u7aef\u53e3HTTPS\u8bbf\u95ee<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcc1 \u6587\u4ef6\u7ed3\u6784<\/h2>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">~\/.openclaw\/\n\u251c\u2500\u2500 openclaw.json              # \u4e3b\u914d\u7f6e\u6587\u4ef6\uff08\u5305\u542bgateway\u548c\u9ed8\u8ba4Key\uff09\n\u2514\u2500\u2500 agents\/main\/agent\/\n    \u251c\u2500\u2500 auth-profiles.json     # \u591aKey\u8ba4\u8bc1\u914d\u7f6e\uff085\u4e2aKey\uff09\n    \u2514\u2500\u2500 models.json            # \u6a21\u578b\u914d\u7f6e<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd27 \u6838\u5fc3\u914d\u7f6e\u8be6\u89e3<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u4e3b\u914d\u7f6e\u6587\u4ef6&nbsp;<code>openclaw.json<\/code><\/h3>\n\n\n\n<p>json<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\n  \"gateway\": {\n    \"mode\": \"local\",           <em>\/\/ \u672c\u5730\u6a21\u5f0f<\/em>\n    \"port\": 18789,             <em>\/\/ \u7f51\u5173\u7aef\u53e3\uff08Tailscale Serve\u4f1a\u8f6c\u53d1\uff09<\/em>\n    \"bind\": \"0.0.0.0\",         <em>\/\/ \u76d1\u542c\u6240\u6709\u63a5\u53e3<\/em>\n    \"controlUi\": {\n      \"allowedOrigins\": [\"*\"]   <em>\/\/ \u5141\u8bb8\u6240\u6709\u6765\u6e90<\/em>\n    }\n  },\n  \"models\": {\n    \"providers\": {\n      \"nvidia\": {\n        \"baseUrl\": \"https:\/\/integrate.api.nvidia.com\/v1\",\n        \"apiKey\": \"nvapi-xxxx...\",  <em>\/\/ \u9ed8\u8ba4Key\uff08\u7528\u4e8eControl UI\uff09<\/em>\n        \"api\": \"openai-completions\",\n        \"models\": [\n          { \n            \"id\": \"moonshotai\/kimi-k2.5\", \n            \"name\": \"Kimi K2.5\" \n          }\n        ]\n      }\n    }\n  },\n  \"agents\": {\n    \"main\": {\n      \"model\": {\n        \"primary\": \"nvidia\/moonshotai\/kimi-k2.5\"  <em>\/\/ \u9ed8\u8ba4\u6a21\u578b<\/em>\n      }\n    }\n  }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u591aKey\u8ba4\u8bc1\u914d\u7f6e&nbsp;<code>auth-profiles.json<\/code><\/h3>\n\n\n\n<p>json<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\n  \"profiles\": {\n    \"nvidia\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"nvapi-key1...\"  <em>\/\/ Key 1<\/em>\n    },\n    \"nvidia-key2\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"nvapi-key2...\"  <em>\/\/ Key 2<\/em>\n    },\n    \"nvidia-key3\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"nvapi-key3...\"  <em>\/\/ Key 3<\/em>\n    },\n    \"nvidia-key4\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"nvapi-key4...\"  <em>\/\/ Key 4<\/em>\n    },\n    \"nvidia-key5\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"nvapi-key5...\"  <em>\/\/ Key 5<\/em>\n    }\n  }\n}<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 \u4e00\u952e\u5b89\u88c5\u811a\u672c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>nvidia-5key-setup.sh<\/code><\/h3>\n\n\n\n<p>bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#!\/bin\/bash\n\n<em># ================================================<\/em>\n<em># NVIDIA 5 Key \u4e00\u952e\u914d\u7f6e\u811a\u672c<\/em>\n<em># \u9002\u7528\u7248\u672c: OpenClaw 2026.3.8<\/em>\n<em># \u529f\u80fd: \u914d\u7f6e5\u4e2aKey\u81ea\u52a8\u8f6e\u8be2 + Tailscale Serve\u65e0\u7aef\u53e3\u8bbf\u95ee<\/em>\n<em># ================================================<\/em>\n\n<em># \u989c\u8272\u5b9a\u4e49<\/em>\nGREEN='\\033[0;32m'\nRED='\\033[0;31m'\nYELLOW='\\033[1;33m'\nBLUE='\\033[0;34m'\nNC='\\033[0m'\n\n<em># \u663e\u793aBanner<\/em>\nclear\necho -e \"${BLUE}\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510${NC}\"\necho -e \"${BLUE}\u2502${GREEN}  NVIDIA 5 Key \u4e00\u952e\u914d\u7f6e\u811a\u672c${NC}\"\necho -e \"${BLUE}\u2502${YELLOW}  OpenClaw 2026.3.8 + Tailscale Serve${NC}\"\necho -e \"${BLUE}\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518${NC}\"\necho \"\"\n\n<em># ================================================<\/em>\n<em># \u7b2c1\u6b65\uff1a\u68c0\u67e5\u73af\u5883<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[1\/7] \u68c0\u67e5\u73af\u5883...${NC}\"\n\nif ! command -v openclaw &amp;&gt; \/dev\/null; then\n    echo -e \"${RED}\u274c OpenClaw\u672a\u5b89\u88c5${NC}\"\n    exit 1\nfi\n\nif ! command -v tailscale &amp;&gt; \/dev\/null; then\n    echo -e \"${YELLOW}\u26a0\ufe0f Tailscale\u672a\u5b89\u88c5\uff0c\u5c06\u53ea\u914d\u7f6e\u57fa\u7840\u529f\u80fd${NC}\"\nfi\n\n<em># ================================================<\/em>\n<em># \u7b2c2\u6b65\uff1a\u914d\u7f6eGateway<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[2\/7] \u914d\u7f6eGateway...${NC}\"\n\n<em># \u505c\u6b62\u6240\u6709OpenClaw\u8fdb\u7a0b<\/em>\npkill -f openclaw 2&gt;\/dev\/null\nsleep 2\n\n<em># \u521b\u5efa\u76ee\u5f55<\/em>\nmkdir -p ~\/.openclaw\/agents\/main\/agent\n\n<em># \u5907\u4efd\u73b0\u6709\u914d\u7f6e<\/em>\nif [ -f ~\/.openclaw\/openclaw.json ]; then\n    cp ~\/.openclaw\/openclaw.json ~\/.openclaw\/openclaw.json.bak.$(date +%s)\n    echo -e \"${GREEN}\u2705 \u5df2\u5907\u4efd\u539f\u6709\u914d\u7f6e${NC}\"\nfi\n\n<em># ================================================<\/em>\n<em># \u7b2c3\u6b65\uff1a\u8f93\u51655\u4e2aNVIDIA API Key<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[3\/7] \u914d\u7f6eNVIDIA API Keys...${NC}\"\necho -e \"${CYAN}\u8bf7\u51c6\u5907\u4f60\u76845\u4e2aNVIDIA API Key${NC}\"\necho \"\"\n\nread -p \"\u8f93\u5165 Key 1 (nvidia): \" KEY1\nread -p \"\u8f93\u5165 Key 2 (nvidia-key2): \" KEY2\nread -p \"\u8f93\u5165 Key 3 (nvidia-key3): \" KEY3\nread -p \"\u8f93\u5165 Key 4 (nvidia-key4): \" KEY4\nread -p \"\u8f93\u5165 Key 5 (nvidia-key5): \" KEY5\n\n<em># \u521b\u5efaauth-profiles.json\uff085\u4e2aKey\uff09<\/em>\ncat &gt; ~\/.openclaw\/agents\/main\/agent\/auth-profiles.json &lt;&lt; EOF\n{\n  \"profiles\": {\n    \"nvidia\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"$KEY1\"\n    },\n    \"nvidia-key2\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"$KEY2\"\n    },\n    \"nvidia-key3\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"$KEY3\"\n    },\n    \"nvidia-key4\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"$KEY4\"\n    },\n    \"nvidia-key5\": {\n      \"type\": \"api_key\",\n      \"provider\": \"openai\",\n      \"key\": \"$KEY5\"\n    }\n  }\n}\nEOF\n\necho -e \"${GREEN}\u2705 API Keys\u914d\u7f6e\u5b8c\u6210${NC}\"\necho \"\"\n\n<em># ================================================<\/em>\n<em># \u7b2c4\u6b65\uff1a\u521b\u5efa\u4e3b\u914d\u7f6e\u6587\u4ef6\uff08\u542b\u9ed8\u8ba4Key\uff09<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[4\/7] \u521b\u5efa\u4e3b\u914d\u7f6e\u6587\u4ef6...${NC}\"\n\ncat &gt; ~\/.openclaw\/openclaw.json &lt;&lt; EOF\n{\n  \"gateway\": {\n    \"mode\": \"local\",\n    \"port\": 18789,\n    \"bind\": \"0.0.0.0\",\n    \"controlUi\": {\n      \"allowedOrigins\": [\"*\"]\n    }\n  },\n  \"models\": {\n    \"providers\": {\n      \"nvidia\": {\n        \"baseUrl\": \"https:\/\/integrate.api.nvidia.com\/v1\",\n        \"apiKey\": \"$KEY1\",\n        \"api\": \"openai-completions\",\n        \"models\": [\n          { \"id\": \"moonshotai\/kimi-k2.5\", \"name\": \"Kimi K2.5\" }\n        ]\n      }\n    }\n  },\n  \"agents\": {\n    \"main\": {\n      \"model\": {\n        \"primary\": \"nvidia\/moonshotai\/kimi-k2.5\"\n      }\n    }\n  }\n}\nEOF\n\necho -e \"${GREEN}\u2705 \u4e3b\u914d\u7f6e\u6587\u4ef6\u521b\u5efa\u5b8c\u6210${NC}\"\necho \"\"\n\n<em># ================================================<\/em>\n<em># \u7b2c5\u6b65\uff1a\u521b\u5efa\u8f6e\u8be2\u811a\u672c<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[5\/7] \u521b\u5efa\u8f6e\u8be2\u811a\u672c...${NC}\"\n\ncat &gt; \/usr\/local\/bin\/nvidia-chat &lt;&lt; 'EOF'\n#!\/bin\/bash\n\n# NVIDIA 5 Key \u8f6e\u8be2\u811a\u672c\n# \u4f7f\u7528\u65b9\u6cd5: nvidia-chat \"\u4f60\u7684\u95ee\u9898\"\n\nGREEN='\\033[0;32m'\nYELLOW='\\033[1;33m'\nBLUE='\\033[0;34m'\nNC='\\033[0m'\n\nPROFILES=(\"nvidia\" \"nvidia-key2\" \"nvidia-key3\" \"nvidia-key4\" \"nvidia-key5\")\nTOTAL_KEYS=${#PROFILES[@]}\n\n# \u8ba1\u6570\u5668\u6587\u4ef6\nCOUNTER_FILE=\"\/tmp\/nvidia_key_counter\"\n\n# \u521d\u59cb\u5316\u8ba1\u6570\u5668\nif [ ! -f \"$COUNTER_FILE\" ]; then\n    echo \"0\" &gt; \"$COUNTER_FILE\"\nfi\n\n# \u8bfb\u53d6\u5f53\u524d\u8ba1\u6570\nCOUNT=$(cat \"$COUNTER_FILE\" 2&gt;\/dev\/null || echo \"0\")\nINDEX=$((COUNT % TOTAL_KEYS))\nNEXT_COUNT=$((COUNT + 1))\necho \"$NEXT_COUNT\" &gt; \"$COUNTER_FILE\"\n\n# \u9009\u62e9\u7684profile\nSELECTED_PROFILE=\"${PROFILES[$INDEX]}\"\n\n# \u663e\u793a\u4fe1\u606f\necho -e \"${BLUE}\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510${NC}\"\necho -e \"${BLUE}\u2502${GREEN}  NVIDIA 5 Key \u8f6e\u8be2${NC}\"\necho -e \"${BLUE}\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524${NC}\"\necho -e \"${BLUE}\u2502${YELLOW}  \ud83d\udd11 Key $((INDEX+1))\/$TOTAL_KEYS: $SELECTED_PROFILE${NC}\"\necho -e \"${BLUE}\u2502${YELLOW}  \ud83d\udcdd \u95ee\u9898: $*${NC}\"\necho -e \"${BLUE}\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518${NC}\"\necho \"\"\n\n# \u8c03\u7528OpenClaw\nOPENCLAW_AUTH_PROFILE=\"$SELECTED_PROFILE\" openclaw agent --agent main --message \"$*\"\n\n# \u5931\u8d25\u65f6\u81ea\u52a8\u5207\u6362\nif [ $? -ne 0 ]; then\n    COUNT=$(cat \"$COUNTER_FILE\")\n    echo \"$((COUNT + 1))\" &gt; \"$COUNTER_FILE\"\nfi\nEOF\n\nchmod +x \/usr\/local\/bin\/nvidia-chat\necho -e \"${GREEN}\u2705 \u521b\u5efa: \/usr\/local\/bin\/nvidia-chat${NC}\"\n\n<em># ================================================<\/em>\n<em># \u7b2c6\u6b65\uff1a\u914d\u7f6eTailscale Serve\uff08\u5173\u952e\u6b65\u9aa4\uff09<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[6\/7] \u914d\u7f6eTailscale Serve...${NC}\"\n\nif command -v tailscale &amp;&gt; \/dev\/null; then\n    <em># \u540e\u53f0\u8fd0\u884cTailscale Serve\uff0c\u5c0618789\u7aef\u53e3\u8f6c\u53d1\u5230\u6807\u51c6HTTPS\u7aef\u53e3<\/em>\n    tailscale serve --bg 18789\n    \n    if [ $? -eq 0 ]; then\n        echo -e \"${GREEN}\u2705 Tailscale Serve\u914d\u7f6e\u6210\u529f${NC}\"\n        \n        <em># \u83b7\u53d6Tailscale\u57df\u540d<\/em>\n        TS_DOMAIN=$(tailscale status --json 2&gt;\/dev\/null | grep -o '\"Domain\":\"[^\"]*\"' | head -1 | cut -d'\"' -f4)\n        if [ -z \"$TS_DOMAIN\" ]; then\n            TS_DOMAIN=$(hostname -f 2&gt;\/dev\/null)\n        fi\n    else\n        echo -e \"${RED}\u274c Tailscale Serve\u914d\u7f6e\u5931\u8d25${NC}\"\n    fi\nelse\n    echo -e \"${YELLOW}\u26a0\ufe0f Tailscale\u672a\u5b89\u88c5\uff0c\u8df3\u8fc7Serve\u914d\u7f6e${NC}\"\nfi\necho \"\"\n\n<em># ================================================<\/em>\n<em># \u7b2c7\u6b65\uff1a\u521b\u5efa\u6d4b\u8bd5\u811a\u672c<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}[7\/7] \u521b\u5efa\u6d4b\u8bd5\u811a\u672c...${NC}\"\n\ncat &gt; ~\/test-nvidia-keys.sh &lt;&lt; 'EOF'\n#!\/bin\/bash\n\nGREEN='\\033[0;32m'\nRED='\\033[0;31m'\nYELLOW='\\033[1;33m'\nBLUE='\\033[0;34m'\nNC='\\033[0m'\n\necho -e \"${BLUE}========================================${NC}\"\necho -e \"${GREEN}   NVIDIA 5 Key \u6d4b\u8bd5\u811a\u672c${NC}\"\necho -e \"${BLUE}========================================${NC}\"\necho \"\"\n\nPROFILES=(\"nvidia\" \"nvidia-key2\" \"nvidia-key3\" \"nvidia-key4\" \"nvidia-key5\")\nSUCCESS=0\nFAIL=0\n\nfor i in \"${!PROFILES[@]}\"; do\n    profile=\"${PROFILES[$i]}\"\n    echo -e \"${YELLOW}\u6d4b\u8bd5 Key $((i+1)): $profile${NC}\"\n    echo \"------------------------\"\n    \n    response=$(OPENCLAW_AUTH_PROFILE=\"$profile\" openclaw agent --agent main --message \"Hello, respond with OK\" 2&gt;&amp;1)\n    \n    if [[ \"$response\" == *\"OK\"* ]] || [[ \"$response\" != *\"Error\"* ]]; then\n        echo -e \"${GREEN}\u2705 \u6210\u529f${NC}\"\n        SUCCESS=$((SUCCESS + 1))\n    else\n        echo -e \"${RED}\u274c \u5931\u8d25${NC}\"\n        FAIL=$((FAIL + 1))\n    fi\n    echo \"------------------------\"\n    echo \"\"\ndone\n\necho -e \"${BLUE}========================================${NC}\"\necho -e \"${GREEN}\u6d4b\u8bd5\u7ed3\u679c: \u6210\u529f $SUCCESS, \u5931\u8d25 $FAIL${NC}\"\necho -e \"${BLUE}========================================${NC}\"\nEOF\n\nchmod +x ~\/test-nvidia-keys.sh\necho -e \"${GREEN}\u2705 \u521b\u5efa: ~\/test-nvidia-keys.sh${NC}\"\necho \"\"\n\n<em># ================================================<\/em>\n<em># \u542f\u52a8Gateway<\/em>\n<em># ================================================<\/em>\necho -e \"${YELLOW}\u542f\u52a8Gateway...${NC}\"\nopenclaw gateway &gt; \/tmp\/gateway.log 2&gt;&amp;1 &amp;\nsleep 3\n\n<em># ================================================<\/em>\n<em># \u6dfb\u52a0\u522b\u540d\u5230bashrc<\/em>\n<em># ================================================<\/em>\ncat &gt;&gt; ~\/.bashrc &lt;&lt; 'EOF'\n\n# NVIDIA 5 Key \u522b\u540d\nalias nvidia-chat='\/usr\/local\/bin\/nvidia-chat'\nalias nvidia-test='~\/test-nvidia-keys.sh'\nalias nvidia-status='openclaw models list &amp;&amp; echo \"\" &amp;&amp; curl -s http:\/\/127.0.0.1:18789\/health'\nalias nvidia-serve='tailscale serve --bg 18789'\nalias nvidia-serve-status='tailscale serve status'\nEOF\n\n<em># ================================================<\/em>\n<em># \u663e\u793a\u5b8c\u6210\u4fe1\u606f<\/em>\n<em># ================================================<\/em>\necho \"\"\necho -e \"${BLUE}\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510${NC}\"\necho -e \"${BLUE}\u2502${GREEN}  \u2705 \u5b89\u88c5\u5b8c\u6210\uff01${NC}\"\necho -e \"${BLUE}\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524${NC}\"\necho -e \"${BLUE}\u2502${YELLOW}  \u53ef\u7528\u547d\u4ee4:${NC}\"\necho -e \"${BLUE}\u2502${NC}  nvidia-chat '\u4f60\u7684\u95ee\u9898'   ${GREEN}# \u8f6e\u8be2\u4f7f\u75285\u4e2aKey${NC}\"\necho -e \"${BLUE}\u2502${NC}  nvidia-test              ${GREEN}# \u6d4b\u8bd5\u6240\u6709Key${NC}\"\necho -e \"${BLUE}\u2502${NC}  nvidia-status            ${GREEN}# \u67e5\u770b\u72b6\u6001${NC}\"\necho -e \"${BLUE}\u2502${NC}  nvidia-serve             ${GREEN}# \u914d\u7f6eTailscale Serve${NC}\"\necho -e \"${BLUE}\u2502${NC}  nvidia-serve-status      ${GREEN}# \u67e5\u770bServe\u72b6\u6001${NC}\"\necho -e \"${BLUE}\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524${NC}\"\necho -e \"${BLUE}\u2502${YELLOW}  \ud83c\udf10 Control UI \u8bbf\u95ee\uff08\u65e0\u9700\u7aef\u53e3\uff09:${NC}\"\nif [ -n \"$TS_DOMAIN\" ]; then\n    echo -e \"${BLUE}\u2502${GREEN}  https:\/\/$TS_DOMAIN${NC}\"\nelse\n    TS_IP=$(tailscale ip 2&gt;\/dev\/null | head -1)\n    if [ -n \"$TS_IP\" ]; then\n        echo -e \"${BLUE}\u2502${GREEN}  https:\/\/$TS_IP${NC}\"\n    else\n        echo -e \"${BLUE}\u2502${YELLOW}  \u8bf7\u8fd0\u884c: tailscale serve --bg 18789${NC}\"\n    fi\nfi\necho -e \"${BLUE}\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524${NC}\"\necho -e \"${BLUE}\u2502${YELLOW}  \u4f7f\u7528\u524d\u5237\u65b0: source ~\/.bashrc${NC}\"\necho -e \"${BLUE}\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518${NC}\"<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcd6 \u4f7f\u7528\u8bf4\u660e<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u8fd0\u884c\u5b89\u88c5\u811a\u672c<\/h3>\n\n\n\n<p>bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em># \u521b\u5efa\u811a\u672c<\/em>\nnano nvidia-5key-setup.sh\n<em># \u7c98\u8d34\u4e0a\u9762\u7684\u811a\u672c\u5185\u5bb9<\/em>\n\n<em># \u7ed9\u6267\u884c\u6743\u9650<\/em>\nchmod +x nvidia-5key-setup.sh\n\n<em># \u8fd0\u884c<\/em>\n.\/nvidia-5key-setup.sh<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u65e5\u5e38\u4f7f\u7528\u547d\u4ee4<\/h3>\n\n\n\n<p>bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em># \u5237\u65b0\u73af\u5883\u53d8\u91cf<\/em>\nsource ~\/.bashrc\n\n<em># \u8f6e\u8be2\u804a\u5929\uff08\u81ea\u52a8\u5207\u63625\u4e2aKey\uff09<\/em>\nnvidia-chat \"\u4f60\u597d\uff0c\u8bf7\u4ecb\u7ecd\u4e00\u4e0b\u81ea\u5df1\"\n\n<em># \u6d4b\u8bd5\u6240\u6709Key<\/em>\nnvidia-test\n\n<em># \u67e5\u770b\u72b6\u6001<\/em>\nnvidia-status\n\n<em># \u624b\u52a8\u6307\u5b9a\u4f7f\u7528\u67d0\u4e2aKey<\/em>\nOPENCLAW_AUTH_PROFILE=nvidia-key3 openclaw agent --agent main --message \"\u4f60\u7684\u95ee\u9898\"\n\n<em># \u67e5\u770b\u5f53\u524d\u8ba1\u6570<\/em>\ncat \/tmp\/nvidia_key_counter\n\n<em># \u91cd\u7f6e\u8ba1\u6570\u5668<\/em>\necho \"0\" &gt; \/tmp\/nvidia_key_counter<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Tailscale Serve \u7ba1\u7406<\/h3>\n\n\n\n<p>bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em># \u914d\u7f6eTailscale Serve\uff08\u5982\u679c\u811a\u672c\u672a\u81ea\u52a8\u914d\u7f6e\uff09<\/em>\nnvidia-serve\n\n<em># \u67e5\u770bServe\u72b6\u6001<\/em>\nnvidia-serve-status\n\n<em># \u505c\u6b62Serve<\/em>\ntailscale serve --bg=false 18789\n\n<em># \u67e5\u770b\u6240\u6709Serve\u914d\u7f6e<\/em>\ntailscale serve status --all<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Control UI \u8bbf\u95ee\uff08\u65e0\u9700\u7aef\u53e3\u53f7\uff09<\/h3>\n\n\n\n<p>\u914d\u7f6e\u597dTailscale Serve\u540e\uff0c\u5728\u4efb\u4f55Tailscale\u7f51\u7edc\u5185\u7684\u8bbe\u5907\u4e0a\uff0c\u76f4\u63a5\u8bbf\u95ee\uff1a<\/p>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">https:\/\/\u4f60\u7684VPS_Tailscale\u57df\u540d<\/pre>\n\n\n\n<p>\u4f8b\u5982\uff1a<\/p>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">https:\/\/x162-43-92-249.tail9c4209.ts.net<\/pre>\n\n\n\n<p><strong>\u65e0\u9700\u52a0\u7aef\u53e3\u53f7\uff01<\/strong>&nbsp;Tailscale Serve\u4f1a\u81ea\u52a8\u5c06HTTPS\u6d41\u91cf\u8f6c\u53d1\u5230VPS\u768418789\u7aef\u53e3\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d \u5de5\u4f5c\u539f\u7406\u8be6\u89e3<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u591aKey\u8f6e\u8be2\u6d41\u7a0b<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u8ba1\u6570\u5668\u7ef4\u62a4<\/strong>\uff1a<code>\/tmp\/nvidia_key_counter<\/code>&nbsp;\u8bb0\u5f55\u5f53\u524d\u4f7f\u7528\u7684Key\u7d22\u5f15<\/li>\n\n\n\n<li><strong>\u8f6e\u8be2\u7b97\u6cd5<\/strong>\uff1a\u6bcf\u6b21\u8bf7\u6c42\u7d22\u5f15+1\uff0c5\u4e2aKey\u5faa\u73af\u4f7f\u7528<\/li>\n\n\n\n<li><strong>\u73af\u5883\u53d8\u91cf\u8986\u76d6<\/strong>\uff1a<code>OPENCLAW_AUTH_PROFILE<\/code>&nbsp;\u6307\u5b9a\u4f7f\u7528\u7684profile<\/li>\n\n\n\n<li><strong>\u5931\u8d25\u5207\u6362<\/strong>\uff1a\u8bf7\u6c42\u5931\u8d25\u81ea\u52a8\u5207\u6362\u5230\u4e0b\u4e00\u4e2aKey<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Tailscale Serve \u5de5\u4f5c\u539f\u7406<\/h3>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u7528\u6237\u8bbf\u95ee https:\/\/x162-43-92-249.tail9c4209.ts.net\n                    \u2193\n        Tailscale \u7f51\u7edc\uff08\u52a0\u5bc6\u96a7\u9053\uff09\n                    \u2193\n        VPS \u4e0a\u7684 Tailscale Serve \u670d\u52a1\n                    \u2193\n        \u8f6c\u53d1\u5230\u672c\u5730 18789 \u7aef\u53e3\uff08OpenClaw\uff09\n                    \u2193\n        OpenClaw Gateway \u5904\u7406\u8bf7\u6c42<\/pre>\n\n\n\n<p><strong>\u4f18\u52bf<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705&nbsp;<strong>\u81ea\u52a8HTTPS<\/strong>\uff1aTailscale\u63d0\u4f9b\u514d\u8d39SSL\u8bc1\u4e66<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u65e0\u9700\u7aef\u53e3\u53f7<\/strong>\uff1a\u4f7f\u7528\u6807\u51c6443\u7aef\u53e3<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u5b89\u5168\u52a0\u5bc6<\/strong>\uff1a\u6240\u6709\u6d41\u91cf\u7ecf\u8fc7Tailscale\u52a0\u5bc6<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u65e0\u9700\u5f00\u653e\u9632\u706b\u5899<\/strong>\uff1a\u901a\u8fc7Tailscale\u7f51\u7edc\u4f20\u8f93<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u914d\u7f6e\u4f18\u5148\u7ea7<\/h3>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">OPENCLAW_AUTH_PROFILE \u73af\u5883\u53d8\u91cf  &gt;  auth-profiles.json  &gt;  openclaw.json \u9ed8\u8ba4Key<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 \u9a8c\u8bc1\u8f6e\u8be2\u6548\u679c<\/h2>\n\n\n\n<p>bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em># \u8fde\u7eed\u53d1\u900110\u6b21\u8bf7\u6c42\uff0c\u89c2\u5bdfKey\u8f6e\u6362<\/em>\nfor i in {1..10}; do\n    echo \"=== \u8bf7\u6c42 $i ===\"\n    nvidia-chat \"OK\" | grep \"Key\"\n    sleep 1\ndone<\/pre>\n\n\n\n<p>\u9884\u671f\u8f93\u51fa\uff1a<\/p>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">=== \u8bf7\u6c42 1 ===\n\u2502  \ud83d\udd11 Key 1\/5: nvidia\n=== \u8bf7\u6c42 2 ===\n\u2502  \ud83d\udd11 Key 2\/5: nvidia-key2\n=== \u8bf7\u6c42 3 ===\n\u2502  \ud83d\udd11 Key 3\/5: nvidia-key3\n...\n=== \u8bf7\u6c42 6 ===\n\u2502  \ud83d\udd11 Key 1\/5: nvidia  (\u5faa\u73af\u56de\u6765)<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 \u9a8c\u8bc1Tailscale Serve<\/h2>\n\n\n\n<p>bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em># \u5728VPS\u4e0a\u67e5\u770bServe\u72b6\u6001<\/em>\ntailscale serve status\n\n<em># \u9884\u671f\u8f93\u51fa\uff1a<\/em>\n<em># https:\/\/x162-43-92-249.tail9c4209.ts.net\/ -&gt; http:\/\/127.0.0.1:18789<\/em>\n\n<em># \u5728\u53e6\u4e00\u53f0\u7535\u8111\u4e0a\u6d4b\u8bd5\u8bbf\u95ee\uff08\u65e0\u9700\u7aef\u53e3\uff09<\/em>\ncurl -v https:\/\/x162-43-92-249.tail9c4209.ts.net\/health\n<em># \u5e94\u8be5\u8fd4\u56de 200 OK<\/em><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a0\ufe0f \u6ce8\u610f\u4e8b\u9879<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Tailscale Serve \u8981\u70b9<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u9996\u6b21\u8fd0\u884c<\/strong>\uff1a<code>tailscale serve --bg 18789<\/code>&nbsp;\u9700\u8981\u5728VPS\u4e0a\u6267\u884c\u4e00\u6b21<\/li>\n\n\n\n<li><strong>\u81ea\u52a8HTTPS<\/strong>\uff1aTailscale\u4f1a\u81ea\u52a8\u7533\u8bf7\u548c\u7eed\u671fLet&#8217;s Encrypt\u8bc1\u4e66<\/li>\n\n\n\n<li><strong>\u540e\u53f0\u8fd0\u884c<\/strong>\uff1a<code>--bg<\/code>&nbsp;\u53c2\u6570\u8ba9Serve\u5728\u540e\u53f0\u6301\u7eed\u8fd0\u884c<\/li>\n\n\n\n<li><strong>\u91cd\u542f\u540e\u81ea\u52a8\u6062\u590d<\/strong>\uff1aTailscale Serve\u914d\u7f6e\u4f1a\u6301\u4e45\u5316<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b89\u5168\u6027\u8003\u8651<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u751f\u4ea7\u73af\u5883<\/strong>\uff1a\u5efa\u8bae\u8bbe\u7f6e&nbsp;<code>gateway.auth.mode token<\/code>&nbsp;\u5e76\u914d\u7f6e\u5177\u4f53&nbsp;<code>allowedOrigins<\/code><\/li>\n\n\n\n<li><strong>Tailscale\u7f51\u7edc<\/strong>\uff1a\u53ea\u6709\u52a0\u5165\u4f60\u7684Tailscale\u7f51\u7edc\u7684\u8bbe\u5907\u624d\u80fd\u8bbf\u95ee<\/li>\n\n\n\n<li><strong>API Key\u5b89\u5168<\/strong>\uff1a\u4e0d\u8981\u5c06\u5305\u542b\u771f\u5b9eKey\u7684\u914d\u7f6e\u6587\u4ef6\u63d0\u4ea4\u5230\u4ee3\u7801\u4ed3\u5e93<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u6545\u969c\u6392\u9664<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u95ee\u9898<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u89e3\u51b3\u65b9\u6848<\/th><\/tr><\/thead><tbody><tr><td>403\u9519\u8bef<\/td><td>\u68c0\u67e5&nbsp;<code>allowedOrigins<\/code>&nbsp;\u662f\u5426\u5305\u542b&nbsp;<code>*<\/code>&nbsp;\u6216\u5177\u4f53\u57df\u540d<\/td><\/tr><tr><td>Gateway\u542f\u52a8\u5931\u8d25<\/td><td><code>openclaw doctor --fix<\/code>&nbsp;\u4fee\u590d\u914d\u7f6e<\/td><\/tr><tr><td>Key\u6d4b\u8bd5\u5931\u8d25<\/td><td>\u68c0\u67e5API Key\u662f\u5426\u6709\u6548\u3001\u4f59\u989d\u662f\u5426\u5145\u8db3<\/td><\/tr><tr><td>Tailscale Serve\u65e0\u6548<\/td><td><code>tailscale serve status<\/code>&nbsp;\u67e5\u770b\u72b6\u6001\uff0c\u91cd\u65b0\u8fd0\u884c&nbsp;<code>tailscale serve --bg 18789<\/code><\/td><\/tr><tr><td>HTTPS\u8bc1\u4e66\u95ee\u9898<\/td><td>Tailscale\u81ea\u52a8\u5904\u7406\uff0c\u7b49\u5f85\u51e0\u5206\u949f\u6216\u91cd\u542ftailscale<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u5404\u670d\u52a1\u5546\u901f\u7387\u9650\u5236<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u670d\u52a1\u5546<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5355Key\u9650\u5236<\/th><th class=\"has-text-align-left\" data-align=\"left\">5 Key\u8f6e\u8be2\u7406\u8bba\u503c<\/th><\/tr><\/thead><tbody><tr><td>NVIDIA<\/td><td>40 RPM<\/td><td>200 RPM<\/td><\/tr><tr><td>Groq<\/td><td>30 RPM<\/td><td>150 RPM<\/td><\/tr><tr><td>OpenRouter<\/td><td>20 RPM<\/td><td>100 RPM<\/td><\/tr><tr><td>\u667a\u8c31<\/td><td>\u89c6\u5957\u9910\u800c\u5b9a<\/td><td>5\u500d\u63d0\u5347<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u65b9\u6848\u4f18\u52bf\u603b\u7ed3<\/h2>\n\n\n\n<p>\u901a\u8fc7\u672c\u65b9\u6848\uff0c\u4f60\u53ef\u4ee5\u83b7\u5f97\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>\u2705&nbsp;<strong>\u7a81\u7834API\u9650\u6d41<\/strong>\uff1a5\u4e2aKey\u81ea\u52a8\u8f6e\u8be2\uff0c\u8bf7\u6c42\u80fd\u529b\u63d0\u53475\u500d<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>Control UI\u6b63\u5e38\u5de5\u4f5c<\/strong>\uff1a\u4e3b\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u9ed8\u8ba4Key\u786e\u4fddWeb\u754c\u9762\u53ef\u7528<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u7b80\u5355\u6613\u7528<\/strong>\uff1a<code>nvidia-chat<\/code>&nbsp;\u4e00\u952e\u547d\u4ee4\uff0c\u81ea\u52a8\u5904\u7406Key\u8f6e\u6362<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>Tailscale Serve\u96c6\u6210<\/strong>\uff1a\u5b9e\u73b0<strong>\u65e0\u7aef\u53e3HTTPS\u8bbf\u95ee<\/strong>\uff0c\u4f53\u9a8c\u5b8c\u7f8e<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u81ea\u52a8HTTPS\u52a0\u5bc6<\/strong>\uff1a\u6240\u6709\u6d41\u91cf\u901a\u8fc7Tailscale\u52a0\u5bc6\u4f20\u8f93<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u65e0\u9700\u5f00\u653e\u9632\u706b\u5899<\/strong>\uff1a\u5229\u7528Tailscale\u5b89\u5168\u7f51\u7edc<\/li>\n\n\n\n<li>\u2705&nbsp;<strong>\u6613\u4e8e\u6269\u5c55<\/strong>\uff1a\u53ef\u8f7b\u677e\u4fee\u6539\u811a\u672c\u652f\u6301\u5176\u4ed6\u670d\u52a1\u5546\uff08Groq\u3001OpenRouter\u7b49\uff09<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcda \u53c2\u8003\u8d44\u6599<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OpenClaw\u5b98\u65b9\u6587\u6863\uff1a<a href=\"https:\/\/docs.openclaw.ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.openclaw.ai<\/a><\/li>\n\n\n\n<li>NVIDIA API\u6587\u6863\uff1a<a href=\"https:\/\/build.nvidia.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/build.nvidia.com<\/a><\/li>\n\n\n\n<li>Tailscale\u6587\u6863\uff1a<a href=\"https:\/\/tailscale.com\/kb\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tailscale.com\/kb<\/a><\/li>\n\n\n\n<li>Tailscale Serve\u4ecb\u7ecd\uff1a<a href=\"https:\/\/tailscale.com\/kb\/1312\/serve\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tailscale.com\/kb\/1312\/serve<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u5728OpenClaw 3.8\u4e2d\u914d\u7f6e\u591a\u4e2aNVIDIA API Key\u5b9e\u73b0\u81ea\u52a8\u8f6e\u8be2\uff0c\u89e3\u51b3API\u9650\u6d41(429)\u95ee\u9898\uff0c\u5e76\u786e\u4fddControl UI\u901a\u8fc7Tailscale Serve\u5b9e\u73b0\u65e0\u7aef\u53e3\u8bbf\u95ee\u3002\u5305\u542b\u5b8c\u6574\u7684\u811a\u672c\u548c\u914d\u7f6e\u8bf4\u660e\u3002<\/p>\n","protected":false},"author":1,"featured_media":1100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[128,3,4],"tags":[],"class_list":["post-1097","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-business","category-memo"],"_links":{"self":[{"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/posts\/1097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1097"}],"version-history":[{"count":2,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/posts\/1097\/revisions"}],"predecessor-version":[{"id":1099,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/posts\/1097\/revisions\/1099"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=\/wp\/v2\/media\/1100"}],"wp:attachment":[{"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/openclaw.helloai.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}