Перейти к содержимому
CLI-инструменты для кодинга

CLI-инструменты для кодинга

Новое

Используйте Shannon как модель для Claude Code, Codex CLI и других агентных CLI.

Чтобы инструмент для кодинга работал с Shannon, нужны три настройки: базовый URL API, ваш API-ключ и id модели Shannon. На этой странице приведены точные настройки для Claude Code и Codex CLI, объясняется, как считается модель для кодинга shannon-coder-1, и перечислены ошибки, с которыми сталкиваются эти инструменты.

Какой эндпоинт использует каждый инструмент

Инструмент Эндпоинт Базовый URL Примечание
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com Инструмент сам добавляет /v1/messages к базовому URL.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 Инструмент добавляет /responses к базовому URL.
Другие агентные инструменты, работающие с форматом чата OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Задайте базовый URL, ключ и id модели Shannon в собственных настройках инструмента.

Все три эндпоинта принимают один и тот же API-ключ, как Authorization: Bearer или как x-api-key. Заголовки anthropic-version, anthropic-beta и openai-beta, которые отправляют эти инструменты, принимаются.

Выбор модели Shannon

Каждый запрос должен указывать id модели, который публикует Shannon. Инструмент для кодинга отправляет имя своей модели по умолчанию, если вы не укажете иное, а на имя, которое Shannon не публикует, отвечают 400 и сообщением unknown model: <name>. Никакое другое имя не сопоставляется с моделью Shannon, поэтому задайте модель в инструменте до первого запроса.

GET /v1/models перечисляет все id с их контекстными окнами. Ключ не нужен. Модели и цены

Модель Считается как Что дает
shannon-coder-1 Один вызов за запрос на /v1/messages и /v1/chat/completions. Токены на /v1/responses. Модель для кодинга. Ввод текста, вызовы инструментов, контекстное окно 131,072 токенов.
shannon-1.6-lite
shannon-1.6-pro
Токены с вашего баланса. Универсальные модели с вызовом инструментов. shannon-1.6-lite подходит для коротких фоновых запросов, которые делает инструмент.
Размещенные модели с открытыми весами Токены с вашего баланса, кэшированный ввод — по 25% от цены ввода. Вызовы инструментов, кэширование промптов для длинных сессий и точный подсчет через /v1/messages/count_tokens.

Инструменты для кодинга направляют модель длинным системным промптом. Системный промпт применяют shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro и размещенные модели с открытыми весами, поэтому для инструмента кодинга выбирайте одну из них.

Claude Code

Claude Code читает подключение из переменных окружения. Задайте их в оболочке, которая его запускает, или в блоке env файла ~/.claude/settings.json, чтобы они действовали в каждой сессии.

# Install Claude Code
npm install -g @anthropic-ai/claude-code

# Where to send requests, and your Shannon API key
export ANTHROPIC_BASE_URL=https://api.shannon-ai.com
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY

# Shannon model ids: the session model, and the model behind each built-in name
export ANTHROPIC_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_OPUS_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_SONNET_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_HAIKU_MODEL=shannon-1.6-lite

# The context window of the session model
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072

claude
Переменная Описание
ANTHROPIC_BASE_URL Куда Claude Code отправляет свои запросы. Используйте адрес без /v1.
ANTHROPIC_AUTH_TOKEN Ваш API-ключ Shannon, отправляемый как Authorization: Bearer. ANTHROPIC_API_KEY тоже работает: он отправляет ключ как x-api-key, и Claude Code один раз просит подтвердить его.
ANTHROPIC_MODEL Модель сессии. claude --model <id> и /model <id> задают то же самое.
ANTHROPIC_DEFAULT_HAIKU_MODEL Модель для фоновых запросов, таких как заголовки сессий, и для всего, что запрашивает haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Модель, которая используется, когда субагент или команда запрашивает sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Модель, которая используется, когда субагент или команда запрашивает opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS Контекстное окно, которое Claude Code предполагает для модели. Используйте context_window, который GET /v1/models сообщает для выбранного id.
  • Задайте все три переменные ANTHROPIC_DEFAULT_…_MODEL. Субагенты и некоторые команды запрашивают модель по ее встроенному имени, и каждое имя должно соответствовать id Shannon.
  • В примере фоновые запросы направлены на shannon-1.6-lite, которая считается в токенах. Заголовки сессий и подобные запросы тогда не расходуют вызовы Coder.
  • Claude Code запрашивает у POST /v1/messages/count_tokens размер контекста. Эндпоинт считает для размещенных моделей с открытыми весами. С id Shannon он отвечает 400; Claude Code считает подсчет токенов необязательным и оценивает размер сам. Подсчет токенов

