Una revisión de EstadoRed de repositorios, cambios de código, incidencias y políticas de privacidad muestra que varios de los componentes técnicos que Anthropic asegura que Moonshot y DeepSeek utilizaron para extraer capacidades de Claude existían públicamente meses antes de las campañas. La evidencia abierta permite reconstruir buena parte del mecanismo, pero no demuestra el paso clave: el uso de esas herramientas para recuperar deliberadamente cadenas de razonamiento en nuevas sesiones.
La investigación abierta por el regulador de internet de China contra DeepSeek y Moonshot AI tiene una peculiaridad: parte de la infraestructura necesaria para hacer lo que Anthropic acusa a ambas compañías de haber hecho no estaba escondida. Una revisión de EstadoRed encontró que meses antes de las campañas descritas por la empresa estadounidense, software público desarrollado por Moonshot ya podía capturar las llamadas thinking signatures de Claude, conservarlas dentro del historial de una conversación, almacenarlas en disco y devolverlas posteriormente a la API de Anthropic.
El 3 de noviembre de 2025, Moonshot añadió públicamente a Kosong un proveedor para Anthropic. El mensaje del commit, feat: add anthropic chat provider & add logs (#8), y la fecha son relevantes porque dejan claro que la integración con Claude existía muchos meses antes del periodo mayo-julio de 2026 señalado por Anthropic.

El hallazgo aparece mientras la Administración del Ciberespacio de China (CAC) investiga a DeepSeek y Moonshot por el posible envío de datos de usuarios a Anthropic, según publicó este martes The Information, que cita personas con conocimiento de la investigación. El medio reportó que inicialmente fueron llamados representantes de las siete empresas chinas señaladas por Anthropic, pero el regulador posteriormente centró su revisión en DeepSeek y Moonshot. Hasta ahora no se ha localizado un comunicado público de la CAC que confirme formalmente la investigación, por lo que el señalamiento depende del reporte de The Information.
Anthropic aseguró el 10 de septiembre que Moonshot había reenviado solicitudes de clientes de Kimi hacia Claude sin informarles de que sus consultas estaban siendo procesadas por otro proveedor. En un periodo de diez días, la empresa dice haber observado casi 300 mil solicitudes de clientes redirigidas principalmente a Opus mediante una red de 5 mil 380 cuentas. En toda la campaña atribuida a Moonshot entre mayo y julio, Anthropic contabilizó más de 23 millones de intercambios. En el caso de DeepSeek, atribuyó más de 12.1 millones de intercambios durante 14 días de julio. Estas cifras y atribuciones proceden de los registros internos de Anthropic y no han podido ser verificadas independientemente por EstadoRed.
La acusación incluye un mecanismo más específico que el simple reenvío de solicitudes. Claude no entrega necesariamente al cliente toda su cadena interna de razonamiento. Cuando utiliza extended thinking, puede devolver junto con el bloque de razonamiento una thinking signature: un valor que permite a la API verificar y reutilizar correctamente ese bloque en turnos posteriores. Anthropic afirma que Moonshot conservó esas firmas, abrió nuevas sesiones y logró que Claude reconstruyera a partir de ellas las trazas completas de razonamiento. La empresa denomina al procedimiento cross-session replay y sostiene que los resultados fueron recopilados para obtener datos de chain of thought destinados a la destilación de modelos.
El código público ya sabía conservar las firmas
EstadoRed revisó el historial del repositorio público Kosong, una biblioteca desarrollada por Moonshot que posteriormente fue incorporada a Kimi CLI. El 3 de noviembre de 2025, el commit que añadió soporte para Anthropic ya reconocía eventos signature_delta. El cliente almacenaba la firma recibida dentro de una estructura denominada ThinkPart, en el campo encrypted, y al convertir nuevamente el historial al formato de Anthropic podía colocar ese valor en signature. Es decir: Claude producía una firma, Kosong podía capturarla y el cliente sabía devolverla a Claude en una solicitud posterior. GitHub: “add anthropic chat provider & add logs”, 3 de noviembre de 2025


La implementación no parece un añadido excepcional o escondido. En el modelo de mensajes de Kosong, el campo encrypted es descrito directamente como contenido de pensamiento cifrado o signature. El 19 de noviembre Moonshot añadió además la captura de la firma al modo no streaming. El nombre del cambio es explícito: “Add thinking signature to Anthropic provider non-stream mode”. A partir de ese cambio, una respuesta de Anthropic con un bloque de razonamiento quedaba convertida en ThinkPart(think=block.thinking, encrypted=block.signature). GitHub: “Add thinking signature to Anthropic provider non-stream mode”, 19 de noviembre de 2025

Kimi CLI conservaba además esos objetos en su historial. El contexto de una sesión se escribía en un archivo context.jsonl utilizando la serialización completa de cada mensaje y podía restaurarse posteriormente. Como ThinkPart incluye el campo encrypted, una firma capturada desde Anthropic podía sobrevivir al cierre del proceso y continuar disponible cuando se restaurara la misma sesión. Este comportamiento tiene una explicación perfectamente legítima: Anthropic requiere conservar las firmas para mantener correctamente los bloques de pensamiento entre turnos. Por sí mismo, por tanto, no constituye evidencia de destilación ni de abuso.

EstadoRed revisó también la función pública de Kimi que permite importar una conversación anterior a una sesión nueva. El mecanismo conserva el contenido del razonamiento como texto de referencia, pero no traslada la thinking signature de Anthropic como una firma reutilizable. Eso significa que la función pública /import, por sí sola, no reproduce el mecanismo de cross-session replay descrito por Anthropic. Para mover intacta una de esas firmas entre sesiones habría hecho falta otro procedimiento que no aparece en el código revisado.

Dos cambios justo antes de mayo
La cronología se vuelve más relevante a finales de abril. El 23 de abril de 2026, Moonshot fusionó en Kimi CLI un cambio para habilitar Preserved Thinking mediante KIMI_MODEL_THINKING_KEEP. Cuando se establece como all, la herramienta pide a la API de Moonshot conservar el reasoning_content histórico entre turnos. La propia documentación añadida al código advierte que esto incrementa los tokens de entrada porque el razonamiento histórico vuelve a enviarse en solicitudes posteriores. No se trata de una función de Anthropic: estaba diseñada para modelos de Moonshot. Pero demuestra que la conservación y circulación de trazas de razonamiento entre peticiones era ya una parte explícita de la arquitectura del cliente. GitHub: PR 2029, Preserved Thinking, 23 de abril de 2026

Un día después, el 24 de abril, Moonshot fusionó otro cambio relacionado directamente con DeepSeek. Kimi CLI estaba perdiendo el campo reasoning_content que DeepSeek V4 devolvía junto con llamadas a herramientas. En el siguiente turno, el servidor respondía con error porque exigía que ese razonamiento anterior fuera enviado nuevamente. La corrección hizo que reasoning_content quedara automáticamente almacenado en el historial y fuera reenviado en las solicitudes posteriores. El propio changelog describe el comportamiento como reasoning round-tripping.

La proximidad temporal es llamativa pero no prueba causalidad: el soporte para Preserved Thinking fue fusionado el 23 de abril; el reenvío automático del razonamiento de DeepSeek, el 24 de abril; y Anthropic sitúa las campañas atribuidas a Moonshot entre mayo y julio. No existe en los repositorios revisados una instrucción que diga que estas funciones fueran creadas para extraer razonamiento de Claude, y utilizarlas para sostener esa conclusión excedería la evidencia disponible. Lo que sí puede establecerse es que antes de la ventana señalada por Anthropic ya existían públicamente mecanismos capaces de conservar, serializar y reenviar información de razonamiento entre llamadas a modelos.
La función continuó evolucionando durante el periodo investigado. El 14 de julio, un cambio en Kimi CLI documentó un error detectado durante una sesión real: un backend con thinking.keep=all rechazó una conversación porque uno de los mensajes anteriores carecía de reasoning_content. La corrección hizo que incluso un razonamiento vacío se conservara explícitamente para que pudiera volver a enviarse. De nuevo, no es evidencia de la campaña descrita por Anthropic, pero confirma que en julio la preservación completa del razonamiento entre turnos no era solamente una posibilidad de diseño, sino una propiedad activa que los desarrolladores estaban depurando contra sistemas reales.
DeepSeek deja menos rastros de código público correspondientes exactamente al periodo señalado por Anthropic. Sus repositorios actuales que manejan de forma explícita estructuras equivalentes a thinking signatures fueron creados después de julio, por lo que no sirven para probar qué código ejecutaba entonces. Sin embargo, incidencias públicas anteriores muestran que sus servidores ya recibían y validaban información generada específicamente por Claude Code. El 6 de mayo, usuarios documentaron errores Invalid 'user_id' provenientes de DeepSeek al usar Claude Code; al desactivar el tráfico no esencial del cliente, el problema desaparecía. Esto demuestra que DeepSeek podía procesar señales específicas de ese cliente, aunque no demuestra que ese user_id se utilizara para seleccionar peticiones y reenviarlas a Anthropic.
Ese detalle coincide parcialmente con una afirmación muy específica del informe de Anthropic. La empresa sostiene que DeepSeek inspeccionaba cadenas presentes en las solicitudes entrantes para identificar a usuarios que llegaban mediante Claude Code, Claude Agent SDK u OpenCode, etiquetaba esas solicitudes y seleccionaba algunas para enviarlas a Claude Opus. EstadoRed no puede verificar mediante los repositorios públicos el último paso, el reenvío a Opus, pero los rastros anteriores a julio confirman que distinguir solicitudes procedentes de esos clientes era técnicamente posible.
El problema deja de ser sólo la destilación
La acusación adquiere otra dimensión porque Anthropic asegura que entre las peticiones reenviadas había solicitudes reales de usuarios. En Moonshot, reportó conversaciones relacionadas con vigilancia mediante cámaras y código y credenciales pertenecientes a empresas chinas. En DeepSeek, dijo haber observado documentación interna de una empresa tecnológica, credenciales relacionadas con una agencia del gobierno ruso y solicitudes de ingenieros que construían un sistema para una oficina municipal de seguridad pública de China. Anthropic reconoce que no sabe si Moonshot informó a sus usuarios de que parte de sus solicitudes estaban siendo procesadas por un tercero.
Esto entra en tensión con las políticas de privacidad publicadas por ambas empresas. Una copia de la política de Kimi efectiva desde el 29 de octubre de 2025, anterior a los hechos descritos por Anthropic, establecía que la información personal se almacenaría dentro de China y que no sería proporcionada al extranjero sin obtener el consentimiento separado del usuario y cumplir la legislación aplicable. La redacción permaneció en versiones posteriores de la política.
«Salvo que hayamos obtenido su consentimiento explícito, o que la ley estipule que no necesitamos obtenerlo, podemos compartir su información personal con nuestros socios (incluidas nuestras filiales y otros terceros) para permitir el uso normal de las interfaces API, los kits de desarrollo de software (SDK) y otras funciones», señala la cláusula en la sección 4.2.
La política oficial de DeepSeek que entró en vigor el 10 de febrero de 2026 es incluso más directa. Dice que la información personal producida y recopilada durante sus operaciones en China se almacena dentro del país y señala que “actualmente” no transmite esa información al extranjero; en caso de hacerlo, asegura que observará las normas y políticas chinas correspondientes y recabará el consentimiento cuando proceda. La política incluye expresamente las conversaciones entre la información recopilada durante el uso del servicio. DeepSeek: política de privacidad vigente desde el 10 de febrero de 2026
«De conformidad con las leyes y regulaciones vigentes, almacenamos su información personal recopilada y generada durante nuestras operaciones dentro de la República Popular China. Actualmente, no transferimos esta información al extranjero. En caso de transferirla, cumpliremos estrictamente con las leyes y regulaciones chinas pertinentes y seguiremos las regulaciones de los países correspondientes u obtendremos su consentimiento», señala la claúsula de Deep Seek.
La Ley de Protección de Información Personal de China establece además, en su artículo 39, que cuando un responsable proporciona información personal a un receptor situado fuera del país debe informar al individuo de la identidad y datos de contacto del receptor, la finalidad y forma del tratamiento, las categorías de información afectadas y la manera de ejercer sus derechos, además de obtener un consentimiento separado. Esto no permite concluir por sí solo que DeepSeek o Moonshot violaron la ley: sería necesario establecer qué información calificaba jurídicamente como personal, qué usuarios estaban sujetos a esas condiciones y si existieron mecanismos de consentimiento que no son visibles públicamente.
La investigación de EstadoRed, por tanto, no permite confirmar independientemente que Moonshot o DeepSeek ejecutaran los ataques de cross-session replay atribuidos por Anthropic. Tampoco se encontró en el software público revisado una herramienta que tome deliberadamente una firma de Claude, cree una sesión diferente y ordene al modelo reconstruir a partir de ella la cadena completa de razonamiento. Ésa sigue siendo la pieza cuya evidencia se encuentra, hasta ahora, del lado de Anthropic.
Lo que sí puede reconstruirse independientemente es casi toda la infraestructura inmediatamente anterior: Moonshot disponía desde noviembre de 2025 de código público para recibir, almacenar y reenviar thinking signatures de Claude; podía persistirlas dentro de sesiones; en abril de 2026 añadió mecanismos explícitos para conservar razonamiento histórico entre peticiones; DeepSeek exigía a clientes compatibles devolver reasoning_content; y ambos ecosistemas podían distinguir solicitudes procedentes de herramientas específicas. Nada de eso es ilícito por sí mismo. Son funciones necesarias para interoperar correctamente con distintos modelos y APIs.
La diferencia está en el uso. Las piezas estaban a la vista; lo que no era público, si la reconstrucción de Anthropic es correcta, era la forma en que presuntamente fueron ensambladas para extraer razonamiento de Claude y, en algunos casos, introducir dentro de ese circuito solicitudes reales de usuarios que creían estar utilizando modelos de Kimi o DeepSeek. Ese segundo nivel, no la existencia de las piezas, sino quién las utilizó, con qué datos y con qué finalidad, es ahora también el objeto de la investigación que, según The Information, abrió el regulador chino.
Lista de repositorios consultados en Github:
https://github.com/MoonshotAI/kosong/commit/4910563edfc507bb40e7777d7b3b7bd7c14a7ca2
https://github.com/MoonshotAI/kosong/commit/c8439f0f4dcfd82eec37b045df9d5b93d4f1b23e
https://github.com/MoonshotAI/kimi-cli/blob/main/src/kimi_cli/soul/context.py
https://github.com/MoonshotAI/kimi-cli/pull/2029
https://github.com/MoonshotAI/kimi-cli/pull/2053
