MILAGPT
Что вам нужно? Выберите остров — покажу, куда идти.Спросить Милу
Поговорить с МилойСвоя Мила — 3 дня за $5 · разговор с Милой Ташкент — бесплатно
RU·EN
Документация · Карточки решений

Когда нужно ваше решение — карточка с кнопками, а не длинное письмо

Вопрос, два-три варианта с тем, что будет после каждого, её рекомендация со ★. Нажали — она делает. Не нажали — ничего не уходит. У каждой строки ниже — ссылка на код.

Карточки пишет умение kartochki, а сами кнопки — часть открытого Telegram-плагина shakhruz/mila-telegram.

Карточка

Что на карточке

Формат держит скрипт, а не настроение: kartochki.py проверяет карточку до записи и плохую не пропускает, называя причину. Тогда она переписывает, а не обходит. skills/kartochki:17

01 · ВОПРОС

Одно решение, вопросом

Первая строка — само решение, до двенадцати слов. Под ней строка-две: почему сейчас. Два решения — две карточки.

kartochki.py:161-168skills/yasno:21-29
02 · ВАРИАНТЫ

Два-три варианта

У каждого варианта написано, что будет после него. Меньше двух или больше трёх — скрипт карточку не запишет.

kartochki.py:169-174
03 · РЕКОМЕНДАЦИЯ

Её выбор отмечен ★

Рекомендация — зелёная кнопка со ★ и строка «Советую: А». Рекомендацию не из списка вариантов скрипт не примет.

kartochki.py:135-145
04 · СРОК

Срок, если он есть

«Нужно до» — дата и время в вашем поясе. 🔴 Срочно — только если завтра будет поздно.

kartochki.py:137-138skills/kartochki:14-16
Кнопки

Нажмите — или просто скажите

Нажатие возвращается к ней как «[кнопка] …» с подписью, и скрипт сопоставляет его с карточкой, которую она показала. Голосовое или текст вместо кнопки — тоже ответ.

receiver.ts:1387-1391 · skills/kartochki:25-30

Под карточкой-вопросом
  • Варианты — первой строкой; её выбор зелёный, со ★. kartochki.py:141-147
  • 💬 Поясни — объясняет подробнее и снова показывает ту же карточку. kartochki.py:253-254
  • ⏸ До завтра — карточка вернётся следующим утром. kartochki.py:228-230
  • 🤷 Реши сама — решает она, но права тратить деньги эта кнопка не даёт. skills/kartochki:33
  • Задачи команде — своя строка кнопок: ✅, ✏️ Изменить, Нет, ➡️ Другой Миле. kartochki.py:156-157
  • До шести кнопок, по три в ряд. Кнопка-ссылка просто открывает страницу. receiver.ts:776-787
Один раз

Карточка срабатывает один раз

  • Отметка — раньше доставки. Плагин сначала пишет в свой файл «использована» и только потом передаёт нажатие ей, поэтому два быстрых нажатия не дают двух решений. receiver.ts:1378-1384
  • Кнопки гаснут. После нажатия они выключаются, а выбранная получает ✅ — в истории чата видно, что выбрали. На второе нажатие ответ «Already handled.» receiver.ts:1331-1345 receiver.ts:1374-1377
  • Только тому, кому отправлена. Карточку в личке можете нажать только вы. Чужому — короткий отказ, след в отдельном файле, и к ней ничего не доходит. receiver.ts:788-798 receiver.ts:1363-1372
  • Ответ не перезаписывается. Второй ответ на уже закрытую карточку колода не принимает, и это проверяет тест. kartochki.py:233-237 test_kartochki.py:62-63
Ничего само

Без нажатия ничего не уходит

01 · ТЕКСТ

Уходит только после нажатия на этот текст

От вашего имени ничего не уходит само. Вчерашнее нажатие сегодняшний текст не покрывает: новый текст — новое нажатие. Это закон 3 её конституции.

