# DeepSeek — спонтанный переход на китайский **Дата:** 2026-09-15 **Статус:** известный баг модели, официального фикса нет. Решение не принято. **Проявление:** Кит (Whale) начал отвечать Alex'у на китайском вместо русского. ## Симптом Модель `deepseek-chat` (провайдер `deepseek`, наш основной) выдаёт ответ целиком на китайском, хотя весь диалог — на русском или английском. Диалог был: коммиты git, английский технический вывод, короткие ответы. **Опять же**, баг плавающий: тот же промпт то даёт правильный язык, то нет. ## Первопричина (подтверждена) Модель **рассуждает внутри на китайском** (это её дефолт — так эффективнее по токенам), а финальный шаг «перевести на язык пользователя» иногда пропускается или сбоит. Два фактора: 1. **Мультиязычное reasoning по дизайну.** Внутренняя цепочка рассуждений генерируется на китайском намеренно, для эффективности. Перевод обратно не всегда происходит. 2. **Недетерминированность генерации.** Тот же вход иногда даёт английский, иногда китайский. Поэтому ни один фикс не гарантирован. **Промпт игнорируется:** в багрепортах отмечено, что модель продолжает на китайском **даже после прямой просьбы** не переключать язык. ## Триггеры - **Короткие технические ответы без явной языковой привязки** — самый частый триггер. Формулировка из разбора: «short, context-lacking prompts more likely trigger default reasoning language». - Большой объём англоязычного вывода (git-логи, diff'ы, термины) — сбивает языковую привязку. - В нашем system prompt **нет жёсткой языковой инструкции**: единственное упоминание — строка 4 `SOUL.md`: `respond in the language you're addressed in — Russian or English`. Формулировка мягкая. ## Статус в апстриме Issue **открыты**, мейнтейнеры не ответили, официального фикса **нет**: - [DeepSeek-V3 #1226](https://github.com/deepseek-ai/DeepSeek-V3/issues/1226) — Model sometimes responds in Chinese even when the conversation is in English - [DeepSeek-V3 #1443](https://github.com/deepseek-ai/DeepSeek-V3/issues/1443) — Model switches to Chinese despite all English prompts - [DeepSeek-V3 #1463](https://github.com/deepseek-ai/DeepSeek-V3/issues/1463) — DeepSeek responds in Chinese instead of English Все решения ниже — community workarounds, не официальные. ## Способы решения (по возрастанию стоимости) ### 1. Жёсткая языковая инструкция в SOUL.md — дешёвый, не гарантирован Заменить мягкую формулировку на явную: > Отвечай **только** на языке собеседника — русский или английский. > Никогда не используй китайский, даже внутри рассуждений. > Если сомневаешься — пиши по-русски. **Плюс:** правится без кода, `SOUL.md` редактируется напрямую. **Минус:** в багрепортах модель игнорировала и прямые запреты. Полезно ещё потому, что теперь есть `prompt_overrides` — можно вынести формулировку в `review/*.md`, не трогая Python. См. [[hermes-agent-improvements]]. ### 2. Детектор языка + retry — надёжно, дорого Программная проверка вывода: если китайский — повтор запроса. Недетерминированность играет в нашу пользу: retry часто даёт правильный язык. **Требует кода в Hermes** (перехват ответа, детекция, повтор). Отдельная задача. ### 3. Смена модели — радикально, эффективно Claude / GPT следуют языковым инструкциям заметно лучше. Если китайский будет повторяться — вариант. **Открытый вопрос:** `deepseek-chat` выбран сознательно или это дефолт, который никто не выбирал? Ответ определяет выбор между путями 1+2 и 3. ## Что НЕ работает - Повтор той же просьбы «говори по-английски» — модель игнорирует. - Опора на мягкую формулировку (`respond in the language you're addressed in`). ## Связанное - [[hermes-whale-system-prompt]] — где живёт языковая инструкция (SOUL.md, строка 4) - [[hermes-agent-improvements]] — prompt_overrides, способ правки без кода