Narzędzia CLI do programowania
NoweUżywaj Shannon jako modelu działającego w Claude Code, Codex CLI i innych agentowych narzędziach CLI.
Narzędzie do programowania potrzebuje trzech ustawień, by działać z Shannon: bazowego URL API, Twojego klucza API i id modelu Shannon. Ta strona podaje dokładne ustawienia dla Claude Code i Codex CLI, wyjaśnia, jak liczony jest model do programowania shannon-coder-1, i wymienia błędy, które te narzędzia napotykają.
Którego endpointu używa każde narzędzie
| Narzędzie | Endpoint | Bazowy URL do ustawienia | Uwaga |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | Narzędzie samo dodaje /v1/messages do bazowego URL. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | Narzędzie dodaje /responses do bazowego URL. |
| Inne narzędzia agentowe, które mówią formatem czatu OpenAI | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Ustaw bazowy URL, klucz i id modelu Shannon we własnych ustawieniach narzędzia. |
Wszystkie trzy endpointy przyjmują ten sam klucz API, jako Authorization: Bearer lub jako x-api-key. Nagłówki anthropic-version, anthropic-beta i openai-beta, które te narzędzia wysyłają, są akceptowane.
Wybierz model Shannon
Każde zapytanie musi podawać id modelu, który Shannon publikuje. Narzędzie do programowania wysyła nazwę własnego modelu domyślnego, o ile nie powiesz mu inaczej, a nazwa, której Shannon nie publikuje, dostaje odpowiedź 400 z komunikatem unknown model: <name>. Żadna inna nazwa nie jest mapowana na model Shannon, więc ustaw model w narzędziu przed pierwszym zapytaniem.
GET /v1/models wymienia każdy id wraz z oknem kontekstu. Nie wymaga klucza. Modele i ceny
| Model | Liczone jako | Co daje |
|---|---|---|
shannon-coder-1 | Jedno wywołanie na zapytanie w /v1/messages i /v1/chat/completions. Tokeny w /v1/responses. | Model do programowania. Tekst na wejściu, wywołania narzędzi, okno kontekstu 131,072 tokenów. |
shannon-1.6-liteshannon-1.6-pro | Tokeny z Twojego salda. | Modele ogólnego przeznaczenia z wywołaniami narzędzi. shannon-1.6-lite pasuje do krótkich zapytań w tle, które wysyła narzędzie. |
| Hostowane modele open-weight | Tokeny z Twojego salda, z wejściem z cache po 25% ceny wejścia. | Wywołania narzędzi, prompt caching dla długich sesji i dokładne liczby z /v1/messages/count_tokens. |
Narzędzia do programowania sterują modelem długim promptem systemowym. Prompt systemowy stosują shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro i hostowane modele open-weight, więc dla narzędzia do programowania wybierz jeden z nich.
Claude Code
Claude Code odczytuje swoje połączenie ze zmiennych środowiskowych. Ustaw je w powłoce, która go uruchamia, albo w bloku env pliku ~/.claude/settings.json, aby zachować je dla każdej sesji.
# 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 {
"env": {
"ANTHROPIC_BASE_URL": "https://api.shannon-ai.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "shannon-1.6-lite",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "131072"
}
} | Zmienna | Opis |
|---|---|
ANTHROPIC_BASE_URL | Dokąd Claude Code wysyła swoje zapytania. Użyj adresu bez /v1. |
ANTHROPIC_AUTH_TOKEN | Twój klucz Shannon API, wysyłany jako Authorization: Bearer. Działa także ANTHROPIC_API_KEY: wysyła klucz jako x-api-key, a Claude Code raz prosi o zatwierdzenie. |
ANTHROPIC_MODEL | Model sesji. claude --model <id> i /model <id> ustawiają to samo. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Model do zapytań w tle, takich jak tytuły sesji, i do wszystkiego, co prosi o haiku. |
ANTHROPIC_DEFAULT_SONNET_MODEL | Model używany, gdy subagent lub polecenie prosi o sonnet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | Model używany, gdy subagent lub polecenie prosi o opus. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Okno kontekstu, które Claude Code zakłada dla modelu. Użyj context_window, które GET /v1/models raportuje dla wybranego id. |
- Ustaw wszystkie trzy zmienne
ANTHROPIC_DEFAULT_…_MODEL. Subagenci i niektóre polecenia proszą o model po jego wbudowanej nazwie, a każda nazwa musi wskazywać id Shannon. - Przykład kieruje zapytania w tle na
shannon-1.6-lite, który jest liczony w tokenach. Tytuły sesji i podobne zapytania nie zużywają wtedy wywołań Coder. - Claude Code pyta
POST /v1/messages/count_tokenso rozmiar kontekstu. Endpoint liczy dla hostowanych modeli open-weight. Z id Shannon odpowiada400; Claude Code traktuje liczenie tokenów jako opcjonalne i sam szacuje rozmiar. Liczenie tokenów
Aby sprawdzić adres, klucz i id modelu przed uruchomieniem narzędzia, wyślij jedno zapytanie ręcznie:
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 komunikuje się z Responses API. Opisz Shannon jako dostawcę modeli w ~/.codex/config.toml, wybierz tam id modelu Shannon i umieść swój klucz API w zmiennej środowiskowej, którą wskazuje dostawca.
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" # 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 | Klucz | Opis |
|---|---|
model | Id modelu Shannon. codex --model <id> ustawia go na jedno uruchomienie. |
model_provider | Nazwa bloku dostawcy do użycia, tutaj shannon. |
base_url | Adres API z /v1. |
env_key | Nazwa zmiennej środowiskowej, która zawiera Twój klucz Shannon API. |
wire_api | responses: Codex komunikuje się z POST /v1/responses. |
model_context_window | Okno kontekstu modelu, aby Codex kompaktował długą sesję na czas. Użyj context_window, które raportuje GET /v1/models. |
/v1/responsesnie przechowuje rozmowy na serwerze: każde zapytanie niesie rozmowę winput.previous_response_idjest akceptowane dla zgodności.- Narzędzia funkcyjne (
type: "function") są oferowane modelowi w/v1/responses. - W
/v1/responsesshannon-coder-1jest liczony w tokenach z Twojego salda, a nie w wywołaniach Coder.
To samo sprawdzenie dla endpointu Responses:
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."
}' Model do programowania i sposób jego liczenia
shannon-coder-1 to model Shannon dla agentów programistycznych. GET /v1/models raportuje go z oknem kontekstu 131,072 tokenów, wywołaniami narzędzi, wnioskowaniem i tekstem na wejściu. Jest liczony na jeden z dwóch sposobów, zależnie od endpointu, którego używa narzędzie.
| Endpoint | Zapytanie kosztuje | Pobierane z |
|---|---|---|
/v1/messages | 1 wywołanie na zapytanie | Limit wywołań Coder w Twoim planie. Żadne tokeny nie są pobierane z Twojego salda. |
/v1/chat/completions | 1 wywołanie na zapytanie | Limit wywołań Coder w Twoim planie. Żadne tokeny nie są pobierane z Twojego salda. |
/v1/responses | Tokeny, po $8.00 za 1M | Twoje saldo, jak w każdym innym modelu. Limit wywołań nie jest używany. |
Wywołanie to jedno zapytanie, niezależnie od rozmiaru. Jest liczone w chwili przyjęcia zapytania, zanim model odpowie. Sesja agenta wysyła jedno zapytanie na każdy krok, więc długie zadanie zużywa wiele wywołań. Limit zależy od Twojego planu i odnawia się co 4 godziny, o 00:00, 04:00, 08:00, 12:00, 16:00 i 20:00 UTC.
| Plan | Wywołania na 4-godzinne okno |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
Strona planów pokazuje aktualne liczby. Plany
Gdy wywołania okna się wyczerpią, zapytanie dostaje odpowiedź 429. W /v1/messages ten sam błąd przychodzi w kształcie Anthropic.
{
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} Przepełnienie kontekstu
Gdy rozmowa jest większa niż okno kontekstu modelu, /v1/chat/completions i /v1/messages odpowiadają 400, typem invalid_request_error, kodem context_length_exceeded i komunikatem zaczynającym się od prompt is too long. Narzędzia do programowania odczytują ten błąd, aby skompaktować sesję i wysłać zapytanie ponownie. Zwracają go shannon-coder-1, shannon-1.6-lite i shannon-1.6-pro.
{
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} Komunikat to prompt is too long: <sent> tokens > <limit> maximum. Gdy obie liczby nie są znane, jest to prompt is too long. Please compact the conversation and try again.
W strumieniu status to już 200, więc błąd przychodzi jako zdarzenie, a strumień zamyka się potem w normalny sposób:
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] 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"} Na czym może polegać pętla agenta
| Temat | Zachowanie |
|---|---|
| Schematy narzędzi | Definicje narzędzi są przyjmowane tak, jak wysyła je narzędzie. W shannon-coder-1 i shannon-1.6-* słowa kluczowe JSON Schema, których model nie używa, takie jak $schema, $ref, additionalProperties, default i title, są pomijane w tym, co model czyta, a oneOf jest czytane jako anyOf. Żadne zapytanie nie jest z ich powodu odrzucane. |
| Argumenty wywołania narzędzia | W strumieniu argumenty wywołania narzędzia przychodzą kompletne w jednej delcie: tool_calls[].function.arguments, input_json_delta.partial_json lub response.function_call_arguments.delta. |
| Koniec tury narzędzia | finish_reason: "tool_calls" w Chat Completions, stop_reason: "tool_use" w Messages. |
| Keep-alive | Gdy model pracuje, /v1/messages wysyła event: ping, a /v1/chat/completions wysyła linię komentarza : ping co 15 sekund. |
| Zatrzymywanie zapytania | Zamknięcie połączenia zatrzymuje strumień. Sama tura jest wykonywana do końca i liczona. |
Rozwiązywanie problemów
| Objaw | Przyczyna | Rozwiązanie |
|---|---|---|
400 z unknown model: claude-… lub unknown model: gpt-… | Narzędzie wysłało nazwę własnego modelu domyślnego. Obsługiwane są tylko opublikowane id Shannon i żadna inna nazwa nie jest na nie mapowana. | Wybierz id Shannon: ANTHROPIC_MODEL i trzy zmienne ANTHROPIC_DEFAULT_…_MODEL w Claude Code, model w konfiguracji Codex. |
400 z unknown model: i bez nazwy, z Codex CLI | Zapytanie nie podało modelu. /v1/responses go wymaga. | Ustaw model w ~/.codex/config.toml lub przekaż --model. |
401 z Missing authentication lub Invalid API key | Klucz nie dotarł do API albo nie jest aktualnym kluczem. Klucz Shannon zaczyna się od sk-. | Sprawdź, czy zmienna jest ustawiona w powłoce, która uruchamia narzędzie. Skopiuj klucz ponownie z Keys & usage. |
404 przy każdym zapytaniu | Bazowy URL ma o jedno /v1 za dużo lub za mało dla tego narzędzia. | Claude Code: adres bez /v1. Codex CLI: adres z /v1. |
429 z Shannon Coder call quota reached | Wywołania Coder bieżącego 4-godzinnego okna zostały wykorzystane. | Poczekaj na następne okno, przejdź na plan z większą liczbą wywołań albo wybierz model liczony w tokenach. |
429 z Quota exceeded | Twoje saldo nie pokrywa zapytania. | Dodaj środki albo poczekaj na dzienny limit swojego planu o 00:00 UTC. |
400 z prompt is too long | Rozmowa jest większa niż okno kontekstu modelu. | Skompaktuj sesję (/compact w obu narzędziach). Podaj narzędziu okno kontekstu modelu, aby kompaktowało wcześniej. |
| Claude Code pokazuje przybliżone liczby kontekstu | /v1/messages/count_tokens liczy dla hostowanych modeli open-weight. Z id Shannon odpowiada 400, a Claude Code sam szacuje rozmiar. | Nie ma czego naprawiać. Wybierz hostowany model open-weight, jeśli chcesz dokładnych liczb. |
| Wklejony zrzut ekranu nie jest brany pod uwagę | shannon-coder-1 przyjmuje tekst na wejściu. | Wybierz na tę sesję model, który przyjmuje obrazy. |
Twój klucz i saldo są na stronie Keys & usage. Keys & usage