# Droid

出典: https://docs.aicentos.com/ja/clients/droid

Language: ja

> Factory Droid で aicentos を使う —— settings.json でカスタムモデルを登録（BYOK）

Droid は Factory がリリースしたコマンドラインのコーディングエージェントで、BYOK に対応しています。`~/.factory/settings.json` にカスタムモデルを登録し、`baseUrl` を aicentos に向けるだけで使えます。Droid はモデルのコンテキストウィンドウが最低 64k 必要なので、選定時に注意してください。

## 準備

まずコンソールの「API キー」ページで、Droid 専用のキーを作成してください（名前は `droid` のようにすると使用量の追跡に便利です）：

* コンソール：[https://aicentos.com](https://aicentos.com)
* キーの作成：[https://aicentos.com/keys](https://aicentos.com/keys)
* 残高不足のときのチャージ：[https://aicentos.com/wallet](https://aicentos.com/wallet)

## 設定値

| 項目       | 値                             |
| -------- | ----------------------------- |
| 設定ファイル   | `~/.factory/settings.json`    |
| provider | `generic-chat-completion-api` |
| baseUrl  | `https://aicentos.com/v1`     |
| apiKey   | `${AICENTOS_API_KEY}`         |
| モデル      | コンソール「モデル広場」のモデル名             |

## 設定手順

### 1. API Key 環境変数の設定

```bash
export AICENTOS_API_KEY="sk-あなたの-API-Key"
```

`~/.zshrc` または `~/.bashrc` に書き込めば永続化できます。

### 2. settings.json の編集

`~/.factory/settings.json` を編集し、`customModels` 配列を追加します：

```json
{
  "customModels": [
    {
      "model": "gpt-4o",
      "displayName": "GPT-4o (aicentos)",
      "baseUrl": "https://aicentos.com/v1",
      "apiKey": "${AICENTOS_API_KEY}",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 8192
    }
  ]
}
```

重要なフィールド：

| フィールド         | 説明                                                     |
| ------------- | ------------------------------------------------------ |
| `model`       | エンドポイントに実際に送るモデル ID。コンソール「モデル広場」と一致させてください             |
| `displayName` | モデルセレクターに表示される名前。カスタマイズできます                            |
| `baseUrl`     | API アドレス。`/v1` 付きを推奨します                                |
| `apiKey`      | `${VAR_NAME}` の展開に対応しています                              |
| `provider`    | `anthropic` / `openai` / `generic-chat-completion-api` |

### 3. モデルの選択

`droid` を起動したら `/model` を実行し、先ほど登録したモデルを選択します。**設定を変更した後は、新しいターミナルで `droid` を再起動する必要があります**。そうしてはじめてファイルが再読込されます。

## テスト

モデルを選んだら、簡単なリクエストを 1 つ送ります：

```
1+1 はいくつですか？一文で答えてください
```

正常に返れば接続成功です。

## 注意事項

* **`provider` には `generic-chat-completion-api` を指定することをおすすめします**。OpenAI Chat Completions プロトコルを使い、ほとんどの BYOK シナリオで正しい選択になります。`openai` を指定すると Responses API を使いますし、一部のゲートウェイではこの値が `base_url` を無視して直接 `api.openai.com` に向かいます。`anthropic` を指定すると `/v1/messages` を使います。
* **先に環境変数を整理してください**。shell で `ANTHROPIC_AUTH_TOKEN`、`ANTHROPIC_BASE_URL`、`ANTHROPIC_API_KEY` のいずれかを export していると、設定ファイルが上書きされ、リクエストが設定したゲートウェイを経由しなくなります。接続前にこれらの変数を `unset` しておくことをおすすめします。
* Droid は `~/.factory/settings.json` と旧形式の `~/.factory/config.json` を両方読み込み、前者が優先されます。旧形式のフィールド名はスネークケースの `custom_models` / `model_display_name` / `base_url` / `api_key` で、`${VAR_NAME}` の展開には**対応していません**。`settings.json` に統一することをおすすめします。
* モデルのコンテキストウィンドウは最低 64k 必要です。小さすぎるローカルモデルは動作が異常になることがあります。
* Factory がベンチマークを行っているのは公式の Anthropic / OpenAI インターフェースのみで、カスタムモデルの互換性は保証されません。サブエージェント（subagent）がときどき Anthropic 公式インターフェースにフォールバックすることが知られています。
* 切り分けの順序：`/model` にモデルが見えるか → 環境変数が ANTHROPIC\_\* に上書きされていないか → baseUrl に `/v1` が付いているか → 残高は十分か。

## 関連リンク

* BYOK 公式ドキュメント：[https://docs.factory.ai/model-independence/byok](https://docs.factory.ai/model-independence/byok)