[2026-09-15] eagle: family/how-to/truenas-infrastructure.md personal/tech/deepseek-language-drift.md personal/tech/hermes-agent-improvements.md personal/tech/hermes-fork-vs-upstream.md personal/tech/hermes-git-repo.md personal/tech/xray-reverse-tunnel-kraken-truenas.md

This commit is contained in:
Alexey Martemyanov
2026-09-15 12:48:53 +06:00
parent d750de3e53
commit 48c9c72b58
6 changed files with 549 additions and 6 deletions
+92
View File
@@ -0,0 +1,92 @@
# 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, способ правки без кода