Kimi K3.1 Pro writes fake OpenAI ciphertext In multi-agent evaluations run through OpenRouter against Moonshot's own endpoint with reasoning set high, Kimi K3.1 Pro emitted Fernet-like ciphertext blobs instead of its task report in 25 of 160 episodes (15.6%, 95% CI 10.8–22.1), while Kimi K3 never did so in the same tests. The blobs matched the `gAAAA[A-Za-z0-9_-]{40,}` pattern OpenAI uses to encrypt Codex agent messages, with the model assigning median probability 0.96 to the `gAAAAAB` header and 0.74–0.87 to a `q` date character, but none of the 1,517 distinct blobs shared a 12-character substring with 184,156 public Fernet strings and only 46 had a byte length a real Fernet token could have. The fabricated timestamps clustered in late July 2026, which the tester tied to the period OpenAI says a distillation campaign linked to Moonshot was running; a rerun on Oct 29 produced blobs in 16 of 79 episodes. Give Kimi K3.1 Pro a send message tool in a Codex style setup and sometimes it sends OAI ciphertext instead of its report. Or at least something that looks exactly like it The header is right and the body is noise. And the timestamp inside lands in late July 2026. Right when OAI says the distillation campaign it ties to Moonshot was running What happens Found this by accident running multi agent evals w Kimi. The harness gives the model Codex’s system prompt and tools. A worker agent solves a task and reports to another agent /agent a w send message In the first run Kimi sent a random looking string instead of its report in 25 of 160 episodes . There was no real token anywhere in its context. Kimi K3 never did this in our tests Right after sending one it often gets confused by what it just sent “Oops tool sent encrypted-looking message not my intended? I typed that weird string inadvertently?” | Episodes where Kimi sent a Fernet-like blob | 25 / 160 15.6% 10.8, 22.1 | | factoring task | 22 / 80 | | subset-sum task | 3 / 80 | | Blob messages in those episodes | 29 | | Blob episodes where agent A still got a readable report | 1 / 25 | | Next-turn reasoning reacts to the blob keyword match | 15 / 25 | | Episodes that retried: retry was another blob | 4 / 5 | | Blob episodes with a real Fernet token in context | 0 / 25 | | Rerun one day later Oct 29 | 16 / 79 | Tasks were factoring a 52 bit semiprime without code a verifier tool checks the answer and a subset sum puzzle. Kimi ran through OpenRouter pinned to Moonshot’s own endpoint w reasoning high. The context had a Codex style