CONSTITUTION.md:17
02 · РАССЫЛКИ

Рассылка показывает, кому и что

«Рассылка: N человек», текст целиком и две кнопки — ✅ Отправить N и Отмена. Без ✅ она даже не пишет заявку, а повтор рассылки — только с новым ✅.

Работает у Мил, которые размещает MILAGPT: служба отправки живёт на сервере.

skills/bot-send:13-19skills/bot-send:31
03 · ИНСТРУМЕНТЫ

Сначала правила, карточка — когда нужна

Рутинные действия проходят по правилу и пишутся в журнал; запрещённые отклоняются, не беспокоя вас; остальное приходит карточкой со сроком. Срок вышел без нажатия — значит, нет, и она прямо говорит, что не сделала.

install/permission_policy.ts:8-15receiver.ts:618-633
04 · ЗАЩИТА

Битый файл правил спрашивает, а не открывает

Если файл правил не читается, каждое действие идёт через карточку. Если зациклившийся процесс шлёт лавину запросов, карточки прекращаются, а запросы отклоняются.

install/permission_policy.ts:114-117receiver.ts:600-611
Журнал

Что записывается и где

Только то, что есть в коде сегодня. Каждый пункт — файл, одна строка на событие.

Файлы, где записываются карточки, нажатия и решения
ФайлЧто записано
inbox.jsonlЕё вопросы вам. Каждое изменение — новой строкой, старые строки не правятся; текущее состояние карточки — её последняя строка. kartochki.py:5-6 kartochki.py:66-71 kartochki.py:74-88
inbox.jsonl · ответКакой вариант, кто ответил (вы или Мила), как (чат, голос, мини-апп) и когда. kartochki.py:244-246
proposals.jsonlКарточки задач команде, так же: принята, отклонена, изменена, передана другой Миле. kartochki.py:5-6
cards.jsonlСписок карточек с кнопками в плагине: чат, кто может нажать, текст, кнопки; потом строка «использована» — кто и когда нажал. Читать файл может только владелец процесса. receiver.ts:1285-1292 receiver.ts:818
permission-log.jsonlКаждое решение по инструментам: пропущено или отклонено правилом, отправлено карточкой, отклонено по сроку или из-за лавины. Права файла проверяет mila doctor. install/permission_policy.ts:143-164 receiver.ts:586-590 install/doctor.py:248-256
auth-log.jsonlКаждое решение о подключении группы, отказы тоже. mila-telegram · README:15
suspicious.jsonlНажатия на карточку теми, кому она не отправлялась. receiver.ts:1309-1313
tasks/sent.jsonlКаждое исходящее сообщение, пишет хук. skills/mila-tasks:27
Честно

Чего эта страница не обещает

В репозитории

Каждую строку можно прочитать

Файлы карточек решений в репозиториях mila-companion и mila-telegram
ФайлЧто делает
skills/kartochkiкак пишется карточка и как на неё отвечают
kartochki.pyпроверяет, пишет и показывает карточки; принимает нажатие
test_kartochki.pyтесты, в том числе «второго ответа нет»
skills/yasnoправила ясного языка для карточек и кнопок
skills/bot-sendрассылки от вашего публичного бота после ✅
install/permission_policy.tsправила для инструментов: allow, deny, ask
permissions.example.jsonстартовые правила, у каждого — причина
CONSTITUTION.mdзакон 3: от вашего имени ничего не уходит само
mila-telegram · receiver.tsкнопки: регистрация, проверка, выключение, доставка
Открытый код · Apache-2.0

Форкните, научите, пришлите PR

Оба репозитория открыты: набор с умениями, хуками, инструментами и шаблонами и Telegram-плагин. Каждый pull request читает человек и Мила Качество.

Факты на странице: github.com/shakhruz/mila-companion (main, v1.3.0) и github.com/shakhruz/mila-telegram (main), проверено 18.10.2026. «Mila», «MILAGPT» и логотип — товарные знаки MILAGPT.