# 在 Droid 和 Pi 中使用 4AICode

Droid 和 Pi 都按 OpenAI-compatible 方式接入 4AICode。

- Base URL：`https://relay.4aicode.net/v1`
- API key：[仪表盘 → 管理 Tokens](https://4aicode.com/tokens) 创建的 `sk-4ai-...`
- 推荐模型：`gpt-5.6-terra`；旗舰任务可使用 `gpt-6-astra`，轻量任务可使用 `gpt-5.4-mini` 或 `gemini-3.8-flash`

## Droid

Droid 是 Factory 的命令行编码 Agent。官方文档见 [Factory BYOK](https://docs.factory.ai/cli/byok/overview)。

先把 4AICode token 放进环境变量：

```bash
export RELAY4AI_API_KEY=sk-4ai-xxxxxxxxxxxxxxxx
```

编辑 `~/.factory/settings.json`：

```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 模式示例：

```bash
droid exec --model "custom:4AICode-GPT-5.6-Terra-0" "summarize this repository"
```

需要旗舰模型时显式选择 Sol：

```bash
droid exec --model "custom:4AICode-GPT-5.6-Sol-1" "refactor this repository"
```

轻量模型对应：

```bash
droid exec --model "custom:4AICode-GPT-5.4-Mini-3" "fix typos in docs"
```

使用 Gemini 3.8 Flash：

```bash
droid exec --model "custom:4AICode-Gemini-3.8-Flash-4" "analyze this repository"
```

## Pi

Pi 是 [pi.dev](https://pi.dev/) 的命令行编码 Agent。自定义模型配置文件是 `~/.pi/agent/models.json`，官方文档见 [Pi Custom Models](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/models.md)。

先把 4AICode token 放进环境变量：

```bash
export RELAY4AI_API_KEY=sk-4ai-xxxxxxxxxxxxxxxx
```

编辑 `~/.pi/agent/models.json`。Pi 的 `apiKey` 引用环境变量时需要加 `$` 前缀，写成 `$RELAY4AI_API_KEY`：

```json
{
  "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
        }
      ]
    }
  }
}
```

运行：

```bash
pi --provider 4aicode --model gpt-5.6-terra
```

在 Pi 交互界面里也可以用 `/model` 切换到 `4AICode GPT 5.6 Terra`。

需要旗舰模型时显式选择 Sol：

```bash
pi --provider 4aicode --model gpt-5.6-sol
```

使用 Astra：

```bash
pi --provider 4aicode --model gpt-6-astra
```

使用 Gemini 3.8 Flash：

```bash
pi --provider 4aicode --model gemini-3.8-flash
```

## 验证

配置完成后发一条 `ping`。再到 [仪表盘 → 使用记录](https://4aicode.com/dashboard) 看调用记录，能看到对应模型就配置成功。

使用 Gemini 3.8 Flash 验证：

```bash
pi --provider 4aicode --model gemini-3.8-flash "ping"
```
