Sari la conținut
Instrumente CLI pentru programare

Instrumente CLI pentru programare

Nou

Folosește Shannon ca model din spatele Claude Code, Codex CLI și al altor CLI-uri de tip agent.

Un instrument de programare are nevoie de trei setări pentru a funcționa cu Shannon: URL-ul de bază al API-ului, cheia ta API și un id de model Shannon. Această pagină oferă setările exacte pentru Claude Code și Codex CLI, explică cum este numărat modelul de programare shannon-coder-1 și listează erorile pe care le întâlnesc aceste instrumente.

Ce endpoint folosește fiecare instrument

Instrument Endpoint URL de bază de setat Notă
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com Instrumentul adaugă singur /v1/messages la URL-ul de bază.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 Instrumentul adaugă /responses la URL-ul de bază.
Alte instrumente de tip agent care folosesc formatul de chat OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Setează URL-ul de bază, cheia și un id de model Shannon în setările proprii ale instrumentului.

Toate cele trei endpoint-uri acceptă aceeași cheie API, ca Authorization: Bearer sau ca x-api-key. Header-ele anthropic-version, anthropic-beta și openai-beta pe care le trimit aceste instrumente sunt acceptate.

Selectează un model Shannon

Fiecare cerere trebuie să indice un id de model pe care îl publică Shannon. Un instrument de programare trimite numele propriului model implicit dacă nu îi spui altceva, iar un nume pe care Shannon nu îl publică primește răspuns 400 și mesajul unknown model: <name>. Niciun alt nume nu este asociat unui model Shannon, deci setează modelul în instrument înainte de prima cerere.

GET /v1/models listează fiecare id cu fereastra lui de context. Nu necesită cheie. Modele și prețuri

Model Numărat ca Ce oferă
shannon-coder-1 Un apel per cerere pe /v1/messages și /v1/chat/completions. Token-uri pe /v1/responses. Modelul de programare. Text la intrare, apeluri de instrumente, fereastră de context de 131,072 token-uri.
shannon-1.6-lite
shannon-1.6-pro
Token-uri din soldul tău. Modele generale cu apeluri de instrumente. shannon-1.6-lite se potrivește cererilor scurte de fundal pe care le face un instrument.
Modele open-weight găzduite Token-uri din soldul tău, cu intrarea din cache la 25% din prețul de intrare. Apeluri de instrumente, caching de prompt pentru sesiuni lungi și numărări exacte de la /v1/messages/count_tokens.

Instrumentele de programare ghidează modelul cu un system prompt lung. System prompt-ul este aplicat de shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro și de modelele open-weight găzduite, deci selectează unul dintre acestea pentru un instrument de programare.

Claude Code

Claude Code își citește conexiunea din variabile de mediu. Setează-le în shell-ul care îl pornește sau în blocul env din ~/.claude/settings.json pentru a le păstra la fiecare sesiune.

# 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
Variabilă Descriere
ANTHROPIC_BASE_URL Unde își trimite Claude Code cererile. Folosește adresa fără /v1.
ANTHROPIC_AUTH_TOKEN Cheia ta Shannon API, trimisă ca Authorization: Bearer. Funcționează și ANTHROPIC_API_KEY: trimite cheia ca x-api-key, iar Claude Code îți cere o singură dată aprobarea.
ANTHROPIC_MODEL Modelul sesiunii. claude --model <id> și /model <id> setează același lucru.
ANTHROPIC_DEFAULT_HAIKU_MODEL Modelul pentru cererile de fundal, cum sunt titlurile sesiunilor, și pentru orice cere haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Modelul folosit când un subagent sau o comandă cere sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Modelul folosit când un subagent sau o comandă cere opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS Fereastra de context pe care Claude Code o presupune pentru model. Folosește context_window raportat de GET /v1/models pentru id-ul selectat.
  • Setează toate cele trei variabile ANTHROPIC_DEFAULT_…_MODEL. Subagenții și unele comenzi cer un model după numele lui încorporat, iar fiecare nume trebuie să se rezolve într-un id Shannon.
  • Exemplul îndreaptă cererile de fundal spre shannon-1.6-lite, care este numărat în token-uri. Titlurile sesiunilor și cererile similare nu consumă atunci apeluri Coder.
  • Claude Code cere POST /v1/messages/count_tokens pentru dimensiunea contextului. Endpoint-ul numără pentru modelele open-weight găzduite. Cu un id Shannon răspunde 400; Claude Code tratează numărarea token-urilor ca opțională și estimează singur dimensiunea. Numărarea token-urilor

Pentru a verifica adresa, cheia și un id de model înainte de a porni instrumentul, trimite manual o cerere:

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 comunică cu Responses API. Descrie Shannon ca provider de modele în ~/.codex/config.toml, selectează acolo un id de model Shannon și pune cheia ta API în variabila de mediu numită de provider.

~/.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
Cheie Descriere
model Id-ul modelului Shannon. codex --model <id> îl setează pentru o singură rulare.
model_provider Numele blocului de provider de folosit, aici shannon.
base_url Adresa API cu /v1.
env_key Numele variabilei de mediu care conține cheia ta Shannon API.
wire_api responses: Codex comunică cu POST /v1/responses.
model_context_window Fereastra de context a modelului, astfel încât Codex să compacteze la timp o sesiune lungă. Folosește context_window raportat de GET /v1/models.
  • /v1/responses nu păstrează nicio conversație pe server: fiecare cerere poartă conversația în input. previous_response_id este acceptat pentru compatibilitate.
  • Instrumentele de tip funcție (type: "function") sunt oferite modelului pe /v1/responses.
  • Pe /v1/responses, shannon-coder-1 este numărat în token-uri din soldul tău, nu în apeluri Coder.

