Droid 和 Pi 都按 OpenAI-compatible 方式接入 4AICode。
- Base URL:
https://relay.4aicode.net/v1 - API key:仪表盘 → 管理 Tokens 创建的
sk-4ai-... - 推荐模型:
gpt-5.6-terra;旗舰任务可使用gpt-6-astra,轻量任务可使用gpt-5.4-mini或gemini-3.8-flash
Droid
Droid 是 Factory 的命令行编码 Agent。官方文档见 Factory BYOK。
先把 4AICode token 放进环境变量:
export RELAY4AI_API_KEY=sk-4ai-xxxxxxxxxxxxxxxx
编辑 ~/.factory/settings.json:
{
"customModels": [
{
"model": "4aicode-gpt-5.6-terra",
"displayName": "4AICode GPT 5.6 Terra",
"baseUrl": "https://relay.4aicode.net/v1",
"apiKey": "${RELAY4AI_API_KEY}",
"provider": "generic-chat-completion-api",
"maxOutputTokens": 16384,
"index": 0,
"id": "custom:4AICode-GPT-5.6-Terra-0"
},
{
"model": "4aicode-gpt-5.6-sol",
"displayName": "4AICode GPT 5.6 Sol",
"baseUrl": "https://relay.4aicode.net/v1",
"apiKey": "${RELAY4AI_API_KEY}",
"provider": "generic-chat-completion-api",
"maxOutputTokens": 16384,
"index": 1,
"id": "custom:4AICode-GPT-5.6-Sol-1"
},
{
"model": "4aicode-gpt-6-astra",
"displayName": "4AICode GPT 6 Astra",
"baseUrl": "https://relay.4aicode.net/v1",
"apiKey": "${RELAY4AI_API_KEY}",
"provider": "generic-chat-completion-api",
"maxOutputTokens": 16384,
"index": 2,
"id": "custom:4AICode-GPT-6-Astra-2"
},
{
"model": "4aicode-gpt-5.4-mini",
"displayName": "4AICode GPT 5.4 Mini",
"baseUrl": "https://relay.4aicode.net/v1",
"apiKey": "${RELAY4AI_API_KEY}",
"provider": "generic-chat-completion-api",
"maxOutputTokens": 16384,
"index": 3,
"id": "custom:4AICode-GPT-5.4-Mini-3"
},
{
"model": "gemini-3.8-flash",
"displayName": "4AICode Gemini 3.8 Flash",
"baseUrl": "https://relay.4aicode.net/v1",
"apiKey": "${RELAY4AI_API_KEY}",
"provider": "generic-chat-completion-api",
"maxOutputTokens": 16384,
"index": 4,
"id": "custom:4AICode-Gemini-3.8-Flash-4"
}
],
"model": "custom:4AICode-GPT-5.6-Terra-0",
"sessionDefaultSettings": {
"model": "custom:4AICode-GPT-5.6-Terra-0"
}
}
保存后重开 Droid,交互模式里运行 droid,用 /model 选择 4AICode GPT 5.6 Terra。
这里故意使用 4aicode-gpt-* 别名,而不是直接写 gpt-5.6-terra。这样 Droid 会按通用 Chat Completions 模型处理,4AICode 网关再把别名映射到真实的 Codex 模型,避免启动时触发 GPT-5 / Responses API 的 provider 校验提示。
Headless 模式示例:
droid exec --model "custom:4AICode-GPT-5.6-Terra-0" "summarize this repository"
需要旗舰模型时显式选择 Sol:
droid exec --model "custom:4AICode-GPT-5.6-Sol-1" "refactor this repository"
轻量模型对应:
droid exec --model "custom:4AICode-GPT-5.4-Mini-3" "fix typos in docs"
使用 Gemini 3.8 Flash:
droid exec --model "custom:4AICode-Gemini-3.8-Flash-4" "analyze this repository"
Pi
Pi 是 pi.dev 的命令行编码 Agent。自定义模型配置文件是 ~/.pi/agent/models.json,官方文档见 Pi Custom Models。
先把 4AICode token 放进环境变量:
export RELAY4AI_API_KEY=sk-4ai-xxxxxxxxxxxxxxxx
编辑 ~/.pi/agent/models.json。Pi 的 apiKey 引用环境变量时需要加 $ 前缀,写成 $RELAY4AI_API_KEY:
{
"providers": {
"4aicode": {
"baseUrl": "https://relay.4aicode.net/v1",
"api": "openai-responses",
"apiKey": "$RELAY4AI_API_KEY",
"authHeader": true,
"models": [
{
"id": "gpt-5.6-terra",
"name": "4AICode GPT 5.6 Terra",
"reasoning": true,
"maxTokens": 16384
},
{
"id": "gpt-5.6-sol",
"name": "4AICode GPT 5.6 Sol",
"reasoning": true,
"maxTokens": 16384
},
{
"id": "gpt-6-astra",
"name": "4AICode GPT 6 Astra",
"reasoning": true,
"maxTokens": 16384
},
{
"id": "gpt-5.4-mini",
"name": "4AICode GPT 5.4 Mini",
"reasoning": true,
"maxTokens": 16384
},
{
"id": "gemini-3.8-flash",
"name": "4AICode Gemini 3.8 Flash",
"reasoning": false,
"maxTokens": 16384
}
]
}
}
}
运行:
pi --provider 4aicode --model gpt-5.6-terra
在 Pi 交互界面里也可以用 /model 切换到 4AICode GPT 5.6 Terra。
需要旗舰模型时显式选择 Sol:
pi --provider 4aicode --model gpt-5.6-sol
使用 Astra:
pi --provider 4aicode --model gpt-6-astra
使用 Gemini 3.8 Flash:
pi --provider 4aicode --model gemini-3.8-flash
验证
配置完成后发一条 ping。再到 仪表盘 → 使用记录 看调用记录,能看到对应模型就配置成功。
使用 Gemini 3.8 Flash 验证:
pi --provider 4aicode --model gemini-3.8-flash "ping"