Última verificación documental y prueba práctica: 11 de agosto de 2026. Esta guía es independiente y no oficial; DeepSeek Español no pertenece a DeepSeek ni a OpenAI.
DeepSeek puede utilizarse como proveedor de modelo en Codex mediante la Responses API. Sin embargo, la compatibilidad actual no es igual para toda la familia V4: deepseek-v4-flash sí está admitido oficialmente, mientras que deepseek-v4-pro todavía no está admitido oficialmente por Responses API según la documentación consultada el 11 de agosto de 2026.
En nuestra prueba, una llamada directa a Responses devolvió HTTP 200, la salida esperada OK y 92 tokens de entrada más 11 de salida. Codex también diagnosticó correctamente un fallo dentro de un repositorio de prueba en modo de solo lectura. No obstante, dos intentos posteriores de edición no modificaron ningún archivo porque el sandbox local continuó en modo de solo lectura. Aplicamos la corrección sugerida fuera de esas ejecuciones y las tres pruebas del proyecto pasaron, pero eso valida la propuesta técnica, no la capacidad de escritura de Codex en aquel entorno.
El coste calculado de todas las solicitudes de esta verificación fue de $0.0057827784. Para una introducción general a claves, endpoints y ejemplos, consulta la guía de DeepSeek API en español. Para comparar Flash y Pro fuera de esta integración, revisa nuestro benchmark de DeepSeek V4.
Respuesta rápida: ¿funciona DeepSeek con Codex?
| Componente | Estado | Qué significa |
|---|---|---|
deepseek-v4-flash | Compatible | DeepSeek lo admite mediante Responses API y publica una configuración específica para Codex. |
deepseek-v4-pro | No compatible todavía | El modelo existe para otras interfaces, pero la documentación oficial marca Responses API como no compatible. |
| Diagnóstico en Codex | Funcionó en nuestra muestra | El modelo identificó correctamente el fallo conocido en un repositorio aislado. |
| Edición de archivos | No verificada | Dos intentos no escribieron porque el sandbox local permaneció en solo lectura. |
| Corrección propuesta | Validada externamente | Tras aplicar la propuesta fuera de Codex, pasaron 3 de 3 pruebas. |
Conclusión precisa: la conectividad con V4 Flash y el diagnóstico quedaron comprobados. La escritura de archivos no quedó demostrada y no debe presentarse como un éxito.
Compatibilidad oficial de DeepSeek Responses API
Codex se comunica con los modelos mediante Responses API. DeepSeek añadió soporte nativo para esta interfaz en V4 Flash y adaptó el modelo para el uso con Codex; la integración se publicó como beta pública el 31 de julio de 2026. El diseño oficial de integración con Codex, la guía oficial de Responses API y la tabla oficial de modelos y precios coinciden en que Flash es el único modelo V4 compatible con Responses en la fecha de esta revisión.
La página oficial todavía indica que el soporte de Pro se esperaba para principios de agosto de 2026. Esa previsión no equivale a disponibilidad. Como el mismo documento sigue marcando deepseek-v4-pro como no admitido, esta guía conserva el estado no compatible hasta que DeepSeek publique y permita verificar el cambio.
| Función de Responses | Compatibilidad documentada por DeepSeek |
|---|---|
| Streaming | Compatible mediante eventos SSE. |
| Function calling | Compatible. |
| Búsqueda web | Compatible en el servidor; algunos ajustes de localización y tamaño de contexto se ignoran. |
Herramienta personalizada apply_patch | Es la única herramienta de tipo custom admitida para compatibilidad con Codex. |
Otras herramientas custom | Devuelven HTTP 400. |
file_search, code_interpreter, computer_use y MCP | No están admitidas por esta implementación y se ignoran. |
| Imágenes y archivos de entrada | No están admitidos; se sustituyen por texto de marcador de posición. |
Estado con previous_response_id o conversation | No compatible; la API de DeepSeek funciona sin estado. |
Qué necesitas antes de configurar Codex
- Codex CLI 0.144.0 o posterior. El catálogo oficial fija actualmente esa versión mínima para V4 Flash; también necesitas compatibilidad con proveedores personalizados,
model_catalog_json,env_keyycodex exec. - Una clave de DeepSeek API con saldo disponible. Es preferible crear una clave dedicada a la prueba para poder identificar y revocar su uso sin afectar otras aplicaciones.
- El archivo
models.jsonpublicado en la guía oficial de DeepSeek para Codex. - Un
CODEX_HOMEtemporal y un repositorio desechable. No empieces en un proyecto real hasta comprobar de forma independiente qué rutas puede escribir el sandbox. - Una prueba automatizada o un resultado esperado que permita evaluar la respuesta sin depender de impresiones subjetivas.
La documentación de DeepSeek ofrece un script de instalación rápida que modifica la configuración compartida situada en ~/.codex. Es adecuado para quien desea una instalación persistente y ha revisado el script, pero no para una prueba que deba permanecer aislada de las sesiones y preferencias existentes. La metodología de esta página utiliza configuración manual y temporal.
Configuración aislada y segura paso a paso
1. Crea un CODEX_HOME temporal
La documentación oficial de configuración avanzada de Codex indica que CODEX_HOME contiene la configuración y el estado local, incluidos el historial, los registros y las cachés. Al dirigir una única terminal a una carpeta temporal, la ejecución no necesita leer ni reescribir el config.toml utilizado por tus sesiones habituales.
Ejemplo para PowerShell en Windows:
$codexTestRoot = Join-Path $env:TEMP ("codex-deepseek-" + [guid]::NewGuid())
$codexTestHome = Join-Path $codexTestRoot "home"
$codexTestRepo = Join-Path $codexTestRoot "repo"
New-Item -ItemType Directory -Force -Path $codexTestHome, $codexTestRepo
$env:CODEX_HOME = $codexTestHome
Ejemplo para macOS o Linux:
export CODEX_HOME="$(mktemp -d)"
export CODEX_TEST_REPO="$(mktemp -d)"
Estas variables solo deben definirse en la terminal utilizada para la prueba. No las conviertas en variables permanentes del sistema y no abras la aplicación de escritorio desde esa misma terminal.
2. Guarda el models.json oficial dentro del entorno temporal
DeepSeek publica un catálogo completo con los metadatos que Codex necesita: slug, ventana de contexto, niveles de razonamiento, formato de herramientas y otras capacidades. Copia el bloque models.json completo desde la guía oficial de integración y guárdalo como models.json dentro del CODEX_HOME temporal.
No conviene mantener una copia parcial dentro de una guía: el catálogo es extenso y puede cambiar cuando DeepSeek actualice el modelo o su compatibilidad. Comprueba que el archivo descargado contiene el slug deepseek-v4-flash. Aunque el catálogo también pueda enumerar deepseek-v4-pro, su presencia no demuestra que Responses API lo admita.
3. Crea un config.toml que no almacene la clave
El siguiente bloque es una configuración recomendada para empezar de forma aislada; no es una copia literal de la ejecución que generó nuestros datos. Guárdalo como config.toml dentro del CODEX_HOME temporal y sustituye la ruta de model_catalog_json por la ruta absoluta de tu models.json. En Windows puedes utilizar barras inclinadas, por ejemplo C:/Temp/codex-deepseek/home/models.json.
model = "deepseek-v4-flash"
model_provider = "deepseek"
forced_login_method = "api"
model_reasoning_effort = "high"
model_catalog_json = "/ruta/temporal/absoluta/models.json"
web_search = "disabled"
approval_policy = "never"
[history]
persistence = "none"
[sandbox_workspace_write]
network_access = false
[shell_environment_policy]
ignore_default_excludes = false
[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com/"
wire_api = "responses"
env_key = "DEEPSEEK_API_KEY"
Configuración utilizada en la prueba real: Windows 11, Codex CLI 0.147.0-alpha.6.6, model_reasoning_effort = "low", cero reintentos de solicitud y streaming, --ignore-user-config, --ignore-rules, --strict-config y opciones -c para inyectar la configuración aislada. El análisis pidió read-only; los dos intentos de edición pidieron workspace-write, pero el sandbox efectivo continuó en solo lectura.
La referencia oficial de configuración de Codex admite env_key para obtener la credencial desde una variable de entorno y desaconseja guardar un bearer token directamente en el archivo. El ejemplo manual de DeepSeek todavía muestra experimental_bearer_token; esta guía utiliza env_key para evitar que el secreto quede escrito en disco.
history.persistence = "none" evita guardar el historial, mientras que ignore_default_excludes = false activa la exclusión automática de variables cuyos nombres parecen contener claves o secretos cuando Codex inicia herramientas de shell. Estas medidas no sustituyen la revisión de los permisos del sistema operativo.
4. Introduce la clave solo en la terminal de prueba
En PowerShell, esta variante evita que la clave se muestre mientras se escribe:
$secureKey = Read-Host "Clave de DeepSeek API" -AsSecureString
$env:DEEPSEEK_API_KEY = [System.Net.NetworkCredential]::new("", $secureKey).Password
Remove-Variable secureKey
En macOS o Linux:
read -s -p "Clave de DeepSeek API: " DEEPSEEK_API_KEY
echo
export DEEPSEEK_API_KEY
No incluyas la clave en capturas, archivos JSONL, prompts, repositorios ni argumentos visibles del comando. Cierra la terminal cuando termines y revoca la clave dedicada si ya no la necesitas.
Valida el catálogo y la API antes de pedir una edición
Primero comprueba la versión instalada y el catálogo que ve Codex. Esta fase no necesita modificar el repositorio. El subcomando codex debug models está marcado como experimental en la referencia actual de Codex y puede cambiar:
codex --version
codex debug models
Después puedes realizar una llamada mínima a Responses API para separar tres posibles causas de error: clave o saldo, disponibilidad del endpoint y configuración específica de Codex. Este ejemplo sigue el patrón documentado por DeepSeek y lee la clave desde el entorno:
import os
import time
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
)
inicio = time.perf_counter()
respuesta = client.responses.create(
model="deepseek-v4-flash",
instructions="Responde únicamente con OK.",
input="Comprueba que la conexión está activa.",
max_output_tokens=32,
)
duracion_ms = (time.perf_counter() - inicio) * 1000
print({
"salida": respuesta.output_text,
"duracion_ms": round(duracion_ms, 1),
"uso": respuesta.usage.model_dump(),
})
Los tokens y la latencia de este ejemplo pueden diferir de nuestra observación porque dependen del prompt, la versión de las dependencias, la red y el estado del servicio. Para autenticación, errores y ejemplos más amplios, utiliza la referencia principal de DeepSeek API en lugar de duplicar aquí toda esa intención.
Prueba real con V4 Flash: resultados observados
| Paso | Resultado observado | Qué permite concluir |
|---|---|---|
| Responses API directa | HTTP 200; 1.097 ms de extremo a extremo; salida OK; 92 tokens de entrada y 11 de salida. | La clave, el endpoint y deepseek-v4-flash respondían correctamente en esa solicitud. |
| Codex en solo lectura | Identificó correctamente el fallo del repositorio de prueba. | El flujo Codex → DeepSeek pudo analizar el proyecto y proponer una corrección válida en esa muestra. |
| Intento de edición 1 | El sandbox continuó en solo lectura; ningún archivo cambió. | No demuestra capacidad de escritura. |
| Intento de edición 2 | El sandbox volvió a permanecer en solo lectura; ningún archivo cambió. | La limitación se repitió en el entorno local. |
| Comprobación externa | La corrección sugerida se aplicó fuera de Codex y pasaron 3 de 3 pruebas. | La propuesta era técnicamente correcta, pero Codex no realizó esa modificación. |

