Todas las páginas
En esta página

DeepSeek Nuevo en 0.9.17

El proveedor DeepSeek ejecuta los modelos de DeepSeek con tu propia clave de API de DeepSeek. DeepSeek no tiene agente propio, así que OAR ejecuta Claude Code en la máquina del relay y lo dirige a la API compatible con Anthropic de DeepSeek. El agente trabaja en la carpeta de la conversación con las herramientas de Claude Code; el modelo de DeepSeek hace el razonamiento. Los turns se facturan a la cuenta de DeepSeek a la que pertenece la clave.

Como el agente es Claude Code, un chat de DeepSeek tiene casi todo lo que tiene un chat de Claude: los cuatro modos del relay, las tarjetas de pregunta, el tablero del plan, los subagents, la corrección del rumbo y las tareas en segundo plano. La tabla de todos los proveedores está en Los proveedores de un vistazo.

La clave de API #

Necesitas una clave de API de DeepSeek y nada más: no hay CLI que instalar ni interviene ninguna cuenta de Claude. Abre Settings → Providers → DeepSeek (Ajustes → Proveedores → DeepSeek), la última subpestaña.

Control Predeterminado Qué hace
Enable DeepSeek for New Chat model selection (Activar DeepSeek en la selección de modelo de los chats nuevos) activado en cuanto se guarda una clave Ofrece DeepSeek en New Chat (Nuevo chat). No se puede marcar antes de guardar una clave, y se aplica en cuanto lo cambias.
El campo de la clave (DeepSeek API key…) vacío Tu clave. Una vez guardada una clave, el campo dice Saved API key (enter to replace). Déjalo vacío para conservar la clave guardada.
Default model (Modelo predeterminado) deepseek-flash El modelo con el que empieza una conversación nueva de DeepSeek. Consulta Modelos.
Commit attribution (Atribución de commits) OAR Lo que dicen los commits. Consulta Atribución de commits.
Monthly budget (optional) (Presupuesto mensual, opcional), Budget currency (Moneda del presupuesto) vacío, USD ($) Una barra de presupuesto en la tarjeta de consumo. Consulta Presupuesto mensual.
Starting balance (optional) (Saldo inicial, opcional) vacío Desde dónde mide la barra del saldo. Consulta Saldo inicial y recargas.
Advanced → Base URL (Avanzado → URL base) vacío Otro endpoint en lugar del propio de DeepSeek. Consulta Otro endpoint.
Save DeepSeek settings (Guardar los ajustes de DeepSeek) Guarda todos los campos de arriba. El primer guardado de una clave también activa DeepSeek.
Remove saved key (Quitar la clave guardada) Pregunta Remove the saved DeepSeek API key? y luego elimina la clave, los modelos detectados y tu elección en Select Models (Seleccionar modelos), y desactiva DeepSeek. El modelo predeterminado se queda.
Import usage export (Importar exportación de consumo) Al pie de la pestaña: los dos archivos de la exportación de consumo de DeepSeek, Amount file (Archivo de importes) y Cost file (Archivo de costes), para la tarjeta de consumo. Consulta Importar la exportación de consumo.

La línea bajo los campos dice en qué punto estás:

Estado Significado
Not configured. New conversations use GitHub Copilot. No hay ninguna clave guardada.
API key saved but currently disabled. Enable it to allow DeepSeek selection in New Chat. Hay una clave guardada y el interruptor está desactivado.
DeepSeek is enabled. Select DeepSeek in New Chat to use it. Listo.

Después inicia una conversación como siempre: en New Chat, elige DeepSeek. Consulta Iniciar una conversación.

Dónde se guarda la clave y quién la ve #

  • La clave se guarda en la base de datos del relay, en la máquina del relay. El panel no vuelve a mostrarla nunca, y nunca se envía a un navegador: los ajustes solo dicen que hay una clave guardada.
  • Solo llega a los workers de los chats de DeepSeek. Donde las sesiones corren bajo tmux, les llega a través de un archivo que solo puede leer el usuario del relay. Dentro del worker se convierte en el token de Claude Code para el endpoint de DeepSeek.
  • Se envía a la URL base y a ningún otro sitio: a la API de DeepSeek o a la dirección indicada en Advanced. Cuando fallan las peticiones propias del relay a DeepSeek (la lista de modelos, el saldo), el texto del error lleva la clave eliminada.
  • No se puede fijar desde el entorno: un DEEPSEEK_API_KEY en el propio entorno del relay no se transmite; los workers reciben la clave del panel.
  • El agente puede leerla. Claude Code tiene la clave en su entorno, así que los comandos que ejecuta el agente pueden verla, como ocurre con cualquier clave que tenga una CLI. El relay sustituye la clave por [redacted] en todo lo que publica un worker de sesión (respuestas, pensamientos, actividad de herramientas, texto de subagents, preguntas, salida de tareas) antes de guardarlo, mostrarlo o registrarlo, y el worker de DeepSeek hace lo mismo en su propio registro. Donde un texto se recortó, también se elimina la parte de la clave que contiene, a partir de 8 caracteres. Una clave que cambiaste o quitaste sigue ocultándose hasta que se reinicia el relay. La salida de tareas que el relay lee del archivo de una tarea se limpia según la forma de las claves y los tokens largos, no según el texto de la clave guardada. Esto mantiene la clave fuera de lo que OAR guarda y muestra. No es ninguna barrera frente al agente, que puede cambiar el texto antes de imprimirlo, llamar él mismo a la API local del relay o leer la base de datos del relay.

