OpenClaw

前提条件

项目
OpenClaw 版本2026.6.11
配置文件~/.openclaw/openclaw.json
Provider idjoytoken
模型名joytoken/auto
JoyToken Base URL环境 选择 JOY_TOKEN_OPENAI_BASE_URL
API Key 环境变量JOY_TOKEN_API_KEY

第 1 步:安装

$npm install -g openclaw@2026.6.11
$openclaw --version

第 2 步:写入 API Key

$export JOY_TOKEN_API_KEY="jt_xxx"
$export JOY_TOKEN_OPENAI_BASE_URL="https://api-dev.joytokens.ai/openai/v1"

长期使用时写入 ~/.zshrc

持久写入 ~/.zshrc
$JOY_TOKEN_API_KEY="jt_xxx"
$touch ~/.zshrc
$if grep -q '^export JOY_TOKEN_API_KEY=' ~/.zshrc; then
$ sed -i.bak "s|^export JOY_TOKEN_API_KEY=.*|export JOY_TOKEN_API_KEY=\"${JOY_TOKEN_API_KEY}\"|" ~/.zshrc
$else
$ printf '\nexport JOY_TOKEN_API_KEY="%s"\n' "$JOY_TOKEN_API_KEY" >> ~/.zshrc
$fi
$export JOY_TOKEN_API_KEY

第 3 步:注册 provider

$openclaw onboard \
> --non-interactive \
> --accept-risk \
> --auth-choice custom-api-key \
> --custom-provider-id joytoken \
> --custom-base-url "$JOY_TOKEN_OPENAI_BASE_URL" \
> --custom-compatibility openai \
> --custom-model-id auto \
> --custom-api-key "$JOY_TOKEN_API_KEY" \
> --skip-channels \
> --skip-daemon \
> --skip-skills \
> --skip-search \
> --skip-ui \
> --skip-health

第 4 步:确认配置

$cat ~/.openclaw/openclaw.json

配置里应包含 JOY_TOKEN_OPENAI_BASE_URL 对应的具体值:

~/.openclaw/openclaw.json
1{
2 "models": {
3 "providers": {
4 "joytoken": {
5 "baseUrl": "<JOY_TOKEN_OPENAI_BASE_URL>",
6 "api": "openai-completions"
7 }
8 }
9 },
10 "agents": {
11 "defaults": {
12 "model": {
13 "primary": "joytoken/auto"
14 }
15 }
16 }
17}

第 5 步:验证

$openclaw models status

输出里应看到:

joytoken/auto

发起一次调用:

$openclaw infer model run \
> --local \
> --model joytoken/auto \
> --prompt "Reply with exactly: pong" \
> --json

成功时,返回内容包含 pong

JoyToken 侧检查

位置应看到
Logs请求路径是 /openai/v1/chat/completions
API Key请求归因到 OpenClaw 使用的 Key
Usage本次调用产生 tokens 和 credits
Model请求模型是 auto

常见错误

错误处理方式
找不到 custom-api-key 参数安装 openclaw@2026.6.11
默认模型不是 joytoken/auto重新执行 openclaw onboard
401 Unauthorized重新设置 JOY_TOKEN_API_KEY
JoyToken 没有日志检查 ~/.openclaw/openclaw.jsonbaseUrl 和默认模型

相关资源