用英文给编码智能体写提示词更省 token 吗?40 次实测只差 12 个 token
原文标题:Писать агенту по-английски ради экономии? 40 прогонов: разница 12 токенов на задачу
作者用 5 个 Python 任务、Haiku 4.5 和 Sonnet 5.5 各跑两遍共 40 次,对比俄语和英语提示词的 token 消耗与成本。俄语提示词平均每任务多 12 个 token,但单次运行平均读取约 22.2 万输入 token,其中 94% 是每轮从缓存重读的系统提示词、工具说明和项目文件,语言差异只占约 0.005%。
В чатах про кодинг-агентов регулярно всплывает совет: пишите промпты по-английски, русский съедает в полтора раза больше токенов. Я сам так делал первые пару месяцев. Потом стало интересно, сколько я на этом сэкономил. Сел и посчитал.
Сначала токенизатор
Взял абзац на русском и его английский перевод, отправил в API и посмотрел, сколько входных токенов насчитала модель. У Opus 5.5 и Sonnet 5.5 токенизатор общий, цифры совпали:
по-русски 194 токена (470 символов);
по-английски 132 токена (454 символа).
В 1,47 раза. Совет не врёт.
Потом взял свои настоящие промпты к агенту, пять задач, которые я обычно скидываю ему не глядя. Тут разница уже 512 токенов против 450, всего 1,14 раза. В промпте к коду половину текста занимают имена функций и файлов, числа, примеры в кавычках, а они на любом языке одинаковые.
В среднем русский промпт к задаче оказался длиннее на 12 токенов.
Потом агент
Те же пять задач на Python: off-by-one в пагинации, переименовать функцию по всему проекту, нормализовать номер телефона, разрезать длинную функцию с копипастой, поделить счёт без потери копеек. Две модели, Haiku 4.5 и Sonnet 5.5. Каждая задача на каждом языке по два раза, каждый раз в чистой папке, Claude Code в режиме -p без MCP. Правильность проверяют скрытые тесты, которых модель не видит. Всего 40 прогонов.
Haiku, EN | Haiku, RU | Sonnet, EN | Sonnet, RU | |
|---|---|---|---|---|
Решено | 8 из 10 | 7 из 10 | 9 из 10 | 10 из 10 |
Время, сек | 356 | 351 | 422 | 311 |
Ходов агента | 92 | 89 | 80 | 74 |
Входных токенов | 2,59 млн | 2,55 млн | 2,02 млн | 1,71 млн |
Выходных токенов | 15 909 | 15 873 | 20 929 | 20 241 |
Стоимость RU к EN | −0,5% | −7,7% |
Оба языка в сумме решили по 17 задач из 20. А Sonnet на русском вышел на 8% дешевле английского. Можно было бы написать «пишите по-русски, так экономнее», но этот вывод ровно настолько же неверный.
Куда делись полтора раза
Средний прогон прочитал около 222 тысяч входных токенов. 94% из них агент перечитывает из кэша на каждом ходе: системный промпт, описания инструментов, файлы проекта, историю диалога. Мой промпт во всём этом занимает около сотни токенов. Разница между языками, те самые 12 токенов, это примерно 0,005% входа.
Зато разброс между одинаковыми прогонами огромный. Та же задача, та же модель, тот же язык: два запуска различаются по стоимости в среднем в 1,5 раза, в худшем случае в 3,4. Sonnet на рефакторинге по-английски один раз уложился в 3 хода и 14 секунд, а во второй раз сделал 12 ходов и потратил 132 секунды. В этом шуме разница между языками просто тонет.
Что всё-таки поменялось
Язык ответа. На русский промпт агент отчитывался по-русски 19 раз из 20, один раз Haiku ответил по-английски.
И одно наблюдение без выводов. Haiku на русском однажды решил, что «вхождение в README.md — это документация, она не влияет на код», и оставил там старое имя функции. В задаче было прямо сказано: «старого имени нигде не должно остаться». На английском обе попытки README поправили. Два прогона — слишком мало, чтобы винить язык, но запомнил.
Задачу про деление счёта Haiku провалил все четыре раза, на обоих языках одинаково: на возврате с отрицательной суммой лишняя копейка уезжает последнему в списке. Язык тут ни при чём.
Что я теперь делаю
Пишу агенту на том языке, на котором точнее формулирую задачу. Для меня это русский с английскими терминами. Точность формулировки влияет на число ходов, а ходы и есть счёт.
Единственное место, где язык набегает заметно, это то, что агент перечитывает каждый ход: CLAUDE.md, правила, длинные инструкции. Если они на русском, они в полтора раза длиннее в токенах. Но и там это сотни токенов на фоне сотен тысяч, и читаются они из кэша.
Если хочется экономить, смотрите на подключённые MCP-серверы и на размер контекста. Там десятки тысяч токенов, а на языке промпта десятки.
Ограничения честно: две модели одного семейства, пять маленьких задач, по два прогона на ячейку. Это замер на коленке, до бенчмарка ему далеко.
А вы на каком языке пишете агенту? Кто переходил на английский, заметили разницу в качестве, а не в токенах?
来源:Habr · Claude Code · habr.com