Guardar, cambiar y quitar la clave #

  • La clave debe tener de 8 a 512 caracteres, sin espacios. Si no, el guardado falla con The DeepSeek API key has an invalid format.
  • Guardar una clave mientras DeepSeek está activado pide sus modelos a DeepSeek (consulta Modelos). Si eso falla, el aviso dice por qué, y la lista recurre a lo que se describe allí.
  • Guardar una clave distinta borra los modelos detectados y detiene los workers de DeepSeek en marcha, incluido uno que esté a mitad de un turn, así que cambia la clave entre turns. El siguiente mensaje los arranca con la clave nueva.
  • Quitar la clave se rechaza mientras alguna conversación de DeepSeek haya enviado un mensaje o tenga uno en cola: Cannot remove the DeepSeek API key while N DeepSeek conversation(s) still exist. Switch DeepSeek off for new conversations instead. Cuando sale adelante, las conversaciones que aún no han enviado ningún mensaje vuelven a Copilot. Desactivar DeepSeek no mueve nada; solo quita DeepSeek de New Chat.

Modelos #

Modelo Se muestra como Imágenes
deepseek-flash (el predeterminado) DeepSeek Flash Sí
deepseek-v4-pro DeepSeek V4 Pro No

De dónde sale la lista. El relay consulta GET /models de DeepSeek con tu clave y se queda con los IDs que empiezan por deepseek-. Lo consulta cuando guardas una clave, cuando vuelves a activar DeepSeek, cuando cambias la URL base y con Refresh (Actualizar) en 🤗 Select Models. Una petición se abandona a los 10 segundos. Hasta que se lee una lista, los selectores ofrecen deepseek-flash y deepseek-v4-pro. Una lectura fallida, o una que no lista ningún modelo de DeepSeek, conserva la lista que tenía el relay; después de Refresh el aviso dice DeepSeek model discovery failed. Cached DeepSeek models were kept: ….

Cuáles se muestran. 🤗 Select Models → DeepSeek (Seleccionar modelos → DeepSeek) elige qué modelos ofrece el área de redacción; 💾 Save enabled models (Guardar los modelos activados) guarda la elección. Si no se ha elegido nada, se ofrecen todos. El Default model siempre se ofrece y no se puede desmarcar.

Por mensaje. Una conversación puede cambiar de modelo entre turns. Un cambio reinicia el Claude Code de la conversación con el modelo nuevo antes del siguiente mensaje; la conversación sigue donde estaba. Un modelo que el relay no ofrece se rechaza con DeepSeek model "…" is not available.

Imágenes. DeepSeek V4 Pro no acepta imágenes como entrada, y tampoco un modelo que OAR no conoce. Un modelo así recibe cada imagen adjunta como una ruta de archivo. Una vez que una conversación contiene imágenes, se rechaza el cambio a un modelo así, porque el historial que reanuda haría fallar la petición: DeepSeek V4 Pro takes no images, and this conversation already has some. Stay on DeepSeek Flash, or start a new DeepSeek conversation for DeepSeek V4 Pro.

Reasoning effort #

Los modelos de DeepSeek siempre piensan. El selector de effort ofrece cuánto: low, high o max, los mismos tres para todos los modelos. high es el predeterminado.

No hay none: Claude Code nunca pide a DeepSeek que desactive el thinking, así que OAR no lo ofrece, y el cuadro de diálogo 🧠 no tiene controles de Thinking (Razonamiento) para DeepSeek.

El effort se fija cuando arranca Claude Code. Por eso un effort distinto reinicia el Claude Code de la conversación entre turns, como un cambio de modelo, y la conversación sigue donde estaba.

Un effort que viene de otra parte, por ejemplo de un agente en otro relay, se convierte a los niveles de DeepSeek: none y minimal corren como low, medium y xhigh como high, ultra y ultracode como max. Un mensaje sin effort, o con un nombre para el que DeepSeek no tiene nivel, conserva el effort de la conversación. Una conversación nueva sin effort empieza en high; una creada con un nombre para el que DeepSeek no tiene nivel empieza en low.