Aceeași verificare pentru endpoint-ul 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."
  }'

Modelul de programare și cum este numărat

shannon-coder-1 este modelul Shannon pentru agenții de programare. GET /v1/models îl raportează cu o fereastră de context de 131,072 token-uri, apeluri de instrumente, raționament și text la intrare. Este numărat într-unul din două moduri, în funcție de endpoint-ul folosit de un instrument.

Endpoint O cerere costă Scăzut din
/v1/messages 1 apel per cerere Cota de apeluri Coder a planului tău. Nu se scad token-uri din soldul tău.
/v1/chat/completions 1 apel per cerere Cota de apeluri Coder a planului tău. Nu se scad token-uri din soldul tău.
/v1/responses Token-uri, la $8.00 per 1M Soldul tău, ca orice alt model. Cota de apeluri nu este folosită.

Un apel este o cerere, indiferent de dimensiunea ei. Este numărat când cererea este acceptată, înainte ca modelul să răspundă. O sesiune de agent trimite o cerere pentru fiecare pas pe care îl face, deci o sarcină lungă consumă multe apeluri. Cota depinde de planul tău și o ia de la capăt la fiecare 4 ore, la 00:00, 04:00, 08:00, 12:00, 16:00 și 20:00 UTC.

Plan Apeluri pe fereastră de 4 ore
Free 3
Plus 20
Standard 40
Pro 60

Pagina planurilor arată cifrele curente. Planuri

Când apelurile unei ferestre sunt consumate, cererea primește răspuns 429. Pe /v1/messages aceeași eroare vine în forma 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"
  }
}

Depășirea contextului

Când o conversație este mai mare decât fereastra de context a modelului, /v1/chat/completions și /v1/messages răspund cu 400, tipul invalid_request_error, codul context_length_exceeded și un mesaj care începe cu prompt is too long. Instrumentele de programare citesc această eroare pentru a compacta sesiunea și a trimite din nou cererea. Este produsă de shannon-coder-1, shannon-1.6-lite și 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
  }
}

Mesajul este prompt is too long: <sent> tokens > <limit> maximum. Când cele două numere nu sunt cunoscute, este prompt is too long. Please compact the conversation and try again.

Pe un stream, starea este deja 200, deci eroarea sosește ca eveniment, iar stream-ul se închide apoi în mod normal:

/v1/chat/completions, stream
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, stream
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"}

Pe ce se poate baza o buclă de agent

Subiect Comportament
Scheme de instrumente Definițiile instrumentelor sunt preluate așa cum le trimite instrumentul. Pe shannon-coder-1 și shannon-1.6-*, cuvintele-cheie JSON Schema pe care modelul nu le folosește, precum $schema, $ref, additionalProperties, default și title, sunt omise din ce citește modelul, iar oneOf este citit ca anyOf. Nicio cerere nu este refuzată din acest motiv.
Argumentele apelului de instrument Într-un stream, argumentele unui apel de instrument sosesc complete într-un singur delta: tool_calls[].function.arguments, input_json_delta.partial_json sau response.function_call_arguments.delta.
Sfârșitul unei runde de instrument finish_reason: "tool_calls" pe Chat Completions, stop_reason: "tool_use" pe Messages.
Keep-alive Cât timp lucrează modelul, /v1/messages trimite event: ping, iar /v1/chat/completions trimite o linie de comentariu : ping la fiecare 15 secunde.
Oprirea unei cereri Închiderea conexiunii oprește stream-ul. Runda în sine rulează până la capăt și este numărată.

Depanare

Simptom Cauză Remediere
400 cu unknown model: claude-… sau unknown model: gpt-… Instrumentul a trimis numele propriului model implicit. Sunt servite doar id-urile Shannon publicate și niciun alt nume nu este asociat unuia. Selectează un id Shannon: ANTHROPIC_MODEL și cele trei variabile ANTHROPIC_DEFAULT_…_MODEL în Claude Code, model în configurația Codex.
400 cu unknown model: și fără niciun nume, de la Codex CLI Cererea nu a indicat niciun model. /v1/responses are nevoie de unul. Setează model în ~/.codex/config.toml sau transmite --model.
401 cu Missing authentication sau Invalid API key Cheia nu a ajuns la API sau nu este o cheie curentă. O cheie Shannon începe cu sk-. Verifică dacă variabila este setată în shell-ul care pornește instrumentul. Copiază din nou cheia din Chei și utilizare.
404 la fiecare cerere URL-ul de bază are un /v1 în plus sau în minus pentru instrument. Claude Code: adresa fără /v1. Codex CLI: adresa cu /v1.
429 cu Shannon Coder call quota reached Apelurile Coder din fereastra curentă de 4 ore au fost consumate. Așteaptă fereastra următoare, treci la un plan cu mai multe apeluri sau selectează un model numărat în token-uri.
429 cu Quota exceeded Soldul tău nu acoperă cererea. Adaugă credit sau așteaptă cota zilnică a planului tău la 00:00 UTC.
400 cu prompt is too long Conversația este mai mare decât fereastra de context a modelului. Compactează sesiunea (/compact în ambele instrumente). Spune-i instrumentului fereastra de context a modelului, astfel încât să compacteze mai devreme.
Claude Code arată numere aproximative pentru context /v1/messages/count_tokens numără pentru modelele open-weight găzduite. Cu un id Shannon răspunde 400, iar Claude Code estimează singur dimensiunea. Nu este nimic de remediat. Selectează un model open-weight găzduit dacă vrei numărări exacte.
O captură de ecran lipită nu este luată în considerare shannon-coder-1 acceptă text la intrare. Selectează pentru acea sesiune un model care acceptă imagini.

Cheia și soldul tău se află pe pagina Chei și utilizare. Chei și utilizare