# Continue (VS Code / JetBrains)

[Continue](https://continue.dev) — открытый ассистент для VS Code и JetBrains: чат,
автодополнение и правки в редакторе. Поддерживает провайдер `openai` с произвольным
`apiBase`, поэтому AgentAPI подключается без плагинов и прокси.

## Какой эндпоинт для какой роли

```mermaid
flowchart LR
    subgraph IDE["Continue в редакторе"]
        C1["Чат"]
        C2["Автодополнение<br/>(tab)"]
        C3["@codebase<br/>индексация"]
        C4["Rerank"]
    end

    C1 --> E1["POST /v1/ai/chat/completions"]
    C2 --> E1
    C3 --> E2["POST /v1/ai/embeddings"]
    C4 -.->|"не поддерживается"| X["нет эндпоинта rerank"]

    E1 --> A["api.agentapi.ru"]
    E2 --> A
```

## Настройка

Откройте `~/.continue/config.yaml` (в новых версиях — кнопка настроек в панели Continue).

```yaml
name: AgentAPI
version: 1.0.0
schema: v1

models:
  - name: GPT-4.1
    provider: openai
    model: openai/gpt-4.1
    apiBase: https://api.agentapi.ru/v1/ai
    apiKey: agentapi-ВАШ_КЛЮЧ
    roles:
      - chat
      - edit
      - apply

  - name: Claude 3.5 Sonnet
    provider: openai
    model: anthropic/claude-3.5-sonnet
    apiBase: https://api.agentapi.ru/v1/ai
    apiKey: agentapi-ВАШ_КЛЮЧ
    roles:
      - chat
      - edit

  - name: Автодополнение
    provider: openai
    model: openai/gpt-4.1-mini
    apiBase: https://api.agentapi.ru/v1/ai
    apiKey: agentapi-ВАШ_КЛЮЧ
    roles:
      - autocomplete

  - name: Embeddings
    provider: openai
    model: openai/text-embedding-3-small
    apiBase: https://api.agentapi.ru/v1/ai
    apiKey: agentapi-ВАШ_КЛЮЧ
    roles:
      - embed
```

Три обязательных момента:

1. **`provider: openai`** — именно `openai`, даже для моделей Claude или Gemini: AgentAPI
   отдаёт OpenAI-совместимый формат для всех моделей.
2. **`apiBase` заканчивается на `/v1/ai`** — без `/chat/completions`. Continue допишет
   путь сам.
3. **`model` — полный слаг** с префиксом провайдера: `openai/gpt-4.1`, не `gpt-4.1`.

### Старый формат `config.json`

Если у вас версия с JSON-конфигом:

```json
{
  "models": [
    {
      "title": "GPT-4.1",
      "provider": "openai",
      "model": "openai/gpt-4.1",
      "apiBase": "https://api.agentapi.ru/v1/ai",
      "apiKey": "agentapi-ВАШ_КЛЮЧ"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Автодополнение",
    "provider": "openai",
    "model": "openai/gpt-4.1-mini",
    "apiBase": "https://api.agentapi.ru/v1/ai",
    "apiKey": "agentapi-ВАШ_КЛЮЧ"
  },
  "embeddingsProvider": {
    "provider": "openai",
    "model": "openai/text-embedding-3-small",
    "apiBase": "https://api.agentapi.ru/v1/ai",
    "apiKey": "agentapi-ВАШ_КЛЮЧ"
  }
}
```

## Индексация проекта (`@codebase`)

Роль `embed` из конфига выше включает семантический поиск по коду. Эндпоинт embeddings
**не подпадает под rate limit**, поэтому первичная индексация большого репозитория не
упирается в ограничение запросов — но токены оплачиваются, так что для крупных
монорепозиториев оцените стоимость заранее.

## Параметры генерации

Ограничения задаются как обычно и **применяются**:

```yaml
models:
  - name: GPT-4.1
    provider: openai
    model: openai/gpt-4.1
    apiBase: https://api.agentapi.ru/v1/ai
    apiKey: agentapi-ВАШ_КЛЮЧ
    defaultCompletionOptions:
      temperature: 0.2
      maxTokens: 2048
```

## Что не заработает

| Возможность | Причина |
|---|---|
| Выпадающий список моделей | Внешнего `GET /v1/ai/models` нет — модели описываются в конфиге вручную |
| Rerank-модели | Эндпоинта переранжирования у AgentAPI нет. Не указывайте роль `rerank` |
| Прикрепление изображений в чате | `content` принимает только строку, см. [Ограничения](https://agentapi.ru/docs/limitations) |

## Диагностика

| Симптом | Что проверить |
|---|---|
| `404` в логах Continue | В `apiBase` пропущен `/ai`, либо указан `agentapi.ru` вместо `api.agentapi.ru` |
| Путь `…/chat/completions/chat/completions` | В `apiBase` записан полный путь эндпоинта |
| `401 Invalid API key format` | В `apiKey` не ключ `agentapi-*` |
| `400 Negative or zero balance` | Пустой баланс — пополните счёт |
| `502` при валидном ключе | Неверный слаг модели — проверьте в каталоге [Моделей](https://agentapi.ru/models) |

Логи: **Output → Continue** в панели VS Code.
