Salta al contingut
Eines de programació CLI

Eines de programació CLI

Nou

Fes servir Shannon com a model darrere de Claude Code, Codex CLI i altres CLI d'agents.

Una eina de programació necessita tres paràmetres per funcionar amb Shannon: la URL base de l'API, la teva clau API i un id de model Shannon. Aquesta pàgina dona els paràmetres exactes per a Claude Code i Codex CLI, explica com es compta el model de programació shannon-coder-1 i llista els errors que troben aquestes eines.

Quin endpoint fa servir cada eina

Eina Endpoint URL base que cal definir Nota
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com L'eina afegeix ella mateixa /v1/messages a la URL base.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 L'eina afegeix /responses a la URL base.
Altres eines d'agent que parlen el format de xat d'OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Defineix la URL base, la clau i un id de model Shannon a la configuració pròpia de l'eina.

Els tres endpoints accepten la mateixa clau API, com a Authorization: Bearer o com a x-api-key. S'accepten les capçaleres anthropic-version, anthropic-beta i openai-beta que envien aquestes eines.

Selecciona un model Shannon

Cada sol·licitud ha d'indicar un id de model que Shannon publiqui. Una eina de programació envia el nom del seu propi model per defecte si no li indiques una altra cosa, i un nom que Shannon no publica es respon amb 400 i el missatge unknown model: <name>. Cap altre nom s'associa a un model Shannon, així que defineix el model a l'eina abans de la primera sol·licitud.

GET /v1/models llista cada id amb la seva finestra de context. No necessita clau. Models i preus

Model Comptat com a Què aporta
shannon-coder-1 Una crida per sol·licitud a /v1/messages i /v1/chat/completions. Tokens a /v1/responses. El model de programació. Entrada de text, crides d'eina, finestra de context de 131,072 tokens.
shannon-1.6-lite
shannon-1.6-pro
Tokens del teu saldo. Models generals amb crides d'eina. shannon-1.6-lite va bé per a les sol·licituds curtes en segon pla que fa una eina.
Models open-weight hostejats Tokens del teu saldo, amb l'entrada en cache al 25% del preu d'entrada. Crides d'eina, prompt caching per a sessions llargues i recomptes exactes de /v1/messages/count_tokens.

Les eines de programació dirigeixen el model amb un prompt de sistema llarg. El prompt de sistema l'apliquen shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro i els models open-weight hostejats, així que selecciona'n un per a una eina de programació.

Claude Code

Claude Code llegeix la seva connexió de variables d'entorn. Defineix-les a la shell que l'inicia, o al bloc env de ~/.claude/settings.json per conservar-les a cada sessió.

# 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
Variable Descripció
ANTHROPIC_BASE_URL On Claude Code envia les seves sol·licituds. Fes servir l'adreça sense /v1.
ANTHROPIC_AUTH_TOKEN La teva clau API de Shannon, enviada com a Authorization: Bearer. ANTHROPIC_API_KEY també funciona: envia la clau com a x-api-key, i Claude Code demana una vegada que l'aprovis.
ANTHROPIC_MODEL El model de la sessió. claude --model <id> i /model <id> defineixen el mateix.
ANTHROPIC_DEFAULT_HAIKU_MODEL El model per a les sol·licituds en segon pla, com els títols de sessió, i per a tot el que demani haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL El model que es fa servir quan un subagent o una ordre demana sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL El model que es fa servir quan un subagent o una ordre demana opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS La finestra de context que Claude Code assumeix per al model. Fes servir el context_window que GET /v1/models informa per a l'id que has seleccionat.
  • Defineix les tres variables ANTHROPIC_DEFAULT_…_MODEL. Els subagents i algunes ordres demanen un model pel seu nom integrat, i cada nom s'ha de resoldre a un id Shannon.
  • L'exemple apunta les sol·licituds en segon pla a shannon-1.6-lite, que es compta en tokens. Els títols de sessió i sol·licituds semblants no fan servir llavors crides de Coder.
  • Claude Code demana a POST /v1/messages/count_tokens la mida del context. L'endpoint compta per als models open-weight hostejats. Amb un id Shannon respon 400; Claude Code tracta el recompte de tokens com a opcional i estima la mida per si mateix. Recompte de tokens

Per comprovar l'adreça, la clau i un id de model abans d'iniciar l'eina, envia una sol·licitud a mà:

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 parla amb l'API Responses. Descriu Shannon com a proveïdor de models a ~/.codex/config.toml, selecciona-hi un id de model Shannon i posa la teva clau API a la variable d'entorn que el proveïdor indica.

~/.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
Clau Descripció
model L'id del model Shannon. codex --model <id> el defineix per a una execució.
model_provider El nom del bloc de proveïdor que cal fer servir, aquí shannon.
base_url L'adreça de l'API amb /v1.
env_key El nom de la variable d'entorn que conté la teva clau API de Shannon.
wire_api responses: Codex parla amb POST /v1/responses.
model_context_window La finestra de context del model, perquè Codex compacti a temps una sessió llarga. Fes servir el context_window que informa GET /v1/models.
  • /v1/responses no guarda cap conversa al servidor: cada sol·licitud porta la conversa a input. previous_response_id s'accepta per compatibilitat.
  • Les eines de funció (type: "function") s'ofereixen al model a /v1/responses.
  • A /v1/responses, shannon-coder-1 es compta en tokens del teu saldo, no en crides de Coder.

