Към съдържанието
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 е подходящ за късите фонови заявки, които инструментът прави.
Хоствани open-weight модели Токени от баланса ви, като кешираният вход е на 25% от цената на входа. Извиквания на инструменти, кеширане на prompt-и за дълги сесии и точно броене от /v1/messages/count_tokens.

Инструментите за програмиране управляват модела с дълъг системен prompt. Системният prompt се прилага от shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro и хостваните open-weight модели, така че изберете някой от тях за инструмент за програмиране.

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 за размера на контекста. Ендпоинтът брои за хостваните open-weight модели. С 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. Заради тях заявка не се отказва.
Аргументи на извикване на инструмент В стрийм аргументите на извикване на инструмент пристигат пълни в една delta: 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 изпраща event: ping, а /v1/chat/completions изпраща коментарен ред : ping на всеки 15 секунди.
Спиране на заявка Затварянето на връзката спира стрийма. Самият ход се изпълнява докрай и се отчита.

Отстраняване на проблеми

Симптом Причина Решение
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 брои за хостваните open-weight модели. С id на Shannon отговаря 400, а Claude Code оценява размера сам. Няма какво да се поправя. Изберете хостван open-weight модел, ако искате точно броене.
Поставена екранна снимка не се взема предвид shannon-coder-1 приема текстов вход. Изберете за тази сесия модел, който приема изображения.

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