La carpeta y la sesión #

Un chat de DeepSeek ejecuta el mismo worker que un chat de Claude, basado en el Claude Agent SDK, en la máquina del relay: uno por conversación, en la carpeta de trabajo de la conversación. Su Claude Code es la compilación incluida en el Agent SDK, o el binario claude que el relay usa para los chats de Claude cuando hay uno fijado (CLAUDE_CODE_EXECUTABLE, que fija una instalación de la CLI desde la subpestaña Claude). Claude Code se dirige a <base URL>/anthropic, la API compatible con Anthropic de DeepSeek. El primer turn de un worker muestra la línea de actividad Starting Claude Code for DeepSeek (cold start)….

Su propia carpeta de configuración. Claude Code, en un chat de DeepSeek, guarda su estado, sus sesiones y sus transcripciones en deepseek-claude dentro de la carpeta de datos del relay, que solo puede leer el usuario del relay. Nunca usa ~/.claude (ni CLAUDE_CONFIG_DIR): el inicio de sesión de Claude de la máquina, tus ajustes globales, las skills, los plugins y los servidores MCP quedan fuera de su alcance. El CLAUDE.md y la carpeta .claude/ propios de un repositorio siguen aplicándose, salvo que no pueden desviar el tráfico de DeepSeek.

Sin inicio de sesión de Claude. El worker le da a Claude Code la clave de DeepSeek y nada de la configuración de Claude de la máquina. Un token de inicio de sesión de Claude en el entorno del relay no le llega. OAR también desactiva el tráfico propio de Claude Code hacia Anthropic, como las comprobaciones de actualizaciones y la telemetría.

Lo que funciona igual que en Claude. Esto sale del mismo ejecutor que los chats de Claude y se comporta como se describe en Claude:

  • los cuatro modos del relay; plan termina con el tablero Plan ready for review (Plan listo para revisar);
  • las herramientas en la máquina del relay, las tarjetas de pregunta con selección múltiple, el visor de subagents, las tareas en segundo plano en el panel de tareas, Stop (Detener) y la corrección del rumbo: el botón de enviar dice Steer (Corregir el rumbo) durante un turn;
  • las herramientas de agente preview y relay_tool de OAR;
  • el botón Session root (Raíz de la sesión) del explorador de archivos, que abre la carpeta de la sesión dentro de deepseek-claude/projects;
  • el límite de comandos en segundo plano de la subpestaña Claude;
  • la reanudación tras un reinicio, a partir del ID de sesión guardado. Eliminar una conversación de DeepSeek elimina su sesión de Claude Code en deepseek-claude; el gasto que añadió se queda en los totales de la tarjeta de consumo.

Los subagents se quedan en el modelo del chat. Claude Code nombra sus modelos con alias. OAR los fija: un subagent que el agente pide como "opus", "sonnet" o "fable", o uno sin modelo, corre con el modelo de la conversación; uno pedido como "haiku" corre con DeepSeek Flash. Las llamadas pequeñas propias de Claude Code, como títulos y resúmenes, también van a DeepSeek Flash. La insignia de un subagent nombra el modelo de DeepSeek. Un cambio de modelo reinicia Claude Code para que las fijaciones lo sigan.

Contexto y compactación. Los modelos de DeepSeek tienen una ventana de 1.048.576 tokens. El chip Context window (Ventana de contexto) del área de redacción muestra esa única ventana, como 1.05M; no hay nada que elegir. El cuadro de diálogo 🧠 muestra el contexto tal como lo informa Claude Code. Un chat de DeepSeek compacta a los 400K tokens salvo que fijes otra ventana con el control deslizante de compactación automática del cuadro de diálogo: muy por debajo de la ventana, para que un turn posterior a la caducidad de la caché de DeepSeek no vuelva a enviar casi un millón de tokens al precio de fallo de caché.

Adjuntos. En un modelo que acepta imágenes, las imágenes de hasta 5 MB van dentro del mensaje; las imágenes más grandes y los demás archivos se pasan como rutas para que el agente los lea. Consulta Modelos para ver los modelos que no aceptan imágenes.

Lo que no hay en DeepSeek. Los medidores del plan de Claude y la pausa por límite de uso no se aplican. Las respuestas de DeepSeek no tienen línea de consumo; el coste está en la tarjeta de consumo.

Los ajustes de la carpeta no pueden desviar DeepSeek #

