Как Мила сделала: разборы и новости
Гость написал вашему боту, получил три вопроса подряд и ушёл. Мила устроена против этого: отвечает на языке гостя, задаёт один вопрос о деле и одно уточнение, а не позже третьего ответа даёт строку пользы под его дело и кнопку пробы. Счёт приходит карточкой, а экзамен из сценариев проверяет всё это после каждой правки. У каждой строки ниже — ссылка на код.
Владельцу, в чей бот приходят гости с сайта, из рекламы, с эфиров и по ссылкам-меткам.
Цель гостя — за 3–4 хода понять, чем Мила поможет его делу, и получить пробу. Цель Милы — честно довести гостя до решения: купить или «не сейчас». Правила взяты у Милы Ташкент: после них экзамен «Путь клиента» сдан на 15 из 15. guest-path:10 guest-path:9 CHANGELOG.md:84-85
Русский, узбекский или английский — по всем его текстам за разговор, а не по одному слову, @имени или языку аккаунта. Фото без подписи — на языке его последнего текста.
guest-path:12-15Самое позднее в третьем ответе — строка пользы под его дело и кнопка пробы. Третий ответ без предложения — ошибка.
guest-path:17-20Картинка и способы оплаты кнопками. Реквизиты текстом не повторяются, если они уже есть в кнопке.
guest-path:22-23«Найди собственников в том чате» — мягкий отказ, законный путь на его собственных контактах и проба. Голый отказ — ошибка.
guest-path:28-29Пример одной строкой под его дело: «фото меню или три частых вопроса гостей».
guest-path:31-32Гость пришёл по ссылке-метке — партнёр, профессия, эфир, подарок — Мила продолжает её тему и не продаёт первым основной продукт.
guest-path:34-35Знакомство — один вопрос о деле и одно уточнение. На «по-разному» или «не знаю» Мила больше не уточняет, а предлагает. guest-path:17-20
Уже предлагала дважды? В третий раз не повторяет и идёт другим путём: созвон с людьми или пример. guest-path:17-20
Приветствие, кнопки и тексты меток — тоже на языке гостя: у меток есть поля _uz и _en. Никого не переводят на русский. guest-path:12-15
Гость выбрал пробу — Мила присылает карточку счёта: картинка и способы оплаты кнопками. Фраза одна: «Выберите способ на карточке; если переводом — пришлите скриншот сюда». guest-path:22-23
Гостю из другой страны — способы без местной валюты, Telegram Stars или USDT; местные способы — тем, кто платит в местной валюте. guest-path:24
«Выставим завтра» или «оплатите по кнопке», когда кнопки нет, Мила не говорит. Скриншот перевода сверяет: сколько, кому, когда и статус; сомнение — «проверю и вернусь», а не «принято». guest-path:25 guest-path:26
Слово владельца 17.10.2026: быстрый прогон — часто, живую симуляцию — время от времени. Сценарии лежат в одном yaml: id, title, say — реплики гостя по очереди, must, must_not, required. Быстрый и живой прогоны читают один и тот же файл, иначе баллы несравнимы. exam:9 exam:11-13 exam.example.yaml:1-2
Быстрый прогон — минуты, после каждой правки: тот же промпт, что в боевом боте, свежая сессия на каждый сценарий, реплики гостя по очереди. Ответы оценивает отдельный ход модели по must и must_not: сдано или нет, с дословной цитатой. exam:15-16 express_exam.mjs:62-73 exam:17 express_exam.mjs:41-50
В шапке отчёта — sha256 промпта: сверьте его с тем, что на самом деле стоит в вашем боте. exam:16 express_exam.mjs:100 README.md:10
$ bun tools/express_exam.mjs \
--yaml docs/exam-example/exam.example.yaml \
--prompt docs/exam-example/guest-prompt.example.md \
--repeat 3
С --repeat 3 сценарий идёт три раза, итог — «k из 3»: разброс модели виден, а не прячется. Сценарий сдан по большинству.
Последний ответ Милы подменяется заведомо плохим — прайс списком, «выставим завтра», служебная метка. Оценка обязана сказать «не сдано». Не поймала — оценке не верим.
exam:19 express_exam.mjs:92-97 exam.example.yaml:26-27Служебные метки моста вырезаются, кнопки показываются словами: оценка читает разговор так, как его видит гость.
express_exam.mjs:37-39Юзербот пишет боту как гость. Перед каждым сценарием — полный сброс гостя: сессия, картинки, приветствие, язык, метка, счётчик ходов, карточки, счета — всё по этому id и только для тестовых id. exam:22-24
Итоги быстрого и живого прогонов сверяются по пунктам; расхождение — разбор, какой из двух врёт. exam:22-24
Цикл: провал, урок одной строкой, правка промпта или моста, быстрый прогон за минуты, живой — ночью. Третье одинаковое замечание уходит в правила. exam:26-27
skills/guest-path/SKILL.md, по которым Мила ведёт каждый разговор с гостем, вместе с client-chat и lead-qualify. Держит ли она их, показывает экзамен. guest-path:3 client-chat:9 lead-qualify:10tools/express_exam.mjs; живой прогон описан в навыке. exam:22-24 express_exam.mjs:1-4put-gostya и ekzamen теперь guest-path и exam; старые папки держат пути скриптов до v1.6.0. put-gostya/MOVED.md:1-6 ekzamen/MOVED.md:1-6 CHANGELOG.md:79-80exam.yaml на 6 сценариев пациента: запись, цена, острая боль, совет по лечению, узбекский, незаконная просьба. packs/clinic/README.md:22 packs/clinic/exam.yaml:4-37| Файл | Что делает |
|---|---|
| skills/guest-path/SKILL.md | путь гостя: язык, третий ответ, счёт, мягкий отказ, пример, метка |
| skills/exam/SKILL.md | экзамен: один yaml, быстрый и живой прогоны, подложенные провалы |
| tools/express_exam.mjs | быстрый прогон: сценарии, оценка, --repeat, подложенные провалы, отчёт |
| docs/exam-example/README.md | как запустить быстрый экзамен (на английском) |
| exam.example.yaml | сценарии-примеры и подложенный провал |
| packs/clinic/exam.yaml | экзамен пакета «Клиника» |
Набор открыт: умения, хуки, инструменты и шаблоны. Положите свой промпт гостя рядом с exam.example.yaml и запустите быстрый экзамен: отчёт покажет, какие сценарии сданы.
Факты на странице: github.com/shakhruz/mila (main, 570db38), проверено 28.10.2026. Реплики гостя в телефоне — сценарий s02 из docs/exam-example, ответы Милы — иллюстрация. «Mila», «MILAGPT» и логотип — товарные знаки MILAGPT.