Skip to content

recipes

github-actions[bot] edited this page Oct 15, 2026 · 1 revision

Рецепты: агент и ваша переписка

Эта страница нужна, если вы хотите поручить своему ИИ-агенту (например, Claude Code, Codex, Cursor или Gemini CLI) регулярную работу с MAX: сводку непрочитанного, отчёт по чату, список долгов и обещаний, напоминания о неотвеченном, присмотр за группой, которую вы ведёте. В каждом рецепте — готовый запрос, команды, которые агенту можно запускать, и пишет ли он что-то в MAX. В конце вы сможете запускать агента по расписанию, с ограничениями, которые он не обойдёт.

Слова на этой странице:

  • Агент — ИИ-помощник, который запускает команды на вашем компьютере за вас.
  • Навык — файл, из которого агент узнаёт, как работать с max. max skill install кладёт его туда, где агент его ищет.
  • MCP-клиент — ИИ-приложение без терминала, например Claude Desktop. Оно обращается к max через MCP-сервер max personal mcp, а не запускает команды.
  • Режим без диалога — агент получает один запрос, выполняет его и завершается. У Claude Code это режим -p, у Codex — codex exec.
  • cron — встроенный планировщик Linux и macOS. Он запускает команду в заданное время.

Что умеют рецепты

Рецепт Пишет в MAX Подходит для расписания
Утренняя сводка нет да
Недельный отчёт по рабочему чату нет да
Кто кому должен нет да
Кому вы не ответили нет да
Найти, что было сказано нет да
Черновик ответа только после вашего «да» нет
Группа, которую вы ведёте только если разрешено правилами группы да

Сначала — один раз

  1. Установите max и войдите: см. установку и вход и сессии.

  2. Поставьте агенту навык:

    max skill install

    Навык ляжет в папку Claude Code (~/.claude/skills/max-cli/) и в папку Codex и Gemini CLI (~/.agents/skills/max-cli/). max skill show печатает тот же текст, если ваш агент хранит навыки в другом месте.

  3. Сохраните запросы из рецептов в файлы, например в ~/max-recipes/. Команды расписания ниже читают запрос из файла.

MCP-клиенту навык не нужен. Подключите MCP-сервер (max personal mcp config печатает запись для его настроек) и зовите готовые команды — /catch-up, /review, /reply, /find. См. готовые команды MCP-сервера.

Что агенту можно

Агент по расписанию работает без вас, поэтому ограничения задаются в настройках, а не в запросе. Фразу «ничего не отправляй» агент может понять неправильно. Запрет в настройках, который он не может изменить, он не обойдёт.

Запрет на уровне агента. Это настройка самого агента. Например, Claude Code в режиме -p запускает только команды из --allowedTools. Если max personal messages send в списке нет, агент не может её вызвать:

claude -p "$(cat ~/max-recipes/morning.md)" --allowedTools "Bash(max personal inbox:*)"

У Codex такого списка нет. Его песочница по умолчанию закрывает сеть и запись файлов, а max нужно и то и другое: подключиться к MAX и сохранить прочитанное в свою копию. Поэтому Codex запускается с --sandbox danger-full-access, а отправку ограничивают настройки max ниже.

Запрет на уровне max действует на любого агента:

for resource in messages reactions polls topics chats contacts account bot conversations; do
  max personal config set "permissions.$resource" readonly
done
max config show                       # проверить эффективные права
max personal config set sends_per_hour 5          # или: не больше пяти сообщений в час
max personal recipients add "Иван Петров"       # и писать только в эти чаты

readonly на одном ресурсе не касается остальных: с одним messages агент ещё может ставить реакции, голосовать или менять чаты. Поэтому цикл задаёт каждый ресурс. Более точный ключ вроде permissions.messages.send: allow имеет приоритет над ресурсом: удалите такие разрешения, если профиль должен только читать.

permissions ограничивает и ваши собственные команды, пока вы не снимете запрет: max personal config unset permissions.<ресурс>. Тогда снова действуют унаследованные настройки и значения по умолчанию. Чтобы ограничить только агента, дайте ему отдельный профиль. Все попытки отправки, в том числе отклонённые, — в max personal sends list. См. защиту от отправки не туда и права доступа.

Чтение не выдаёт вас. Ни одна команда в рецептах ниже не ставит отметку «прочитано»: собеседник не видит, что агент открыл чат.