Un .claude/settings.json o .claude/settings.local.json en la carpeta puede fijar variables de entorno y un key helper para Claude Code. En un chat de DeepSeek, el relay fija por encima de ellos la URL base y la clave, y con ellas los ajustes de proxy, confianza TLS, proveedor y credenciales: los ajustes de la carpeta no pueden dirigir Claude Code a otra dirección, cambiar la clave por otra ni enviar las peticiones a través de un proxy propio. Para esto la clave no se pone en la línea de comandos.

Nuevo en 0.9.18 Sin hooks. Claude Code, en un chat de DeepSeek, arranca con todos los hooks y la línea de estado desactivados: no se ejecutan ni los de la carpeta de ajustes propia de DeepSeek, ni los de la carpeta del chat (.claude/settings.json, settings.local.json), ni los de un plugin. Se ejecutarían como el usuario del relay con la clave en su entorno, y el hook SessionStart de una carpeta incluso antes de que el relay hubiera fijado el endpoint y la clave. El ajuste está en la línea de comandos de Claude Code, así que un archivo de ajustes no puede volver a activarlos. Los hooks de los ajustes gestionados, los del administrador de la máquina, sí se ejecutan. En 0.9.17 esos hooks se ejecutaban; volver a 0.9.17 los vuelve a activar.

Si Claude Code no adopta los ajustes fijados en un minuto, el turn falla antes de enviar nada, con Claude Code did not take the DeepSeek connection settings before the first message, so nothing was sent. Vuelve a enviar el mensaje; si falla otra vez, actualiza el relay y busca el motivo en su registro.

Qué va a DeepSeek #

Todo lo que el agente lee y escribe durante un turn va a DeepSeek: tus mensajes, los archivos que abre, la salida de sus comandos y el contexto que Claude Code añade a cada sesión, como la ruta de la carpeta y los archivos CLAUDE.md. Durante un turn medido, la API de DeepSeek fue el único host con el que habló Claude Code.

Atribución de commits #

