Открыть в интерактивной справке · markdown для агентов: https://neuraldeep.ru/docs/agents.md
Подключение клиентов · OpenCode и tools
Первый запуск клиента
Сначала проверьте ключ и API, затем настройте клиент. После успешного запроса переходите к настройкам агента. Ниже в этом разделе примеры клиентов.
Ключ, адрес и модель
Откройте кабинет, раздел "Ключи", и создайте или скопируйте свой API-ключ. Базовый адрес для OpenAI-совместимого клиента - https://api.neuraldeep.ru/v1, с одним /v1 на конце. Ключ не добавляйте в git и не публикуйте в логах или снимках экрана.
Точный идентификатор модели берите из data[].id ответа GET /v1/models с вашим ключом. Для API это имя без префикса провайдера, например qwen3.6-35b-a3b. Эффективное окно контекста зависит от ключа, поэтому публичной таблицы моделей недостаточно. Модель в этом списке ещё не означает, что ключ может её вызвать, например модели с оплатой по токенам видны и ключу в режиме "Подписка". Доступ окончательно подтверждает короткий запрос ниже.
Переменная окружения
Вставьте блок для своей оболочки целиком и нажмите Enter, затем введите ключ в скрытом приглашении. Так ключ не попадает в историю команд. Фигурные скобки, а в PowerShell конструкция & { }, заставляют оболочку прочитать весь блок до запроса ключа, не убирайте их. Без них в терминале, где вставка идёт построчно, следующая строка блока уходит в переменную вместо ключа, а набранный ключ выполняется как команда и сохраняется в истории.
{
printf 'NeuralDeep API key: '
IFS= read -rs NEURALDEEP_API_KEY
printf '\n'
export NEURALDEEP_API_KEY
test -n "$NEURALDEEP_API_KEY" && printf 'NEURALDEEP_API_KEY is set\n'
}
& {
$secret = Read-Host 'NeuralDeep API key' -AsSecureString
$env:NEURALDEEP_API_KEY = [System.Net.NetworkCredential]::new('', $secret).Password
-not [string]::IsNullOrWhiteSpace($env:NEURALDEEP_API_KEY)
}
Проверка выводит NEURALDEEP_API_KEY is set в bash/zsh или True в PowerShell, но не сам ключ. Переменная действует в текущем терминале и запущенных из него процессах. Запускайте клиент из этого терминала. Для графического приложения задайте переменную в его окружении запуска и перезапустите приложение. Файл .env сам по себе переменную в процесс не передаёт.
Проверка API до настройки клиента
В bash/zsh выполните два запроса. Первый печатает статус ответа и найденные модели Qwen 3.6, ожидаются HTTP/2 200 или HTTP/1.1 200 и строки с qwen3.6-35b-a3b и qwen3.6-35b-a3b-noreason. При другом статусе повторите запрос без | grep ..., чтобы увидеть текст ошибки.
curl --silent --show-error --include https://api.neuraldeep.ru/v1/models \
-H "Authorization: Bearer $NEURALDEEP_API_KEY" \
| grep -o -E '^HTTP/[0-9.]+ [0-9]+|"id": "qwen3[.]6-35b-a3b[^"]*"'
curl --silent --show-error --include https://api.neuraldeep.ru/v1/chat/completions \
-H "Authorization: Bearer $NEURALDEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3.6-35b-a3b-noreason","messages":[{"role":"user","content":"Reply with OK."}],"max_tokens":64}'
В PowerShell используйте отдельный блок, без bash-переносов строк и кавычек для curl.
$headers = @{ Authorization = "Bearer $env:NEURALDEEP_API_KEY" }
$models = Invoke-RestMethod -Uri 'https://api.neuraldeep.ru/v1/models' -Headers $headers
$models.data | Select-Object id, limit
$body = @{
model = 'qwen3.6-35b-a3b-noreason'
messages = @(@{ role = 'user'; content = 'Reply with OK.' })
max_tokens = 64
} | ConvertTo-Json -Depth 4
$reply = Invoke-RestMethod -Method Post -Uri 'https://api.neuraldeep.ru/v1/chat/completions' -Headers $headers -ContentType 'application/json' -Body $body
$reply.choices[0].message.content
Успешный чат-запрос возвращает HTTP 200 и короткий ответ в choices[0].message.content, обычно OK. Он расходует квоту или баланс ключа, как обычный запрос. Если проверка не прошла, сначала разберите HTTP-ошибку, а не меняйте конфиг клиента.
После первого ответа
Конструктор настроек агента использует живые лимиты из GET /api/public/tier-limits. Сначала выберите клиент и найдите его файл конфигурации. OpenCode получает полный конфиг с основной и вспомогательной моделями и ключом из окружения, другие профили могут быть фрагментами для существующего файла. Сделайте резервную копию и перенесите только нужные ключи, сохранив остальных провайдеров. Не все показанные числа выражены в конфиге каждого клиента, поддержка пауз, потоков и ретраев зависит от клиента и его версии.
Tool calling
Стандартный OpenAI tool-calling через tools + tool_choice. Модель решает когда звать инструмент, возвращает JSON с аргументами.
from openai import OpenAI
client = OpenAI(api_key="$YOUR_KEY", base_url="https://api.neuraldeep.ru/v1")
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Получает погоду в городе",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
}
}
}]
messages = [{"role":"user","content":"Какая погода в Москве?"}]
r = client.chat.completions.create(
model="gpt-oss-120b",
messages=messages,
tools=tools,
tool_choice="auto",
)
# r.choices[0].message.tool_calls → список вызовов
curl https://api.neuraldeep.ru/v1/chat/completions \
-H "Authorization: Bearer $YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"gpt-oss-120b",
"messages":[{"role":"user","content":"tell a short story"}],
"stream": true,
"max_tokens": 800
}'
Для многократных агентных итераций используй
user: session_idчтобы сессия жила на одном upstream — prefix caching экономит токены до 10×.
Coding-агенты · coddy
coddy - открытый агент в одном статичном Go-бинарнике: консоль, ACP-сервер для VS Code и Zed, HTTP-шлюз со встроенным веб-интерфейсом и Telegram. NeuralDeep у него не "ещё один OpenAI-совместимый провайдер", а собственный тип: ключ выдаёт вход в хаб, а остаток лимитов агент читает нашей ручкой GET /v1/limits и держит в футере (окна сессии и недели, время сброса, кошелёк).
curl -fsSL https://coddy.dev/install.sh | bash
# браузерный вход в хаб; на машине без браузера - тот же вход с --device
coddy providers login neuraldeep
Вход сам допишет провайдера и модели тарифа в ~/.coddy/config.yaml. Ключ можно вписать и руками - он всегда сильнее сохранённого входа:
providers:
- name: "neuraldeep"
type: "neuraldeep"
api_key: "$YOUR_KEY"
api_base: "https://api.neuraldeep.ru/v1" # api.neuraldeep.tech/v1 - международное зеркало
models:
- model: "neuraldeep/qwen3.6-35b-a3b"
max_tokens: 8192
agent:
model: "neuraldeep/qwen3.6-35b-a3b"
Используйте адрес API из своего кабинета. Навыки из нашего каталога coddy читает нативно: ~/.agents/skills стоит у него в дефолтных skills.dirs, туда же кладёт паки npx skillsbd install -g. Числа таймаутов и потоков под твой тариф выдаёт конструктор в разделе "Настройки агента".
OpenCode
Конфиг OpenCode лежит в ~/.config/opencode/opencode.json, файл opencode.json в корне проекта его перекрывает. Готовый файл под ваш тариф и опции собирает конструктор настроек агента, выберите в нём opencode и скопируйте результат. Ключ OpenCode берёт из переменной NEURALDEEP_API_KEY. Если конфиг уже есть, перенесите в него блок provider.neuraldeep и поля model и small_model.
Coding-агенты · OpenAI Codex CLI
codex CLI — терминальный coding-агент от OpenAI. Работает через /v1/responses (Responses API). На нашей стороне применены 3 файловых патча vLLM для поддержки custom tool types и multi-turn валидации (по issue #33089).
# ----------------- провайдер -----------------
[model_providers.neuraldeep]
name = "NeuralDeep Hub"
base_url = "https://api.neuraldeep.ru/v1"
wire_api = "responses"
experimental_bearer_token = "$YOUR_KEY"
# Альтернатива: env_key = "NEURALDEEP_API_KEY" + export в shell
# ----------------- профили -----------------
[profiles.neuraldeep]
model_provider = "neuraldeep"
model = "qwen3.6-35b-a3b"
# qwen3.6 → 256k ctx, нативные tool-calls, лучше для большой codebase
[profiles.neuraldeep-oss]
model_provider = "neuraldeep"
model = "gpt-oss-120b"
# gpt-oss-120b → 131k ctx, длинный reasoning
# TUI-режим с qwen3.6
codex --profile neuraldeep
# или с gpt-oss-120b
codex --profile neuraldeep-oss
# regулировка reasoning effort
codex --profile neuraldeep -c model_reasoning_effort=low
wire_api = "chat" больше не поддерживается в новых codex (с конца 2025). Только
"responses". Если видишь ошибкуError loading config.toml: wire_api = "chat" is no longer supported— поменяй на responses.
Разделы справки (markdown для агентов)
- Начало · ключ, ошибки, квоты
- Текст · чат
- Векторизация
- Реранжирование
- Транскрибация
- Распознавание картинок
- Structured output
- Клиенты · агенты
- Остатки лимитов · Limits API
- Поиск · Search API
- OCR · документы
- Картинки · Image API
- Музыка · Music API
- Анонимизация ПДн · PII Guard
- SpeechCore · STT
- Озвучка · TTS API
- Кто когда говорил · диаризация
- Решения по тексту · FRIDA-Decisions, clef-flash
- Drift · обзор
- Файлы + sandbox preview
- Свои tools, skills, MCP
- Задачи · proactive
- Память · memory
- Изоляция и безопасность
- Настройки агента
- Лимиты · ошибки
- Книга · поиск и MCP
- Стриминг
- SDK · Python / JS
- Приватность