Чтобы проверить адрес, ключ и id модели до запуска инструмента, отправьте один запрос вручную:

cURL
curl https://api.shannon-ai.com/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "max_tokens": 16,
    "messages": [{"role": "user", "content": "Say OK."}]
  }'

Codex CLI

Codex CLI работает с Responses API. Опишите Shannon как провайдера моделей в ~/.codex/config.toml, выберите там id модели Shannon и поместите свой API-ключ в переменную окружения, которую называет провайдер.

~/.codex/config.toml
model = "shannon-coder-1"
model_provider = "shannon"
model_context_window = 131072

[model_providers.shannon]
name = "Shannon"
base_url = "https://api.shannon-ai.com/v1"
env_key = "SHANNON_API_KEY"
wire_api = "responses"
Shell
# Install Codex CLI
npm install -g @openai/codex

# Your Shannon API key, under the name given as env_key
export SHANNON_API_KEY=YOUR_API_KEY

# Start it; --model selects another Shannon id for one run
codex
codex --model shannon-1.6-pro
Ключ Описание
model Id модели Shannon. codex --model <id> задает его для одного запуска.
model_provider Имя используемого блока провайдера, здесь shannon.
base_url Адрес API с /v1.
env_key Имя переменной окружения, в которой хранится ваш API-ключ Shannon.
wire_api responses: Codex обращается к POST /v1/responses.
model_context_window Контекстное окно модели, чтобы Codex вовремя сжимал длинную сессию. Используйте context_window, который сообщает GET /v1/models.
  • /v1/responses не хранит разговор на сервере: каждый запрос несет разговор в input. previous_response_id принимается для совместимости.
  • Инструменты-функции (type: "function") предлагаются модели на /v1/responses.
  • На /v1/responses shannon-coder-1 считается в токенах с вашего баланса, а не в вызовах Coder.

Та же проверка для эндпоинта Responses:

cURL
curl https://api.shannon-ai.com/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "input": "Say OK."
  }'

Модель для кодинга и как она считается

shannon-coder-1 — модель Shannon для агентов программирования. GET /v1/models сообщает для нее контекстное окно в 131,072 токенов, вызовы инструментов, рассуждения и ввод текста. Она считается одним из двух способов, в зависимости от эндпоинта, который использует инструмент.

Эндпоинт Запрос стоит Списывается с
/v1/messages 1 вызов за запрос Лимит вызовов Coder по вашему плану. Токены с вашего баланса не списываются.
/v1/chat/completions 1 вызов за запрос Лимит вызовов Coder по вашему плану. Токены с вашего баланса не списываются.
/v1/responses Токены, по $8.00 за 1M Ваш баланс, как и для любой другой модели. Лимит вызовов не используется.

Вызов — это один запрос, независимо от его размера. Он засчитывается, когда запрос принят, до ответа модели. Сессия агента отправляет по запросу на каждый шаг, поэтому долгая задача расходует много вызовов. Лимит зависит от вашего плана и обновляется каждые 4 часа, в 00:00, 04:00, 08:00, 12:00, 16:00 и 20:00 UTC.

План Вызовов за 4-часовое окно
Free 3
Plus 20
Standard 40
Pro 60

Актуальные числа показывает страница планов. Планы

Когда вызовы окна исчерпаны, на запрос отвечают 429. На /v1/messages та же ошибка приходит в формате Anthropic.

429 /v1/chat/completions
{
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}
429 /v1/messages
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}

Переполнение контекста