Opción Commits Pull requests
OAR (predeterminada) Terminan con Co-authored-by: Open Agent Relay (DeepSeek Flash) <no-reply@oar.sh>, con el nombre del modelo en uso. Terminan con 🤖 Generated with [Open Agent Relay](https://oar.sh).
Off (Desactivado) Sin línea de atribución. Sin línea de atribución.

No hay Vanilla (Original): las líneas propias de Claude Code atribuirían a Claude el trabajo de DeepSeek. La elección propia de una carpeta, fijada en el cuadro de diálogo 🧠 de una conversación de Claude en esa carpeta, se aplica también a los chats de DeepSeek de allí, con Vanilla leído como OAR. El cuadro de diálogo 🧠 de un chat de DeepSeek no tiene selector de atribución.

Otro endpoint #

Advanced → Base URL acepta otra dirección, por ejemplo para un proxy. Déjalo vacío para https://api.deepseek.com. La dirección debe usar https, o http en esta máquina (localhost, 127.0.0.1 o ::1), y no debe contener nombre de usuario, contraseña, consulta ni fragmento. La clave se envía allí y a ningún otro sitio. Guardar una dirección nueva borra los modelos detectados y los vuelve a leer desde ella. Un worker de DeepSeek que ya está en marcha conserva la dirección con la que arrancó.

WebSearch y WebFetch #

Claude Code tiene dos herramientas web, y corren en lugares distintos:

Herramienta Dónde corre Lo que cuesta
WebSearch En los servidores de DeepSeek, mediante la búsqueda de DeepSeek. Una petición de búsqueda: 0,75 $ o 5 ¥ por cada 1.000 correctas, a partir del 2026-10-31 16:00 UTC. Antes de eso se cuentan sin coste.
WebFetch En la máquina del relay: Claude Code descarga la página él mismo y hace que DeepSeek Flash la lea. Solo los tokens de Flash, contabilizados como los de cualquier otro turn. No se factura ninguna petición.

La tarjeta de consumo cuenta las búsquedas en una fila Search (Búsqueda) propia. El recuento sale de los totales propios de Claude Code, que cuentan cada búsqueda que hace su herramienta WebSearch.

La tarjeta de consumo #

📊 Check Usage (Ver consumo) tiene una tarjeta DeepSeek mientras DeepSeek está activado. DeepSeek es de pago por uso, así que la tarjeta muestra dinero: el saldo de la cuenta, leído en vivo con la clave guardada, y lo que han costado los turns de DeepSeek de este relay, estimado a partir de sus tokens con los precios de DeepSeek (consulta Cómo se hace la estimación).

El gasto se muestra en la moneda del saldo (la que tiene dinero), o en dólares estadounidenses cuando no hay saldo en el que basarse. La tarjeta lo muestra todo a la vez, con las cifras primero, y cabe en el ancho de un teléfono. De arriba abajo:

Parte Qué muestra
Barras Balance (USD) (Saldo, USD), Balance (CNY) (Saldo, CNY) Una barra por cada moneda con dinero: lo que queda, medido frente al saldo tras su última recarga. La línea de debajo dice desde dónde se mide. Consulta Saldo inicial y recargas.
Barra Monthly budget (USD) (Presupuesto mensual, USD) o (CNY) Solo cuando hay un presupuesto fijado. Consulta Presupuesto mensual.
Cifras El saldo por moneda, con lo recargado y lo bonificado, y Estimated spend on this relay (Gasto estimado en este relay) desde el primer turn de DeepSeek.
Daily spend, last 30 days (Gasto diario, últimos 30 días) Una columna por día UTC, apilada por modelo. Pasa el puntero por una columna o tócala para ver el total del día y la parte de cada modelo.
Where the money goes (Adónde va el dinero) Una barra por modelo, dividida en Cache hit (Acierto de caché), Cache miss (Fallo de caché), Output (Salida) y, cuando las hay, Search. Su cabecera dice lo que ahorró la caché.
Estimated spend by model (Gasto estimado por modelo) Una fila por modelo con sus turns y, cuando las hay, una fila Search: lo que costaron las búsquedas web y cuántas hubo, como 3 searches.
Tokens by model (Tokens por modelo) Tokens de acierto de caché, de fallo de caché y de salida por modelo, y qué parte de la entrada salió de la caché.
La nota sobre la estimación Precios, horas punta y lo que no se cuenta, con un enlace Prices (Precios).

Las barras cambian de color a medida que se llenan y se ponen rojas al 90 %, como en todas las tarjetas; consulta Leer una tarjeta. El pie enlaza a DeepSeek usage (Consumo de DeepSeek) y Top up (Recargar) en la plataforma de DeepSeek.

Una vez importada la exportación de consumo de DeepSeek, la tarjeta muestra las cifras propias de DeepSeek en los días que cubre la exportación, y las etiquetas dicen Spend, actual and estimated (Gasto, real y estimado) y Spend by model, actual and estimated (Gasto por modelo, real y estimado). Consulta Importar la exportación de consumo.

Los gráficos. Se dibujan sin biblioteca de gráficos y funcionan en los dos esquemas de color. En Daily spend (Gasto diario) un modelo conserva su color de una lectura a la siguiente: primero DeepSeek Flash, luego DeepSeek V4 Pro y luego los demás modelos por nombre; con más de cuatro modelos, el cuarto y los siguientes comparten Other models (Otros modelos). Cada columna y cada barra tienen un equivalente en texto para lectores de pantalla y un tooltip al pasar el puntero, al enfocarlas o al tocarlas, y cada gráfico tiene un desplegable As a table (Como tabla) con las mismas cifras. Daily spend se omite cuando no hubo gasto en los últimos 30 días, y su nota dice cuándo empieza el historial diario en este relay, si es más tarde. El ahorro de la caché son los aciertos de caché al precio de fallo de caché, menos lo que costaron.

Cuando no se puede leer el saldo. Una lectura se abandona a los 5 segundos. Una respuesta se conserva durante un minuto; un fallo, durante 15 segundos. Cuando una lectura falla, la tarjeta se marca como Partial (Parcial), dice The balance could not be read: … y muestra el último saldo que leyó, as read con su hora. Cuando DeepSeek informa de que el saldo es demasiado bajo para llamadas a la API, la tarjeta dice DeepSeek reports this balance as not enough for API calls: DeepSeek turns fail until it is topped up. con un enlace Top up.

Un agente puede leer la misma tarjeta con la acción usage de relay_tool.

Presupuesto mensual #

Monthly budget (optional) en la subpestaña de DeepSeek añade una barra de presupuesto a la tarjeta: el gasto estimado en DeepSeek de este relay en el mes natural frente al importe.

  • Budget currency: USD ($) (preseleccionada para un presupuesto nuevo), CNY (¥) o The balance's currency (may change) (Moneda del saldo, puede cambiar). La barra lleva el nombre de su moneda, por ejemplo Monthly budget (CNY), y cuenta el gasto en esa moneda, sea cual sea la del saldo. Un presupuesto guardado antes de que se pudiera elegir la moneda sigue la moneda del saldo.
  • La barra se marca como estimated (estimado). Con días de una exportación de consumo importada en el mes (y el presupuesto en la moneda de la tarjeta), no lo está, y su nota dice que el gasto es real en esos días y estimado en los demás. Cambia de color al 50 % y al 75 % del presupuesto y se pone roja al 90 %.
  • Cuenta por día UTC y vuelve a empezar el día 1 de cada mes (UTC); la barra muestra cuándo se reinicia.
  • Deja el importe vacío, o escribe 0, para no tener barra. Los importes conservan dos decimales.

Saldo inicial y recargas #

DeepSeek le dice a OAR el saldo, no lo que has ingresado. Por eso la barra del saldo necesita algo con lo que compararse, y OAR lo guarda por moneda en el relay:

  • Sin saldo inicial, la barra mide desde el saldo justo después de su última recarga. Hasta que el relay ve una recarga, mide desde el saldo más alto que ha leído, así que la barra empieza vacía y se llena con el gasto. La línea bajo la barra indica el importe y el día en que se leyó, por ejemplo Measured from ¥110.00, the highest balance seen (2026-10-20).
  • Una recarga (o una bonificación) es cualquier subida del saldo entre dos lecturas. El relay lee el saldo cuando se abre la tarjeta (o cuando un agente lee la tarjeta), así que detecta una recarga en la siguiente lectura. A partir de ahí, la barra mide desde el saldo posterior a ella.
  • Starting balance (optional) fija en su lugar el importe desde el que medir, por ejemplo tu primera recarga. Está en la moneda del saldo y se aplica a la barra de esa moneda. La línea bajo la barra dice Measured from …, the starting balance set on the DeepSeek tab. Déjalo vacío para medir como sin él.

Qué le hace una recarga al saldo inicial. Una recarga posterior a fijarlo lo sustituye: la barra mide desde el saldo tras la recarga, y la subpestaña de DeepSeek dice No longer used: the balance rose on <date> (a top-up), so the bar measures from the balance after it. Enter an amount again to measure from it. Para volver a usar un saldo inicial, escribe un importe en el campo (sirve el mismo importe) y guarda. Guardar los otros campos de la subpestaña no recupera el importe anterior.

Una recarga hecha antes de fijar el saldo inicial no lo sustituye, aunque el saldo esté ahora por encima del importe. Guardar un saldo inicial lee el saldo en ese momento, y una subida solo sustituye el importe cuando el relay había leído el saldo después de que lo fijaras. Así que puedes recargar, introducir el saldo nuevo y guardar. Si esa lectura falla, el importe se mantiene hasta una recarga posterior a la siguiente lectura correcta del relay.

Importar la exportación de consumo #

El gasto de la tarjeta es una estimación. Para tener las cifras propias de DeepSeek, exporta tu consumo en la página de consumo de DeepSeek (DeepSeek usage, al pie de la tarjeta, enlaza allí) e impórtalo. La exportación son dos archivos CSV del periodo que elijas: los importes (tokens y peticiones por modelo y clave de API, con sus precios) y el coste.

  1. Exporta un periodo en la página de consumo de DeepSeek.
  2. En Settings → Providers → DeepSeek, en Import usage export, elige el Amount file y el Cost file y pulsa Import usage export.
  3. La línea bajo el botón dice qué se importó (las filas, los días, los modelos) y si la tarjeta lo usa.

Qué muestra entonces la tarjeta. En los días que cubre la exportación, las cifras de la clave guardada en la pestaña sustituyen la estimación: tokens, peticiones y coste por modelo, según los días de la exportación. Todos los demás días siguen estimados, incluido un hueco entre dos importaciones. Las etiquetas dicen Spend, actual and estimated y Spend by model, actual and estimated, la fila de un modelo añade cuántas peticiones contó la exportación, y una nota indica el final de la última exportación.

  • Solo la clave guardada. La exportación lista todas las claves de la cuenta; la tarjeta cuenta las filas de la clave guardada, dondequiera que se usara la clave, no solo desde este relay.
  • Una sola moneda. La tarjeta solo usa las filas en su propia moneda, la del saldo. Cuando la exportación está en otra, la importación lo dice y la tarjeta sigue estimada.
  • Búsquedas. En los días de la exportación, el coste de la exportación incluye las búsquedas web, así que la tarjeta no añade allí ninguna estimación de búsquedas.
  • Días que se omiten. Un día con un periodo que aún no ha terminado (hoy, en una exportación hecha durante el día), y los días de la exportación hasta el día en que empieza el historial diario de este relay, incluido, porque no todos sus turns están en ese historial. Una nota lo indica.
  • Zonas horarias. Los días de la exportación van en la zona horaria en la que se hizo; los de la estimación, en UTC. En el límite entre un día exportado y un día estimado, una hora puede contarse dos veces o ninguna.
  • Presupuesto mensual. Con días de exportación en el mes, la barra del presupuesto deja de estar marcada como estimated.

Cómo comprueba la importación los archivos. Para cada periodo y modelo, los importes multiplicados por sus precios deben sumar lo del archivo de costes. Si no, no se importa nada, y la línea dice The files do not match for …. Importar otra vez los mismos archivos no cambia nada. Una exportación posterior sustituye, para cada clave que contiene, los días que cubre, también cuando se hizo en otra zona horaria. Los dos archivos juntos pueden ocupar hasta 2 MB. El relay guarda las filas en una tabla propia, con cada clave enmascarada salvo sus primeros y últimos caracteres; sus propios recuentos de tus turns no cambian. Los agentes de un relay emparejado no pueden importar.

En la máquina del relay, npm run deepseek:import -- amount.csv cost.csv <database> en la carpeta de OAR hace lo mismo. Indica la base de datos, copilot.db en la carpeta de datos: sin ella, el comando usa data/copilot.db junto al servidor.

Cómo se hace la estimación #

DeepSeek no informa del coste por petición, y la cifra de coste propia de Claude Code está a precios de Claude. Por eso OAR cuenta los tokens que informa cada turn de DeepSeek en este relay, por modelo, y les pone precio con los precios publicados de DeepSeek (leídos el 2026-10-19), en dólares estadounidenses y en yuanes. Por millón de tokens, en hora valle:

Modelo Acierto de caché Fallo de caché Salida
DeepSeek Flash 0,003 $ · 0,02 ¥ 0,15 $ · 1 ¥ 0,60 $ · 4 ¥
DeepSeek V4 Pro 0,022 $ · 0,15 ¥ 0,66 $ · 4,5 ¥ 1,98 $ · 13,5 ¥
  • Hora punta y hora valle. Los precios en hora punta son exactamente el doble de estos. La hora punta es de lunes a viernes de 01:00 a 04:00 y de 06:00 a 10:00 UTC (de 09:00 a 12:00 y de 14:00 a 18:00, hora de Pekín); la tarjeta indica esas horas en la zona horaria de tu navegador. Cada turn se calcula según su propia hora.
  • Festivos. En los días festivos oficiales de China, DeepSeek cobra precios de hora valle todo el día. La estimación no conoce esas fechas, así que los turns en hora punta de un festivo se cuentan al doble del precio real.
  • Búsquedas. Las búsquedas web se cuentan a 0,75 $ o 5 ¥ por cada 1.000 a partir del 2026-10-31 16:00 UTC (2026-11-01 00:00, hora de Pekín), igual a cualquier hora; las anteriores se cuentan sin coste. Consulta WebSearch y WebFetch.
  • Lo que no se factura. DeepSeek no factura las peticiones count_tokens que Claude Code envía al inicio de cada sesión, y la estimación no las cuenta.
  • Modelos desconocidos. deepseek-v4-flash y deepseek-v4-flash-vision-exp se calculan como Flash. Un modelo sin precio conocido no recibe estimación: su fila dice no price known, y el total indica cuántos modelos deja fuera.
  • Solo este relay. Los turns de otros relays, y otros usos de la clave, no están incluidos. La página de consumo de DeepSeek, enlazada desde la tarjeta, tiene todas las peticiones de la cuenta.
  • Cifras reales. En los días que cubre una exportación de consumo importada, la tarjeta muestra las cifras propias de DeepSeek para la clave guardada en lugar de la estimación, de todos los usos de la clave.
  • Reinicios. Un proceso de Claude Code que vuelve a empezar, o un informe que llega tarde o dos veces, se contabiliza una sola vez. Queda un caso: un informe tardío de un proceso anterior que llega después de que haya arrancado uno más nuevo se contabiliza entero, y también el siguiente informe del proceso nuevo.
  • Filas con nombre de Claude. Las compilaciones anteriores a que los subagents se fijaran al modelo del chat contabilizaron algunos turns con un nombre de modelo de Claude. Al arrancar, el relay integra esas filas en el modelo de DeepSeek que las sirvió. Una fila integrada se calcula con una sola hora, la de su último turn, así que una fila que abarca turns en hora punta y en hora valle es aproximada: su coste en tokens, hasta en un factor de dos.

Una hora de turn que va más de 5 minutos por delante del reloj del relay se toma como la hora del propio relay.

Límites #

  • El thinking no se puede desactivar, y none corre como low.
  • DeepSeek V4 Pro no acepta imágenes; el cambio a él se rechaza una vez que una conversación contiene imágenes.
  • El gasto es una estimación, solo de los turns de este relay, y cuenta de más los turns en hora punta de los festivos oficiales de China. Solo los días de una exportación de consumo importada muestran las cifras propias de DeepSeek.
  • Un cambio de effort o de modelo reinicia el Claude Code de la conversación entre turns.
  • La descarga web del lado del servidor de Claude Code no está disponible en DeepSeek; WebFetch corre en la máquina del relay.
  • No hay pausa por límite de uso: un turn rechazado por el saldo falla, y lo vuelves a enviar después de recargar.

Códigos de error #

Una respuesta de DeepSeek fallida termina con Error code: relay.<code>. y, con algunos códigos, botones que llevan directamente a la solución:

Código Cuándo Botones
relay.deepseek-balance DeepSeek rechazó la petición por el saldo (HTTP 402). Top up DeepSeek (Recargar DeepSeek) (abre la página de recarga de DeepSeek), DeepSeek settings (Ajustes de DeepSeek)
relay.deepseek-api-key DeepSeek no aceptó la clave (HTTP 401). DeepSeek settings
relay.deepseek-rate-limit DeepSeek está en su límite de concurrencia para la cuenta (HTTP 429). Ninguno
relay.deepseek-api-error Cualquier otra petición rechazada. Ninguno
relay.deepseek-turn-error Cualquier otro fallo del turn. Ninguno

DeepSeek settings abre Settings → Providers → DeepSeek. Los demás códigos siguen el mismo patrón, relay.deepseek- y el motivo de Claude Code, por ejemplo relay.deepseek-overloaded (HTTP 529) o relay.deepseek-model-not-found. Ninguno lleva el consejo sobre la cuenta de Claude.

Solución de problemas #

Problema Qué hacer
DeepSeek no aparece en New Chat Guarda una clave en Settings → Providers → DeepSeek y comprueba que Enable DeepSeek for New Chat model selection está marcado.
relay.deepseek-balance, o la tarjeta dice que el saldo no basta para llamadas a la API Pulsa Top up DeepSeek, añade dinero en la plataforma de DeepSeek y vuelve a enviar el mensaje.
relay.deepseek-api-key La clave es incorrecta o se revocó. Pega una clave válida y guarda, entre turns.
relay.deepseek-rate-limit Espera un momento y vuelve a enviar el mensaje.
DeepSeek model discovery failed: …, o DeepSeek listed no DeepSeek models Comprueba la clave y la URL base y luego pulsa Refresh en 🤗 Select Models. Hasta que funcione, se sigue ofreciendo la última lista, o deepseek-flash y deepseek-v4-pro.
DeepSeek model "…" is not available El modelo no está en la lista del relay. Actualiza la lista o elige otro modelo.
… takes no images, and this conversation already has some. Quédate en DeepSeek Flash, o inicia una conversación nueva de DeepSeek para el modelo de solo texto.
DeepSeek model selection requires creating a new DeepSeek conversation Una conversación de otro proveedor no puede pasar a un modelo de DeepSeek. Inicia un chat nuevo en DeepSeek.
Cannot remove the DeepSeek API key while N DeepSeek conversation(s) still exist. Archiva o elimina esas conversaciones, o desactiva DeepSeek en su lugar.
Claude Code did not take the DeepSeek connection settings before the first message, so nothing was sent. Vuelve a enviar el mensaje. Si vuelve a fallar, el Claude Code que ejecuta el relay no adopta los ajustes fijados: actualiza el relay y busca el motivo en su registro.
The DeepSeek base URL must use https (http only on a loopback address) Usa https, o una dirección http en esta máquina.
La barra del saldo empieza desde un importe incorrecto Fija Starting balance en la subpestaña de DeepSeek, en la moneda del saldo.
La subpestaña dice que el saldo inicial está No longer used Lo sustituyó una recarga. Vuelve a escribir el importe y guarda, o vacía el campo.
El gasto de la tarjeta de consumo es menor que el de la página de consumo de DeepSeek La tarjeta solo cuenta los turns de DeepSeek de este relay. La página de DeepSeek tiene todas las peticiones de la cuenta. Para ver sus cifras en la tarjeta, importa la exportación de consumo.
El gasto de la tarjeta de consumo es mayor en un festivo Las horas punta de los festivos oficiales de China se cuentan al precio de hora punta; DeepSeek cobra el de hora valle. Importar la exportación de consumo pone las cifras propias de DeepSeek en esos días.
The files do not match for … El archivo de importes y el de costes son de exportaciones distintas. Exporta los dos del mismo periodo e impórtalos juntos.
The … file is not a DeepSeek usage export: … Elige los archivos tal como los exportó la página de consumo de DeepSeek: el de importes en Amount file y el de costes en Cost file.
La importación dice que la clave guardada no está en esta exportación La exportación no tiene consumo de la clave guardada en la pestaña: es de otra cuenta, o la clave no se usó en ese periodo. La tarjeta sigue estimada.
La importación dice que la tarjeta no usa las cifras La exportación está en una moneda distinta de la del saldo. La tarjeta solo usa las filas en la moneda del saldo.