El tiempo de 1.097 ms incluye conexión, transporte y procesamiento de la solicitud. Es una única medición y no un benchmark de velocidad. Tampoco se desglosó la latencia interna del proveedor.
El coste total calculado para la llamada directa y las solicitudes realizadas durante los flujos de Codex fue de $0.0057827784. El cálculo utilizó los campos de uso devueltos y las tarifas oficiales vigentes en la fecha de la prueba:
| Paso | Entrada: cache hit | Entrada: cache miss | Salida | Coste (USD) |
|---|---|---|---|---|
| Responses directa | 0 | 92 | 11 | $0.0000159600 |
| Diagnóstico en solo lectura | 11.776 | 6.056 | 587 | $0.0010451728 |
| Intento de edición 1 | 76.288 | 7.136 | 5.087 | $0.0026370064 |
| Intento de edición 2 | 97.664 | 2.087 | 5.425 | $0.0020846392 |
| Total | Cuatro solicitudes medidas | $0.0057827784 | ||
Fórmula: hit × 0.0028 / 1.000.000 + miss × 0.14 / 1.000.000 + salida × 0.28 / 1.000.000. Puedes descargar los resultados, el fixture y las huellas SHA-256 (ZIP, 4.103 bytes; SHA-256 EEE2BFD2A5F1FA45629DFD4F4728F05034509966CAC90A7B5E460986808E5124). La clave, las rutas privadas, el saldo y los registros JSONL no están incluidos.
Por qué un diagnóstico correcto no equivale a una edición correcta
La integración reúne tres capas que deben evaluarse por separado:
- Proveedor y protocolo: DeepSeek debe aceptar el modelo y el formato Responses.
- Razonamiento del modelo: V4 Flash debe interpretar los archivos y proponer una solución adecuada.
- Herramientas y permisos locales: Codex necesita un sandbox que permita la operación solicitada dentro de la ruta prevista.
En nuestra muestra, las dos primeras capas funcionaron para el diagnóstico. La tercera no quedó habilitada para escritura: aunque se solicitó una ejecución de edición, el entorno local se mantuvo en solo lectura. Codex no modificó el archivo y, por tanto, no podemos afirmar que apply_patch funcionara en la práctica.
La corrección propuesta sí superó las tres pruebas cuando se aplicó externamente. Este paso sirve para evaluar la calidad de la sugerencia, pero atribuir la modificación a Codex sería incorrecto. También sería incorrecto concluir, a partir de este único entorno, que ninguna instalación de DeepSeek con Codex puede escribir: el resultado describe la configuración local probada.
Cómo repetir primero una prueba de solo lectura
La referencia oficial de Codex CLI documenta codex exec para ejecuciones no interactivas, --ephemeral para evitar archivos de sesión, --json para obtener eventos JSONL y --sandbox read-only para impedir escrituras. Un comando inicial puede adoptar esta forma:
codex exec \
--strict-config \
--ephemeral \
--json \
--sandbox read-only \
-C "/ruta/al/repositorio-de-prueba" \
"Analiza el fallo de las pruebas. No modifiques archivos. Explica la causa y propone el cambio mínimo."
En PowerShell puedes escribir el mismo comando en una sola línea. Guarda el JSONL solo después de verificar que no contiene rutas privadas, prompts sensibles ni secretos.
Codex también ofrece --sandbox workspace-write para permitir escrituras dentro del espacio de trabajo. En nuestras dos ejecuciones de edición ese cambio no produjo un entorno efectivamente escribible. Por eso no presentamos un comando de edición como procedimiento validado. Si decides investigarlo, hazlo únicamente en una copia desechable, comprueba el estado y el hash de los archivos antes y después, y no utilices --dangerously-bypass-approvals-and-sandbox.
Metodología de la prueba
| Elemento | Método utilizado |
|---|---|
| Fecha | 11 de agosto de 2026. |
| Entorno | Windows 11 y Codex CLI 0.147.0-alpha.6.6. |
| Modelo | deepseek-v4-flash con esfuerzo low y sin reintentos. No se llamó a Pro mediante Responses porque no está admitido oficialmente. |
| Preflight | Una solicitud directa a Responses API con una salida esperada. Al no conservarse el prompt exacto ni su hash, 92 tokens de entrada y 11 de salida se informan como observación fechada, no como reproducción independiente completa. |
| Proyecto | Repositorio de prueba aislado con un fallo confirmado y un conjunto de tres pruebas. |
| Fase de análisis | Codex ejecutado sin permiso de escritura; se comparó su diagnóstico con la causa confirmada. |
| Fase de edición | Dos intentos separados; se verificó que el archivo no cambiara cuando el sandbox siguió en solo lectura. |
| Validación de la propuesta | Aplicación externa de la corrección sugerida y ejecución independiente: 3 de 3 pruebas superadas. |
| Latencia | Tiempo de extremo a extremo para la llamada directa; no mide únicamente inferencia. |
| Coste | Cálculo por solicitud a partir de cache hit, cache miss, salida y las tarifas oficiales; desglose y datos saneados publicados. |
| Aislamiento | Configuración y repositorio temporales; la clave no se incluye en este contenido y cualquier registro que se publique debe estar saneado. |
Límites de nuestra prueba
- Solo se verificó
deepseek-v4-flashel 11 de agosto de 2026. - La llamada directa fue una sola muestra; 1.097 ms no representa la latencia media ni un SLA.
- El diagnóstico correcto corresponde a un fallo conocido y no mide precisión general en proyectos reales.
- La escritura no funcionó en dos intentos porque el sandbox local permaneció en solo lectura. No se verificó
apply_patchcon acceso efectivo de escritura. - Las 3 de 3 pruebas se superaron después de aplicar externamente la sugerencia; no fueron el resultado de una edición realizada por Codex.
- No se probaron la aplicación de escritorio, la extensión de VS Code, otros sistemas operativos, varias regiones, concurrencia, contexto largo ni carga sostenida.
- No se probaron búsqueda web, function calling, MCP, imágenes ni archivos dentro de esta integración.
- No se conserva en esta publicación el texto exacto ni un hash del prompt de la llamada que produjo 92 tokens de entrada y 11 de salida; el ejemplo reproducible anterior es equivalente en intención, no una copia verificable del prompt original.
- El total de coste no incluye el tiempo humano, la instalación de dependencias ni recursos locales.
Límites oficiales que pueden afectar a Codex
- Sin estado nativo:
previous_response_idyconversationno están admitidos, y las respuestas declaranstore: false. - Parámetros ignorados: DeepSeek advierte que varios parámetros no compatibles se ignoran sin devolver un error. La ausencia de error no prueba que una función haya actuado.
- Herramientas parciales: se admiten funciones, búsqueda web y la herramienta personalizada
apply_patch; otras herramientas pueden ignorarse o devolver 400 según su tipo. - Sin imágenes o archivos: los elementos de entrada correspondientes se reemplazan por texto de marcador de posición.
- Razonamiento parcial:
reasoning.effortestá admitido, pero solicitar un resumen de razonamiento no genera dicho resumen. - Verbosity sin efecto: el parámetro puede aceptarse, pero no cambia la respuesta.
- Llamadas paralelas:
parallel_tool_callsse trata como activado ymax_tool_callsse ignora. - Truncamiento: el parámetro
truncationno está admitido; superar el contexto produce HTTP 400. - Caché administrada por DeepSeek:
prompt_cache_keyyprompt_cache_retentionno están admitidos. La caché de contexto se gestiona automáticamente.
Estas diferencias impiden asumir paridad completa con todos los modelos o herramientas que Codex puede utilizar mediante otros proveedores. Consulta los errores de DeepSeek API si la llamada falla y revisa siempre la documentación oficial antes de actualizar una integración de producción.
Checklist de seguridad y reversión
- Usa una clave dedicada y no la guardes en
config.toml; referencia su nombre medianteenv_key. - Mantén
CODEX_HOMEfuera de tu configuración habitual y comprueba que la aplicación de escritorio no se haya iniciado con esa variable temporal. - No ejecutes el script de instalación persistente si el objetivo es conservar intacto tu
~/.codexactual. - Empieza con
--sandbox read-onlyy un repositorio sintético. - Antes de cualquier intento de escritura, crea una copia recuperable y registra hashes o un
git statuslimpio. - No utilices opciones que omitan el sandbox o las aprobaciones para resolver un fallo de permisos.
- Revisa y sanea los eventos JSONL antes de conservarlos o publicarlos.
- Después de extraer las evidencias necesarias, elimina manualmente el entorno temporal y revoca la clave si no tendrá más uso.
Cuándo tiene sentido esta integración
DeepSeek V4 Flash con Codex puede resultar útil para evaluar análisis de código y tareas con agentes mediante el proveedor de DeepSeek, especialmente cuando ya dispones de una clave API y puedes trabajar en un entorno aislado. El coste calculado en esta prueba fue bajo, pero el coste real depende de la longitud del repositorio, las iteraciones, los tokens de razonamiento y las llamadas a herramientas. Consulta los precios actuales de DeepSeek antes de automatizar un volumen mayor y revisa las integraciones de DeepSeek para desarrolladores si necesitas comparar otros clientes.
No es una sustitución transparente si necesitas V4 Pro mediante Responses, imágenes, archivos, MCP, estado nativo entre respuestas o una edición de archivos ya comprobada en tu entorno. En esos casos, define primero qué capacidad es imprescindible y prueba el proveedor con una tarea representativa antes de conectarlo a un repositorio real.
Preguntas frecuentes
¿DeepSeek V4 Pro funciona con Codex?
No mediante Responses API en la documentación verificada el 11 de agosto de 2026. DeepSeek todavía marca deepseek-v4-pro como no compatible, aunque el catálogo de modelos o la configuración puedan mencionar su slug. La disponibilidad debe confirmarse en la guía oficial, no deducirse de una previsión de lanzamiento.
¿Tengo que pegar la clave dentro de config.toml?
No. Codex admite env_key, que indica el nombre de una variable de entorno. Así, config.toml contiene env_key = "DEEPSEEK_API_KEY", pero no el valor secreto.
¿Para qué sirve models.json?
Declara a Codex los metadatos del modelo, como el slug, la ventana de contexto, los niveles de razonamiento y los formatos de herramientas. Copia la versión completa publicada por DeepSeek y apunta model_catalog_json a su ruta absoluta.
¿Puedo usar el script automático de DeepSeek?
Sí, DeepSeek ofrece scripts oficiales para Windows, macOS y Linux. Antes de ejecutarlos, ten en cuenta que realizan una copia de seguridad y modifican la configuración compartida de ~/.codex. Para una prueba aislada que no altere tus clientes actuales, es más prudente utilizar un CODEX_HOME temporal y configuración manual.
¿Cómo pudo acertar el diagnóstico si no editó el archivo?
Leer y razonar sobre un repositorio no requiere los mismos permisos que escribir. V4 Flash identificó la causa y propuso una corrección válida, pero el sandbox local bloqueó la modificación. Son resultados distintos y deben informarse por separado.
¿Esta prueba confirma que apply_patch funciona con DeepSeek?
No. DeepSeek documenta apply_patch como la única herramienta personalizada compatible con su Responses API para Codex, pero nuestras dos ejecuciones no obtuvieron acceso efectivo de escritura. La compatibilidad documental y una prueba práctica satisfactoria no son lo mismo.
¿Cuánto costó la verificación?
El total calculado fue de $0.0057827784 para todas las solicitudes incluidas. No es una previsión para otros repositorios: una tarea más larga o con más iteraciones puede utilizar muchos más tokens.
¿Cómo evito afectar mis sesiones actuales de Codex?
Utiliza un CODEX_HOME temporal en una terminal separada, guarda allí config.toml y models.json, ejecuta codex exec --ephemeral y no abras la aplicación de escritorio desde esa terminal. Verifica también que tu archivo de configuración habitual conserve su fecha y hash.
