Repository navigation
replies
Эта страница — о том, как автоматически отвечать на сообщения в MAX, когда вы не можете ответить сами: например, коротко написать «отвечу утром» тем, кто пишет после рабочего дня. Прочитав её, вы получите работающий автоответ: правило с вашим текстом, выбор того, кто может получить ответ, способ заранее проверить, что оно ответило бы, ничего не отправляя, и готовые тексты со страницы Черновики и шаблоны ответов.
Несколько слов, которые встретятся ниже:
- Правило говорит, на какие входящие сообщения реагировать и что делать: ответить, открыть задачу или и то и другое.
- Шаблон — текст ответа. В нём можно подставить имя отправителя и время.
- Аудитория — люди и чаты, которым вообще можно отвечать, что бы ни говорило правило.
-
max personal serve— фоновый процесс, который получает новые сообщения и применяет правила.
Кто получает ответ и когда что-то отправляется:
-
Ответ получает каждый, кого выбрали правила, пока вы не ограничите аудиторию. Отвечать только
выбранным людям:
max personal replies audience --reply listed --allow-people …; исключить кого-то:--deny-peopleи--deny-chats. -
Ничего не отправляется, пока вы не включите отправку. Нужно
permissions.replies.send allow;askтоже запрещает отправку, потому что у фонового сервера некого спросить. Новое правило тоже выключено, пока вы его не включите.
Полная справка — команды автоответов.
max personal replies add away
max personal replies edit away --template 'Спасибо, {{ sender.firstName | default: "вам" }}! Отвечу утром.'
max personal replies edit away --outside 09:00-19:00 --days mon-fri --timezone Europe/Madrid
max personal replies edit away --per-chat 1/12h --per-person 1/1dadd создаёт выключенное правило со всеми текущими настройками. Файл
<профиль>.replies.json находится рядом с configFile из max config show --json.
По умолчанию правила отвечают всем, кого выбрали. Чтобы отвечать только выбранным людям,
перечислите их id в MAX через запятую; max personal contacts show <имя> --json показывает id человека
в поле id:
max personal replies audience --reply listed --allow-people 1000001Чтобы отвечать всем, кроме некоторых людей или чатов, оставьте --reply all и запретите их:
max personal replies audience --deny-people 1000002 --deny-chats 1000003После первой команды в файле:
{
"audience": {
"reply": "listed",
"allow": { "people": ["1000001"], "chats": [] },
"deny": { "people": [], "chats": [] }
},
"rules": [ … ]
}Имена правил — строчные буквы, цифры и дефис; повторный id отвергается. Правило с действием reply нельзя включить
без текста шаблона. Для выключенного правила и действия task пустой текст допустим.
max personal replies test --since-time 7d
max personal replies on away
max personal config set permissions.replies.send allow
max personal servereplies test читает только сохранённые сообщения: ничего не отправляет, ничего не меняет
и не подключается к MAX. Без разрешения отправки сервер молчит.
max personal replies off away выключает одно правило.
replies edit меняет только переданные поля. Списки через запятую заменяются целиком;
пустая строка очищает список. Id остаются строками, включая большие числа.
| Поля | Опции |
|---|---|
| Действия |
--do reply,task — ответ, задача или оба действия |
| Чаты |
--kinds dialog,group, --chats, --not-chats
|
| Условия |
--words, --question / --no-question, --mentions-me / --no-mentions-me
|
| Отправители |
--people, --not-people, --contacts-only / --no-contacts-only
|
| Ответ |
--template, --as-reply / --no-as-reply
|
| Лимиты |
--per-chat, --per-person, например 1/12h
|
| Рабочее время |
--outside, --days, --timezone, --no-hours
|
Первое задание времени требует окно, дни и часовой пояс вместе; позднее можно изменить
одно поле. --no-hours очищает окно и несовместим с его полями. Перед записью проверяются
исходный файл и весь результат. Неверная правка не перезаписывает файл; другие правила,
аудитория, порядок правил и история ответов сохраняются.
max personal replies audience показывает общую аудиторию файла. Новый файл — это --reply all:
он отвечает любому, кого выбрало правило. --reply listed отвечает только разрешённым людям и чатам. Опции --allow-people,
--allow-chats, --deny-people, --deny-chats заменяют соответствующие списки.
Запрет побеждает разрешение. При listed с пустым списком никто не получает ответ;
команда предупреждает об этом.
Действие task открывает локальную задачу и не ограничивается аудиторией ответов.
Примеры текстов ответа для частых случаев и когда лучше оставить черновик — на странице Черновики и шаблоны ответов.
Доступны sender.firstName, sender.name, chat.title, chat.kind и now в часовом
поясе правила, либо UTC без окна времени. Можно использовать фильтры, например
{{ now | date: "%H:%M" }}. Текст входящего сообщения не является переменной шаблона.
Неизвестные переменные и фильтры отвергаются; default обрабатывает отсутствующие значения.
Чтение файлов из шаблона запрещено, время, память и длина результата ограничены.
Модель может изменить только блок ai; текст вне блока остаётся вашим текстом
с обычными подстановками:
Спасибо, {{ sender.firstName | default: "вам" }}!
{% ai %}Коротко подтвердите получение; я отвечу завтра.{% else %}Отвечу завтра.{% endai %}Тело блока после подстановок — инструкция. Входящий текст передаётся модели отдельно
как данные. Её ответ не исполняется как Liquid; слишком длинный ответ или полный повтор
входящего текста отвергается. Если провайдер не настроен, нет согласия или вызов не удался,
используется else. Без него ответ пропускается с объяснением.
Настройте models.replies.provider (openai или anthropic), точный id модели в
models.replies.model и при необходимости models.replies.baseUrl. Общие значения
берутся из models.default; provider off выключает назначение. config set и
config unset принимают эти ключи, config show показывает источник каждого поля.
Старые analysisProvider, analysisModel, analysisBaseUrl продолжают работать для анализа.
Ключ хранится через max personal models text key set; для своего сервера имя ключа — его host
с портом, и ключ публичного провайдера туда не передаётся.
Согласие на модель отдельно от права отправлять ответы:
max personal replies consents show
max personal replies consents grant
max personal replies consents revokegrant разрешает передавать входящие данные выбранному провайдеру для всего профиля.
replies consents deny с id чата запрещает модель для этого чата; allow с id снимает
этот запрет, но не выдаёт согласие на профиль. Запреты сохраняются при grant/revoke.
Смена провайдера или endpoint требует нового согласия. Изменение согласия, настроек,
правила, аудитории или pause во время вызова проверяется перед отправкой результата.
max personal replies test показывает инструкции и запасной текст без вызова модели.
max personal replies test --ai явно разрешает передать сохранённые сообщения настроенной модели
с действующим согласием. Это не отправляет ответ в мессенджер и не меняет историю ответов;
--ai несовместим с --offline.
Старые {firstName}, {name} и model: may-reword читаются с предупреждением:
исходный заполненный шаблон остаётся запасным текстом. В новом файле поле model не нужно.
- Тех, кого аудитория не разрешает.
- Ваши сообщения, каналы, ботов, сообщения от имени чата.
- Изменённое сообщение, уже обработанное сообщение и то, что пришло до запуска
serve. - В группе — сообщение без упоминания вас или ответа вам, если правило не называет группу в
chats.
Лимиты perChat и perPerson обязательны. Два автоответчика останавливаются на первом лимите.
max personal replies pause немедленно останавливает все правила, resume отменяет паузу;
перезапуск не нужен. status показывает разрешение отправки, включённые правила и аудиторию.
max personal sends list показывает отправленные ответы с пометкой правила.