首先是搭建中转程序,我这里使用的是 ccload ,在ccload新建渠道,配置如下,router/respond-with-actual-model-identity
然后修改好脚本内容
#!/usr/bin/env bash
set -e
# ===== 修改成你的真实值 =====
export XIAO_TIAN_LLM_API_BASE="https://example.com/v1"
export XIAO_TIAN_LLM_KEY="[REDACTED]"
# ==========================
APP_DIR="$HOME"
LOCK_FILE="$APP_DIR/openclaw-gateway-restart.lock"
STAMP_FILE="$APP_DIR/openclaw-gateway-restart.stamp"
LOG_FILE="$APP_DIR/openclaw-gateway-restart.log"
# 避免并发运行
exec 9>"$LOCK_FILE"
if ! flock -n 9; then
echo "$(date '+%F %T') hook already running, exit" >> "$LOG_FILE"
exit 0
fi
# 避免重启 gateway 后再次触发 hook 造成循环
# 120 秒内只允许执行一次
if [ -f "$STAMP_FILE" ]; then
now="$(date +%s)"
last="$(cat "$STAMP_FILE" 2>/dev/null || echo 0)"
if [ $((now - last)) -lt 120 ]; then
echo "$(date '+%F %T') recently restarted, skip" >> "$LOG_FILE"
exit 0
fi
fi
date +%s > "$STAMP_FILE"
echo "$(date '+%F %T') restarting openclaw gateway..." >> "$LOG_FILE"
pkill -f openclaw-gateway || true
sleep 1
nohup node /app/openclaw.mjs gateway --allow-unconfigured >> "$LOG_FILE" 2>&1 &
echo "$(date '+%F %T') gateway started, pid=$!" >> "$LOG_FILE"
exit 0
在网盘的ai界面依次点击
把脚本上传到网盘,我这里命名为start.sh
之后把下面这段话发给ai
你把网盘中start.sh下载到/home/node,赋予执行权限,
1. 在 /.openclaw/hooks/ 下建一个目录,放 HOOK.md(监听 gateway:startup)和 handler.ts
2. handler.ts 里用 execSync 调用/home/node/start.sh
3. openclaw hooks enable startup
然后重启容器,之后和它对话,如果在ccload的日志中看见有调用且自身的token没有消耗即为成功。
注意两次重启间隔如果小于2分钟,先让它删除掉
openclaw-gateway-restart.lock
openclaw-gateway-restart.stamp
openclaw-gateway-restart.log
这三个文件
除了改模型,你可以在脚本里放任何你想要运行的程序。另外有佬友发现,重置容器只会删除/home/node/.openclaw/下的文件。
不知道移动下一步会有什么对策,目前看日志里和它对话时会携带token,然后有一个鉴权失败,可能会从这方面入手,这玩意感觉折腾快到头了,好像有效期都已经被改成一个月了,反正我是不会再续费了。