Как запускать по расписанию

  • Claude Desktop — запланированные задачи. Задача запускается на вашем компьютере, поэтому ей доступен max и ваш вход. Пропущенный запуск (компьютер спал) выполняется один раз после пробуждения. См. запланированные задачи Claude.

  • cron и claude -p. Без приложения, на любом компьютере, который включён в это время:

    30 8 * * * claude -p "$(cat ~/max-recipes/morning.md)" --allowedTools "Bash(max personal inbox:*)" >> ~/max-recipes/morning.log 2>&1

    Задачи cron запускаются в почти пустом окружении. В Linux это ломает max двумя способами:

    • node: not found, код 127. Node, поставленный через nvm, fnm или Volta, лежит не в системном PATH, а cron знает только системный.
    • no token found for profile "default", although it has logged in on this machine, код 4. max не может достучаться до хранилища паролей системы и не видит токен. Не входите заново: вход в порядке, дело в окружении.

    Обе строки — в начало crontab -e, со своими значениями. Папка — из dirname "$(which node)", число — из id -u:

    PATH=/home/ivan/.nvm/versions/node/v24.19.0/bin:/home/ivan/.local/bin:/usr/local/bin:/usr/bin:/bin
    XDG_RUNTIME_DIR=/run/user/1000

    Хранилище паролей доступно, пока вы вошли в систему. Первый запуск проверьте руками и посмотрите в журнал. См. режим без диалога у Claude.

  • cron и codex exec. То же для Codex:

    30 8 * * * codex exec --sandbox danger-full-access "$(cat ~/max-recipes/morning.md)" >> ~/max-recipes/morning.log 2>&1

    См. режим без диалога у Codex.

  • Внутри открытой сессии Claude Code — /loop или «напомни в 15:00». Работает, пока сессия открыта. См. запланированные задачи Claude Code.

Облачные задачи Claude (routines) не подходят: они выполняются на другом компьютере, где нет max и вашего входа.

Утренняя сводка

Пишет в MAX: нет. Разрешить: Bash(max personal inbox:*).

Выполни max personal inbox --new --json. Сгруппируй сообщения по чатам. Для каждого чата — одна строка: кто пишет и чего хочет. Сверху — то, на что нужно ответить сегодня. Рекламу и уведомления сервисов сведи в одну строку в конце.

--new показывает каждое сообщение один раз. max запоминает, где остановился в каждом чате, и следующий запуск начинает с этого места. Самый первый запуск смотрит на последние 24 часа.

С какого момента «новое»

  • max personal inbox — непрочитанное, как его считает MAX: всё, что вы не открыли ни на одном устройстве.
  • max personal inbox --new — с прошлого запуска --new. Эту точку знает только max, собеседники её не видят.
  • max personal inbox 'date>2d' — за последние два дня; сохранённая точка не сдвигается.

Ни одна из них не отмечает сообщения прочитанными. Если это нужно, добавьте --mark-read или включите catch_up_marks_read в настройках. Тогда собеседник увидит, что вы прочитали.

Отдельно личные, группы и каналы

--kind оставляет только чаты нужного вида: dialog — личные, group — группы, channel — каналы. Сводку по каналам и сводку по переписке можно запускать по отдельности, в разное время. У каждого чата своя точка, и один запуск не прячет то, что ещё не показал другой:

30 8 * * * claude -p "$(cat ~/max-recipes/morning.md)" --allowedTools "Bash(max personal inbox:*)"
0 19 * * * claude -p "$(cat ~/max-recipes/news.md)" --allowedTools "Bash(max personal inbox:*)"

В morning.md — max personal inbox --new --kind dialog,group --json, в news.md — max personal inbox --new --kind channel --json и просьба выбрать главное. Без --kind — всё вместе.

Недельный отчёт по рабочему чату

Пишет в MAX: нет. Разрешить: Bash(max personal messages list:*).

Прочитай сообщения в чате «Проект Альфа» за последние 7 дней: max messages list "Проект Альфа" 'date>7d' --limit 200 --json. Если в ответе есть шаг page.next, читай дальше с его --cursor. Составь отчёт: что решили, кто что взял на себя и к какому сроку, какие вопросы остались без ответа. У каждого пункта — дата и автор.

Кто кому должен

