我用上openclaw了!

先看效果:


使用huggingface和英伟达白嫖OpenClaw
1.打开 https://build.nvidia.com/ 申请API密钥,复制API密钥,调用地址,模型ID到txt文稿。
2.打开huggingface,新建 Docker space。
3.添加文件,文件名为Dockerfile。

# 核心镜像选择
FROM node:22-slim

# 1. 基础依赖补全
RUN apt-get update && apt-get install -y --no-install-recommends \
    git openssh-client build-essential python3 python3-pip \
    g++ make ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 2. 安装 HF 数据交互工具
RUN pip3 install --no-cache-dir huggingface_hub --break-system-packages

# 3. 构建环境与 Git 协议优化
RUN update-ca-certificates && \
    git config --global http.sslVerify false && \
    git config --global url."https://github.com/".insteadOf ssh://[email protected]/

# 4. OpenClaw 核心安装
RUN npm install -g openclaw@latest --unsafe-perm

# 5. 环境变量预设
ENV PORT=7860 \
    OPENCLAW_GATEWAY_MODE=local \
    HOME=/root

# 6. Python 同步引擎 (sync.py)
RUN echo 'import os, sys, tarfile\n\
from huggingface_hub import HfApi, hf_hub_download\n\
from datetime import datetime, timedelta\n\
api = HfApi()\n\
repo_id = os.getenv("HF_DATASET")\n\
token = os.getenv("HF_TOKEN")\n\
def restore():\n\
    try:\n\
        files = api.list_repo_files(repo_id=repo_id, repo_type="dataset", token=token)\n\
        now = datetime.now()\n\
        for i in range(5):\n\
            day = (now - timedelta(days=i)).strftime("%Y-%m-%d")\n\
            name = f"backup_{day}.tar.gz"\n\
            if name in files:\n\
                path = hf_hub_download(repo_id=repo_id, filename=name, repo_type="dataset", token=token)\n\
                with tarfile.open(path, "r:gz") as tar: tar.extractall(path="/root/.openclaw/")\n\
                print(f"Success: Restored from {name}")\n\
                return True\n\
    except Exception as e: print(f"Restore Error: {e}")\n\
def backup():\n\
    try:\n\
        day = datetime.now().strftime("%Y-%m-%d")\n\
        name = f"backup_{day}.tar.gz"\n\
        with tarfile.open(name, "w:gz") as tar:\n\
            if os.path.exists("/root/.openclaw/sessions"): tar.add("/root/.openclaw/sessions", arcname="sessions")\n\
            tar.add("/root/.openclaw/openclaw.json", arcname="openclaw.json")\n\
        api.upload_file(path_or_fileobj=name, path_in_repo=name, repo_id=repo_id, repo_type="dataset", token=token)\n\
        print(f"Backup {name} Success.")\n\
    except Exception as e: print(f"Backup Error: {e}")\n\
if __name__ == "__main__":\n\
    if len(sys.argv) > 1 and sys.argv[1] == "backup": backup()\n\
    else: restore()' > /usr/local/bin/sync.py

# 7. 启动控制逻辑(NVIDIA 配置版)
RUN echo "#!/bin/bash\n\
set -e\n\
mkdir -p /root/.openclaw/sessions\n\
\n\
# 阶段 3: 执行启动前恢复\n\
python3 /usr/local/bin/sync.py restore\n\
\n\
# 处理地址逻辑\n\
CLEAN_BASE=\$(echo \"\$OPENAI_API_BASE\" | sed \"s|/chat/completions||g\" | sed \"s|/v1/|/v1|g\" | sed \"s|/v1\$|/v1|g\")\n\
\n\
# 阶段 2: 生成网关与模型配置(NVIDIA 版)\n\
cat > /root/.openclaw/openclaw.json <<EOF\n\
{\n\
  \"models\": {\n\
    \"providers\": {\n\
      \"nvidia\": {\n\
        \"baseUrl\": \"\$CLEAN_BASE\", \n\
        \"apiKey\": \"\$OPENAI_API_KEY\", \n\
        \"api\": \"openai-completions\",\n\
        \"models\": [{ \n\
          \"id\": \"\$MODEL\", \n\
          \"name\": \"Kimi K2.5\", \n\
          \"contextWindow\": 256000 \n\
        }]\n\
      }\n\
    }\n\
  },\n\
  \"agents\": { \n\
    \"defaults\": { \n\
      \"model\": { \n\
        \"primary\": \"nvidia/\$MODEL\" \n\
      } \n\
    } \n\
  },\n\
  \"gateway\": {\n\
    \"mode\": \"local\", \n\
    \"bind\": \"lan\", \n\
    \"port\": \$PORT,\n\
    \"trustedProxies\": [\"0.0.0.0/0\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"],\n\
    \"auth\": { \n\
      \"mode\": \"token\", \n\
      \"token\": \"\$OPENCLAW_GATEWAY_TOKEN\" \n\
    },\n\
    \"remote\": { \n\
      \"token\": \"\$OPENCLAW_GATEWAY_TOKEN\" \n\
    },\n\
    \"controlUi\": { \n\
      \"allowInsecureAuth\": true,\n\
      \"dangerouslyAllowHostHeaderOriginFallback\": true,\n\
      \"dangerouslyDisableDeviceAuth\": true \n\
    }\n\
  }\n\
}\n\
EOF\n\
\n\
# 增量备份循环 (每 6 小时)\n\
(while true; do sleep 21600; python3 /usr/local/bin/sync.py backup; done) &\n\
\n\
openclaw doctor --fix\n\
exec openclaw gateway run --port \$PORT\n\
" > /usr/local/bin/start-openclaw && chmod +x /usr/local/bin/start-openclaw

