# ACP 接続概説

> **最終確認**：2026-09-18 · 📄 公式ドキュメント準拠（[agentclientprotocol.com](https://agentclientprotocol.com) を同日確認）

## 概要

| 項目 | 内容 |
|---|---|
| 利用できるモデル | マウントする agent 次第：Claude Agent / Claude Code（Anthropic 系統）✅ · GPT ✅（Codex 系 agent）· 中国系モデル ✅ · Gemini は agent 依存 |
| プロトコルと Base URL | 設定は **agent 本体**側：Anthropic 系統は `https://api.qcode.cc/api`（Claude 系 agent） |
| 設定場所 | agent の環境変数／自身の設定ファイル。ホストは起動するだけ |
| 公式ドキュメント | [Agent Client Protocol](https://agentclientprotocol.com)
**Agent Client Protocol（ACP）** は、エディタと AI agent の通信を分離するオープン標準です —— **言語サーバーにおける LSP のような位置づけ**です。ACP を話せるエディタは、ACP を話せる任意の agent を、個別実装なしにホストできます。

QCode の利用者にとっては、非常に実用的な結論が 1 つあります：

> 🔑 **agent 本体（例：Claude Code CLI）を QCode に接続すれば、ホスト側は自動的に追随します。**
> ACP ホストは agent を**子プロセス**として起動するため、環境変数を継承します。
> `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN` を設定すれば、Zed・Devin Desktop・JetBrains の
> いずれのセッションも QCode を経由します。エディタごとに設定し直す必要はありません。

## ACP に対応するホスト

| ホスト | 説明 | 当サイトの文書 |
|------|------|---------|
| Zed | ネイティブ対応。agent panel からセッションを開始 | [Zed 編集器接続](/docs/ide/zed) |
| Devin Desktop（旧 Windsurf） | 2026-06-02 から対応。Agent Command Center 内 | [Devin Desktop 接続](/docs/ide/devin-desktop) |
| JetBrains 系 | ACP プラグイン経由 | [JetBrains IDE](/docs/ide/jetbrains) |

## ACP を話す agent

代表的なものは **Claude Code**、**Codex CLI**、**OpenCode**、および ACP を自前実装した agent です。ホストごとに adapter と起動コマンドが異なるため、**正確なコマンドはホストの文書に従ってください**。

## 設定：1 回設定すればどこでも有効

### Claude Code（Anthropic レッグ）

```bash
export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_あなたのQCodeキー"
```

`~/.zshrc` / `~/.bashrc` に書けば永続化します。中国本土からは `https://asia.qcode.cc/api` を使用。

> `~/.claude/settings.json` の `env` ブロックに書いても同じ効果です。
> 詳細は [環境変数の設定](/docs/getting-started/environment)。

### Codex CLI（OpenAI Responses レッグ）

Codex は TOML 設定で、`base_url` は `/openai` まで。[Codex 完全ガイド](/docs/ide/codex) を参照。

## 🔴 よくある落とし穴：GUI 起動のエディタはシェルの環境変数を読まない

macOS / Linux で Dock やランチャー、デスクトップアイコンから起動したエディタは `~/.zshrc` を**読みません**。症状は「ターミナルの `claude` は QCode に繋がるのに、エディタ内の ACP セッションは認証に失敗する」です。

対処は 2 つ：

1. **ターミナルからエディタを起動する**（例：`zed .`）。現在のシェル環境を継承します
2. **シェルの profile ではなく agent 自身の設定ファイルに書く**
   （Claude Code なら `~/.claude/settings.json` の `env` ブロック）

起動方法に依存しない 2 の方が堅実です。

## QCode に到達しているかの確認

```bash
KEY="cr_あなたのQCodeキー"
curl -s -o /dev/null -w '%{http_code}\n' -X POST https://api.qcode.cc/api/v1/messages \
  -H "x-api-key: $KEY" -H "anthropic-version: 2023-06-01"
# 400 = パスもキーも OK（ボディ未指定は想定内）；401 = キーの問題
```

エンドポイント側が正常と分かったうえでホスト側が失敗するなら、原因は **ホストがどう agent を起動しているか**（多くは上記の環境変数の罠）であり、QCode 側ではありません。

QCode 経由のリクエストはすべて [probe.qcode.cc](https://probe.qcode.cc) に記録されます。API Key を入力すれば、実際に届いているか確認できます。

## 関連ドキュメント

- [エンドポイントと API パス](/docs/getting-started/endpoints-and-api-paths) — プロトコル × モデルファミリー対応表
- [環境変数の設定](/docs/getting-started/environment)
- [Zed 編集器接続](/docs/ide/zed) · [Devin Desktop 接続](/docs/ide/devin-desktop) · [JetBrains IDE](/docs/ide/jetbrains)