Когда разговор больше контекстного окна модели, /v1/chat/completions и /v1/messages отвечают 400, типом invalid_request_error, кодом context_length_exceeded и сообщением, которое начинается с prompt is too long. Инструменты для кодинга читают эту ошибку, чтобы сжать сессию и отправить запрос снова. Ее возвращают shannon-coder-1, shannon-1.6-lite и shannon-1.6-pro.

400 /v1/chat/completions
{
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}
400 /v1/messages
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}

Сообщение имеет вид prompt is too long: <sent> tokens > <limit> maximum. Когда оба числа неизвестны, оно имеет вид prompt is too long. Please compact the conversation and try again.

В потоке статус уже 200, поэтому ошибка приходит как событие, а затем поток закрывается обычным образом:

/v1/chat/completions, поток
data: {"error":{"message":"prompt is too long: 140211 tokens > 131072 maximum","type":"invalid_request_error","code":"context_length_exceeded","param":null}}

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"shannon-coder-1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{…}}

data: [DONE]
/v1/messages, поток
event: error
data: {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 140211 tokens > 131072 maximum"}}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{…}}

event: message_stop
data: {"type":"message_stop"}

На что может рассчитывать цикл агента

Тема Поведение
Схемы инструментов Определения инструментов принимаются так, как их отправляет инструмент. На shannon-coder-1 и shannon-1.6-* ключевые слова JSON Schema, которые модель не использует, такие как $schema, $ref, additionalProperties, default и title, исключаются из того, что читает модель, а oneOf читается как anyOf. Ни один запрос из-за них не отклоняется.
Аргументы вызова инструмента В потоке аргументы вызова инструмента приходят целиком в одной дельте: tool_calls[].function.arguments, input_json_delta.partial_json или response.function_call_arguments.delta.
Конец хода с инструментом Значение finish_reason: "tool_calls" в Chat Completions и значение stop_reason: "tool_use" в Messages.
Keep-alive Пока модель работает, /v1/messages каждые 15 секунд отправляет event: ping, а /v1/chat/completions — строку-комментарий : ping.
Остановка запроса Закрытие соединения останавливает поток. Сам ход выполняется до конца и засчитывается.

Устранение неполадок

Симптом Причина Решение
400 с unknown model: claude-… или unknown model: gpt-… Инструмент отправил имя своей модели по умолчанию. Обслуживаются только опубликованные id Shannon, и никакое другое имя с ними не сопоставляется. Выберите id Shannon: ANTHROPIC_MODEL и три переменные ANTHROPIC_DEFAULT_…_MODEL в Claude Code, model в конфигурации Codex.
400 с unknown model: и без имени, от Codex CLI В запросе не указана модель. /v1/responses требует ее. Задайте model в ~/.codex/config.toml или передайте --model.
401 с Missing authentication или Invalid API key Ключ не дошел до API либо не является текущим ключом. Ключ Shannon начинается с sk-. Проверьте, что переменная задана в оболочке, которая запускает инструмент. Скопируйте ключ заново из Keys & usage.
404 на каждый запрос В базовом URL на один /v1 больше или меньше, чем нужно инструменту. Claude Code: адрес без /v1. Codex CLI: адрес с /v1.
429 с Shannon Coder call quota reached Вызовы Coder текущего 4-часового окна исчерпаны. Дождитесь следующего окна, перейдите на план с большим числом вызовов или выберите модель, которая считается в токенах.
429 с Quota exceeded Вашего баланса не хватает на запрос. Пополните кредит или дождитесь ежедневного лимита вашего плана в 00:00 UTC.
400 с prompt is too long Разговор больше контекстного окна модели. Сожмите сессию (/compact в обоих инструментах). Сообщите инструменту контекстное окно модели, чтобы он сжимал раньше.
Claude Code показывает приблизительные значения контекста /v1/messages/count_tokens считает для размещенных моделей с открытыми весами. С id Shannon он отвечает 400, а Claude Code оценивает размер сам. Исправлять нечего. Выберите размещенную модель с открытыми весами, если нужен точный подсчет.
Вставленный скриншот не учитывается shannon-coder-1 принимает ввод текста. Выберите для этой сессии модель, которая принимает изображения.

Ваш ключ и ваш баланс находятся на странице Keys & usage. Keys & usage