Ferramentas de código CLI
NovoUsa Shannon como o modelo que hai detrás de Claude Code, Codex CLI e outras CLI de axentes.
Unha ferramenta de programación necesita tres axustes para funcionar con Shannon: a URL base da API, a túa clave API e un id de modelo de Shannon. Esta páxina dá os axustes exactos para Claude Code e Codex CLI, explica como se conta o modelo de código shannon-coder-1 e lista os erros que atopan estas ferramentas.
Que endpoint usa cada ferramenta
| Ferramenta | Endpoint | URL base que definir | Nota |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | A ferramenta engade /v1/messages á URL base por si mesma. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | A ferramenta engade /responses á URL base. |
| Outras ferramentas de axentes que falan o formato de chat de OpenAI | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Define a URL base, a clave e un id de modelo de Shannon nos axustes da propia ferramenta. |
Os tres endpoints aceptan a mesma clave API, como Authorization: Bearer ou como x-api-key. Acéptanse as cabeceiras anthropic-version, anthropic-beta e openai-beta que envían estas ferramentas.
Seleccionar un modelo de Shannon
Cada solicitude debe nomear un id de modelo que Shannon publique. Unha ferramenta de programación envía o nome do seu propio modelo predeterminado a menos que lle indiques outra cousa, e un nome que Shannon non publica recibe 400 e a mensaxe unknown model: <name>. Ningún outro nome se asigna a un modelo de Shannon, así que define o modelo na ferramenta antes da primeira solicitude.
GET /v1/models lista todos os ids coa súa ventá de contexto. Non necesita clave. Modelos e prezos
| Modelo | Contado como | Que achega |
|---|---|---|
shannon-coder-1 | Unha chamada por solicitude en /v1/messages e /v1/chat/completions. Tokens en /v1/responses. | O modelo de código. Entrada de texto, chamadas a ferramentas, ventá de contexto de 131,072 tokens. |
shannon-1.6-liteshannon-1.6-pro | Tokens do teu saldo. | Modelos xerais con chamadas a ferramentas. shannon-1.6-lite é axeitado para as solicitudes curtas en segundo plano que fai unha ferramenta. |
| Modelos open-weight alojados | Tokens do teu saldo, coa entrada en caché ao 25% do prezo de entrada. | Chamadas a ferramentas, caché de prompts para sesións longas e recontos exactos desde /v1/messages/count_tokens. |
As ferramentas de programación guían o modelo cun system prompt longo. O system prompt aplícano shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro e os modelos open-weight alojados, así que selecciona un destes para unha ferramenta de programación.
Claude Code
Claude Code le a súa conexión de variables de contorna. Defínas no shell que o inicia, ou no bloque env de ~/.claude/settings.json para conservalas en todas as sesións.
# 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"
}
} | Variable | Descrición |
|---|---|
ANTHROPIC_BASE_URL | Onde Claude Code envía as súas solicitudes. Usa o enderezo sen /v1. |
ANTHROPIC_AUTH_TOKEN | A túa clave API de Shannon, enviada como Authorization: Bearer. ANTHROPIC_API_KEY tamén funciona: envía a clave como x-api-key, e Claude Code pide unha vez que a aprobes. |
ANTHROPIC_MODEL | O modelo da sesión. claude --model <id> e /model <id> definen o mesmo. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | O modelo para solicitudes en segundo plano, como os títulos de sesión, e para todo o que pida haiku. |
ANTHROPIC_DEFAULT_SONNET_MODEL | O modelo que se usa cando un subagente ou un comando pide sonnet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | O modelo que se usa cando un subagente ou un comando pide opus. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | A ventá de contexto que Claude Code asume para o modelo. Usa o context_window que informa GET /v1/models para o id que seleccionaches. |
- Define as tres variables
ANTHROPIC_DEFAULT_…_MODEL. Os subagentes e algúns comandos piden un modelo polo seu nome integrado, e cada nome debe resolverse a un id de Shannon. - O exemplo dirixe as solicitudes en segundo plano a
shannon-1.6-lite, que se conta en tokens. Así, os títulos de sesión e solicitudes semellantes non usan chamadas de Coder. - Claude Code pregunta a
POST /v1/messages/count_tokenspolo tamaño do contexto. O endpoint conta para os modelos open-weight alojados. Con un id de Shannon responde400; Claude Code trata o reconto de tokens como opcional e estima el mesmo o tamaño. Reconto de tokens
Para comprobar o enderezo, a clave e un id de modelo antes de iniciar a ferramenta, envía unha solicitude a man:
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 comunícase coa API Responses. Describe Shannon como provedor de modelos en ~/.codex/config.toml, selecciona alí un id de modelo de Shannon e pon a túa clave API na variable de contorna que nomea o provedor.
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 | Clave | Descrición |
|---|---|
model | O id de modelo de Shannon. codex --model <id> defíneo para unha execución. |
model_provider | O nome do bloque de provedor que se vai usar, aquí shannon. |
base_url | O enderezo da API con /v1. |
env_key | O nome da variable de contorna que contén a túa clave API de Shannon. |
wire_api | responses: Codex comunícase con POST /v1/responses. |
model_context_window | A ventá de contexto do modelo, para que Codex compacte a tempo unha sesión longa. Usa o context_window que informa GET /v1/models. |
/v1/responsesnon garda ningunha conversa no servidor: cada solicitude leva a conversa eninput.previous_response_idacéptase por compatibilidade.- As ferramentas de función (
type: "function") ofrécense ao modelo en/v1/responses. - En
/v1/responses,shannon-coder-1cóntase en tokens do teu saldo, non en chamadas de Coder.
A mesma comprobación para o endpoint 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."
}' O modelo de código e como se conta
shannon-coder-1 é o modelo de Shannon para axentes de programación. GET /v1/models infórmao cunha ventá de contexto de 131,072 tokens, chamadas a ferramentas, razoamento e entrada de texto. Cóntase de dúas maneiras, segundo o endpoint que use unha ferramenta.
| Endpoint | Unha solicitude custa | Tomado de |
|---|---|---|
/v1/messages | 1 chamada por solicitude | A cota de chamadas de Coder do teu plan. Non se toma ningún token do teu saldo. |
/v1/chat/completions | 1 chamada por solicitude | A cota de chamadas de Coder do teu plan. Non se toma ningún token do teu saldo. |
/v1/responses | Tokens, a $8.00 por 1M | O teu saldo, como calquera outro modelo. Non se usa a cota de chamadas. |
Unha chamada é unha solicitude, sexa cal sexa o seu tamaño. Cóntase cando se acepta a solicitude, antes de que responda o modelo. Unha sesión de axente envía unha solicitude por cada paso que dá, así que unha tarefa longa usa moitas chamadas. A cota depende do teu plan e comeza de novo cada 4 horas, ás 00:00, 04:00, 08:00, 12:00, 16:00 e 20:00 UTC.
| Plan | Chamadas por xanela de 4 horas |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
A páxina de planes mostra as cifras actuais. Planes
Cando se esgotan as chamadas dunha xanela, a solicitude recibe 429. En /v1/messages o mesmo erro vén coa forma de 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"
}
} Desbordamento de contexto
Cando unha conversa é máis grande que a ventá de contexto do modelo, /v1/chat/completions e /v1/messages responden con 400, o tipo invalid_request_error, o código context_length_exceeded e unha mensaxe que comeza por prompt is too long. As ferramentas de programación len este erro para compactar a sesión e enviar a solicitude de novo. Prodúceno shannon-coder-1, shannon-1.6-lite e 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
}
} A mensaxe é prompt is too long: <sent> tokens > <limit> maximum. Cando non se coñecen os dous números, é prompt is too long. Please compact the conversation and try again.
Nun stream o estado xa é 200, así que o erro chega como un evento e despois o stream péchase de forma normal:
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"} En que pode confiar un bucle de axente
| Tema | Comportamento |
|---|---|
| Esquemas de ferramentas | As definicións de ferramentas tómanse tal como as envía a ferramenta. En shannon-coder-1 e shannon-1.6-*, as palabras clave de JSON Schema que o modelo non usa, como $schema, $ref, additionalProperties, default e title, quedan fóra do que le o modelo, e oneOf lese como anyOf. Ningunha solicitude se rexeita por elas. |
| Argumentos da chamada a unha ferramenta | Nun stream, os argumentos dunha chamada a unha ferramenta chegan completos nun só delta: tool_calls[].function.arguments, input_json_delta.partial_json ou response.function_call_arguments.delta. |
| Fin dun turno de ferramenta | finish_reason: "tool_calls" en Chat Completions, stop_reason: "tool_use" en Messages. |
| Keep-alive | Mentres o modelo traballa, /v1/messages envía event: ping e /v1/chat/completions envía unha liña de comentario : ping cada 15 segundos. |
| Deter unha solicitude | Pechar a conexión detén o stream. O turno en si execútase ata o final e cóntase. |
Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
400 con unknown model: claude-… ou unknown model: gpt-… | A ferramenta enviou o nome do seu propio modelo predeterminado. Só se serven ids de Shannon publicados, e ningún outro nome se asigna a un deles. | Selecciona un id de Shannon: ANTHROPIC_MODEL e as tres variables ANTHROPIC_DEFAULT_…_MODEL en Claude Code, model na configuración de Codex. |
400 con unknown model: sen nome, desde Codex CLI | A solicitude non nomeou ningún modelo. /v1/responses necesita un. | Define model en ~/.codex/config.toml ou pasa --model. |
401 con Missing authentication ou Invalid API key | A clave non chegou á API, ou non é unha clave actual. Unha clave de Shannon comeza por sk-. | Comproba que a variable está definida no shell que inicia a ferramenta. Copia a clave de novo desde Claves e uso. |
404 en todas as solicitudes | A URL base ten un /v1 de máis ou de menos para a ferramenta. | Claude Code: o enderezo sen /v1. Codex CLI: o enderezo con /v1. |
429 con Shannon Coder call quota reached | Esgotáronse as chamadas de Coder da xanela actual de 4 horas. | Agarda á seguinte xanela, pasa a un plan con máis chamadas ou selecciona un modelo que se conte en tokens. |
429 con Quota exceeded | O teu saldo non cobre a solicitude. | Engade crédito, ou agarda á cota diaria do teu plan ás 00:00 UTC. |
400 con prompt is too long | A conversa é máis grande que a ventá de contexto do modelo. | Compacta a sesión (/compact nas dúas ferramentas). Indícalle á ferramenta a ventá de contexto do modelo para que compacte antes. |
| Claude Code mostra cifras de contexto aproximadas | /v1/messages/count_tokens conta para os modelos open-weight alojados. Con un id de Shannon responde 400, e Claude Code estima el mesmo o tamaño. | Nada que corrixir. Selecciona un modelo open-weight alojado se queres recontos exactos. |
| Unha captura de pantalla pegada non se ten en conta | shannon-coder-1 acepta entrada de texto. | Selecciona para esa sesión un modelo que acepte imaxes. |
A túa clave e o teu saldo están na páxina Claves e uso. Claves e uso