Пишет в MAX: нет. Разрешить: Bash(max personal review:*), Bash(max personal messages context:*), Bash(max personal search messages:*).

Выполни max personal review --new --transcribe --json (первый раз — за 3 дня, потом — с прошлого --new, у каждого чата своя точка). Разложи на три списка: что должен я, чего я жду от других, что нужно уточнить. У каждого пункта — чат, дата и id сообщений, на которых он основан; срок — только если он назван. Прежде чем назвать что-то просроченным, проверь, не сделано ли это позже или в рабочих группах. Если "complete": false, скажи, чего не хватает. В конце перечисли незакрытые пункты.

--transcribe сначала переводит голосовые сообщения в текст; это может занять минуты. Следующий обзор — та же просьба плюс незакрытые пункты прошлого: агент проверит их первыми. Чат, прочитанный не целиком, сохраняет свою точку и придёт снова. В MCP-клиенте это команда /review.

Кому вы не ответили

Короче всего — max personal review 'date>7d' --unanswered --json: вопросы, на которые никто не ответил, — в личных чатах вам, в группах вам или админам. Рецепт ниже шире: он ловит и просьбы без вопросительного знака.

Пишет в MAX: нет. Разрешить: Bash(max personal chats list:*), Bash(max personal messages list:*).

Выполни max personal chats list kind:dialog --offline --limit 30 --json. Для каждого чата, где последнее сообщение было за последние 7 дней, прочитай max personal messages list <id чата> --limit 5 --json. Покажи чаты, где последнее сообщение не от меня и в нём вопрос или просьба: с кем, о чём и сколько дней прошло.

Найти, что было сказано

Пишет в MAX: нет. Разрешить: Bash(max personal search messages:*), Bash(max personal messages context:*).

Найди «счёт» через max personal search messages счёт --json. Для каждого найденного прочитай max personal messages context <locator> --json и скажи, кто что сказал и когда.

По умолчанию поиск идёт и по копии на этом компьютере, и на сервере MAX. В локальной копии есть только то, что max уже сохранил. Чтобы искать по всей истории чата локально, сначала скачайте её. Это запрос от вашего аккаунта, поэтому сделайте его сами: max personal messages sync <чат>. См. скачивание истории.

Черновик ответа

Пишет в MAX: только после вашего «да». Это рецепт для разговора с агентом, не для расписания.

Прочитай последние 20 сообщений в чате с Иваном Петровым и предложи ответ на его последний вопрос. Не отправляй — покажи мне текст.

Когда вы согласны, агент отправляет сам: max personal messages send "Иван Петров" "…". MCP-клиент подключается через max personal mcp. Не давайте клиенту заранее одобрять max_write, и он будет спрашивать вас перед каждой отправкой. Права профиля всё равно ограничивают запись. См. MCP-сервер.

Группа, которую вы ведёте

Пишет в MAX: только если разрешено правилами группы. Разрешить: Bash(max personal review:*), Bash(max personal chats events:*), Bash(max personal chats members list:*), Bash(max personal chats moderate:*).

Выполни max personal review 'chat:"Поход"' --unanswered 4h --json, max chats events "Поход" 'time>=7d' --json и max chats moderate "Поход" --dry-run --json. Коротко: какие вопросы ждут ответа, от кого и с какого времени; кто вступил или был добавлен за неделю и кем; что проверка нашла по правилам группы и что предлагает сделать. Никому не отвечай и никого не удаляй сам — перечисли команды, которые сделают это, если я соглашусь.

С --dry-run команда chats moderate только составляет план. Без него она действует в пределах правил группы, поэтому уберите Bash(max personal chats moderate:*) из списка, если агент не должен действовать никогда. Все сценарии и правила — группы, которые вы ведёте.

Похожие сборники

Для MAX готовых рецептов пока нет. Для Telegram есть; их запросы подходят и для max, если заменить инструменты на команды:

  • Telegram MCP: полное руководство — утренний разбор входящих, черновики ответов, сводка по каналу, поиск по нескольким чатам.
  • pioh/tg — ИИ-агент с личным аккаунтом Telegram: сводка раз в N минут, «напомни, если я не ответил маме за 15 минут», наблюдение за людьми и чатами.
  • Gorgias MCP cookbook — рецепты для службы поддержки, но хорошо устроены: у каждого сказано, пишет ли он что-то, и что поправить под себя.

Clone this wiki locally