EXPOSE 7860
CMD ["/usr/local/bin/start-openclaw"]

添加环境变量:OPENAI_API_BASE(调用地址)( https://integrate.api.nvidia.com/v1/chat/completions

MODEL(模型ID)(我的是moonshotai/kimi-k2.5)

HF_TOKEN(你的hf token,没有就创建,权限为写 一定是私密变量)

OPENAI_API_KEY(你的英伟达token 一定是私密变量)

OPENCLAW_GATEWAY_TOKEN(你的OpenClaw访问密码)

创建datasets,名字是openclaw-data。

再添加一个环境变量: HF_DATASET(你的用户名/openclaw-data)

部署完访问链接:你的用户名-你的space名.hf.space

重要:打开 cron-job.org 定时每六小时自动访问一次访问链接,避免休眠!

收费一个赞:+1:t2:

6 个赞

顺便提一句,我爸的Kimiclaw连个无头浏览器都装不了,还在忽悠说下载了百分之17一直下载失败,骗鬼呢!我这儿几秒钟装完

看到的教我怎么用,常用命令这些的。我还不会

看文档吧 或者命令行里面 /help

哎呀我是没想到 huggingface 居然能免费到这个级别

你还没教我到底怎么用的,我都不会用,只是跟风下载了一个。

Generate API Key时需要验证手机号,我没有频繁操作,为什么还是显示我请求过多?一直验证不了

用这玩意是不是要消耗很多token?

我没有这个问题,你过个时间段/换个节点再试试。
看到点了按钮没反应,不要频繁点按。按一下就再等等。

这个的限制是每分钟40次。还有就是是要排队。你可以无限使用人家的GPU,无限的token。

用龙虾的奥义就是,不懂的都可以问他:joy:

安装成功了,但是为什么总是 hf.space 拒绝了我们的连接请求。openclaw里显示已断开与网关的连接。

打开部署后的的玩意儿了以后,如果输了密码再等几秒,就可以用了。

如果你等了几秒连上了,过了一段时间断了,这种问题把截图发我。

如果没输密码的话,让他连接个毛线?

初步试了一下,部署完成之后, 你的用户名-你的space名.hf.space 页面一直404。等待后也是404

另外,请问

1 OPENAI_API_BASE 是 https://integrate.api.nvidia.com/v1/chat/completions 还是 https://integrate.api.nvidia.com/v1

2 创建datasets,名字必须是openclaw-data 吗?

谢谢

输入密码连接!

OPENAI_API_BASE是https://integrate.api.nvidia.com/v1/chat/completions
datasets名字不用必须是openclaw-data

404肯定是你的用户名或者space名打错了。举个例子:wangjb可能打出wangnb,my-openclaw可能打出myopenclaw

wangjb-my-openclaw.hf.space就打出了wangnb-myopenclaw.hf.space

但是现在有个新的问题,要装skill时总是提示我现在的写入权限只能在工作区 /root/.openclaw/workspace/。你需要手动复制配置出去,或者开放我的写入权限。huggingface的文件目录怎么进去呢,找不到入口

谢谢,成功啦

那些代码里哪行要改,都找不到地方!能不能一步一步不跳步来

请问你是怎么解决的?