La mateixa comprovació per a l'endpoint 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."
  }'

El model de programació i com es compta

shannon-coder-1 és el model Shannon per a agents de programació. GET /v1/models l'informa amb una finestra de context de 131,072 tokens, crides d'eina, raonament i entrada de text. Es compta d'una de dues maneres, segons l'endpoint que faci servir una eina.

Endpoint Una sol·licitud costa Es treu de
/v1/messages 1 crida per sol·licitud La quota de crides de Coder del teu pla. No es treu cap token del teu saldo.
/v1/chat/completions 1 crida per sol·licitud La quota de crides de Coder del teu pla. No es treu cap token del teu saldo.
/v1/responses Tokens, a $8.00 per 1M El teu saldo, com qualsevol altre model. La quota de crides no es fa servir.

Una crida és una sol·licitud, sigui quina sigui la seva mida. Es compta quan la sol·licitud s'accepta, abans que el model respongui. Una sessió d'agent envia una sol·licitud per cada pas que fa, de manera que una tasca llarga gasta moltes crides. La quota depèn del teu pla i torna a començar cada 4 hores, a les 00:00, 04:00, 08:00, 12:00, 16:00 i 20:00 UTC.

Pla Crides per finestra de 4 hores
Free 3
Plus 20
Standard 40
Pro 60

La pàgina del pla mostra les xifres actuals. Plans

Quan s'esgoten les crides d'una finestra, la sol·licitud es respon amb 429. A /v1/messages el mateix error arriba amb la forma d'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"
  }
}

Desbordament de context

Quan una conversa és més gran que la finestra de context del model, /v1/chat/completions i /v1/messages responen amb 400, el tipus invalid_request_error, el codi context_length_exceeded i un missatge que comença per prompt is too long. Les eines de programació llegeixen aquest error per compactar la sessió i tornar a enviar la sol·licitud. El produeixen 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
  }
}

El missatge és prompt is too long: <sent> tokens > <limit> maximum. Quan els dos números no es coneixen és prompt is too long. Please compact the conversation and try again.

En un stream l'estat ja és 200, així que l'error arriba com a esdeveniment i el stream es tanca després de la manera 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"}

En què pot confiar un bucle d'agent

Tema Comportament
Esquemes d'eines Les definicions d'eines es prenen tal com les envia l'eina. A shannon-coder-1 i shannon-1.6-*, les paraules clau de JSON Schema que el model no fa servir, com $schema, $ref, additionalProperties, default i title, s'ometen del que el model llegeix, i oneOf es llegeix com a anyOf. Cap sol·licitud es rebutja per això.
Arguments de la crida d'eina En un stream, els arguments d'una crida d'eina arriben complets en un sol delta: tool_calls[].function.arguments, input_json_delta.partial_json o response.function_call_arguments.delta.
Final d'un torn d'eina finish_reason: "tool_calls" a Chat Completions, stop_reason: "tool_use" a Messages.
Keep-alive Mentre el model treballa, /v1/messages envia event: ping i /v1/chat/completions envia una línia de comentari : ping cada 15 segons.
Aturar una sol·licitud Tancar la connexió atura el stream. El torn en si s'executa fins al final i es compta.

Resolució de problemes

Símptoma Causa Solució
400 amb unknown model: claude-… o unknown model: gpt-… L'eina ha enviat el nom del seu propi model per defecte. Només se serveixen els ids de Shannon publicats, i cap altre nom s'hi associa. Selecciona un id Shannon: ANTHROPIC_MODEL i les tres variables ANTHROPIC_DEFAULT_…_MODEL a Claude Code, model a la configuració de Codex.
400 amb unknown model: i sense cap nom, des de Codex CLI La sol·licitud no indicava cap model. /v1/responses en necessita un. Defineix model a ~/.codex/config.toml o passa --model.
401 amb Missing authentication o Invalid API key La clau no ha arribat a l'API, o no és una clau actual. Una clau Shannon comença per sk-. Comprova que la variable estigui definida a la shell que inicia l'eina. Torna a copiar la clau des de Keys & usage.
404 a cada sol·licitud La URL base té un /v1 de més o de menys per a l'eina. Claude Code: l'adreça sense /v1. Codex CLI: l'adreça amb /v1.
429 amb Shannon Coder call quota reached Les crides de Coder de la finestra actual de 4 hores s'han esgotat. Espera la finestra següent, passa a un pla amb més crides o selecciona un model que es compti en tokens.
429 amb Quota exceeded El teu saldo no cobreix la sol·licitud. Afegeix crèdit o espera la quota diària del teu pla a les 00:00 UTC.
400 amb prompt is too long La conversa és més gran que la finestra de context del model. Compacta la sessió (/compact a les dues eines). Digues a l'eina la finestra de context del model perquè compacti abans.
Claude Code mostra números de context aproximats /v1/messages/count_tokens compta per als models open-weight hostejats. Amb un id Shannon respon 400, i Claude Code estima la mida per si mateix. Res a corregir. Selecciona un model open-weight hostejat si vols recomptes exactes.
Una captura de pantalla enganxada no es té en compte shannon-coder-1 accepta entrada de text. Selecciona un model que accepti imatges per a aquesta sessió.

La teva clau i el teu saldo són a la pàgina Keys & usage. Keys & usage