Skip to content
github-actions[bot] edited this page Oct 14, 2026 · 1 revision

Человек: профиль, сообщения, проверка на бота

Эта страница нужна, когда вы хотите больше узнать об одном человеке: кто он, что писал вам или в ваших группах и не похож ли его аккаунт на бота или спамера. Вы узнаете, как посмотреть профиль человека, собрать его сообщения для пересказа, проверить аккаунт, прежде чем ему доверять, и вести свои имена и заметки о людях.

Несколько слов, которые встретятся ниже:

  • Локальная копия — сообщения, которые max хранит на этом компьютере. Числа и сообщения на этой странице берутся из неё, поэтому показывают только то, что было скачано.
  • Профиль здесь — то, что MAX сообщает о человеке: имя, описание, фото, отметки. Это не профиль входа max.
  • Человек указывается его id или частью имени. Если часть имени подходит нескольким людям, команда останавливается и перечисляет их; повторите её с id.

Что можно сделать

Задача Команда
Узнать, кто это и где вы с ним переписываетесь max personal contacts profile
Прочитать, что он писал, во всех чатах или в названных max personal contacts context
Проверить, похож ли аккаунт на бота, фейк или спамера max personal contacts check
Проверить самых подозрительных участников группы max personal chats members audit --deep
Записать, что аккаунт в MAX и аккаунт в Telegram — один человек max personal contacts link
Вести своё имя и заметки о человеке max personal contacts alias, max personal contacts notes

Все опции этих команд — в справочнике команд для контактов.

Кто это: contacts profile

max personal contacts profile 20000002
max personal contacts profile 20000002 --json

Команда показывает, что MAX сообщает о человеке, и сколько его сообщений лежит в локальной копии в каждом общем чате:

{
  "id": "20000002",
  "name": "Пример Примеров",
  "usernames": [],
  "bio": "Книги и велосипед",
  "phone": "***0123",
  "flags": { "bot": false },
  "registered": { "at": "2021-03-14T00:00:00.000Z", "source": "max", "precision": "day" },
  "hasPhoto": true,
  "seen": "2026-10-08T07:12:00.000Z",
  "chats": [
    { "id": "30000003", "title": "Пример Примеров", "kind": "dialog", "theirMessages": 128,
      "firstAt": "2024-02-11T09:14:00.000Z", "lastAt": "2026-10-05T18:02:00.000Z", "complete": true },
    { "id": "-40000004", "title": "Книжный клуб", "kind": "group", "theirMessages": 37,
      "firstAt": "2025-06-01T10:00:00.000Z", "lastAt": "2026-09-30T20:41:00.000Z", "complete": false }
  ],
  "aliases": [
    { "name": "Пример П.", "firstSeenAt": "2024-03-02T08:00:00.000Z",
      "lastSeenAt": "2024-03-02T08:00:00.000Z", "source": "profile" }
  ]
}
  • registered — день создания аккаунта по данным самого MAX (source: max). Это не оценка.
  • flags — bot: true у бота. Отметок вроде «мошенник» или «подтверждён» MAX для личных аккаунтов не присылает.
  • hasPhoto — есть ли у человека своё фото.
  • seen — когда человек был в MAX последний раз, или online. MAX отвечает на это отдельным запросом при каждом вызове. Поля нет, если MAX ничего не сказал.
  • phone — только последние четыре цифры и только если MAX показывает вам номер. --show-phone печатает его целиком. MCP-инструмент всегда скрывает номер.
  • chats — все общие чаты и любые другие чаты, где в копии есть его сообщения.
  • aliases — прежние имена, под которыми локальная копия видела человека, от старых к новым. source: profile — имя сменилось, пока копия следила; source: messages — имя в его сохранённых сообщениях, приблизительно: заново скачанное сообщение несёт новое имя. Пусто, пока копия не видела смены имени.

Команда делает один запрос к MAX сверх того, что делает contacts show, и человеку ничего не сообщает. С --offline ответ собирается из локальной копии.

Числа — это то, что лежит в копии

theirMessages, firstAt и lastAt считаются по локальной копии, а не спрашиваются у MAX. Если complete: false, чат сохранён не с начала: число — это минимум, а firstAt может быть позже его настоящего первого сообщения. Чтобы дополнить, скачайте чат:

max personal messages sync "Книжный клуб"

Что он писал: contacts context

Без --chat команда собирает обзор из локальной копии: общие чаты, последнее сообщение в каждую сторону, его недавние сообщения в личном чате и в группах, где его упоминали другие. К MAX она не подключается и ничего не отмечает прочитанным.

max personal contacts context 20000002

С --chat — его последние сообщения в каждом названном чате, от старых к новым, по 20 на чат:

max personal contacts context 20000002 --chat "Книжный клуб" --chat "Работа" --limit 10
max personal contacts context 20000002 --chat "Книжный клуб" --refresh
{
  "person": { "uid": "p_7", "provider": "max", "id": "20000002", "name": "Пример Примеров" },
  "chats": [
    {
      "chat": { "id": "-40000004", "title": "Книжный клуб", "kind": "group" },
      "messages": [
        { "at": "2026-09-29T19:02:00.000Z", "text": "Следующим берём сборник рассказов" },
        { "at": "2026-09-30T20:41:00.000Z", "text": "В четверг могу у себя" }
      ],
      "complete": false,
      "more": true
    }
  ],
  "limits": { "messages": 10 }
}
  • По умолчанию у сообщения только время и текст, чтобы агент прочитал много сообщений сразу. -v добавляет номер сообщения, ссылку на него, отправителя и на что это ответ; -vv — всё.
  • --refresh сначала читает у MAX последнюю страницу каждого чата и берёт из неё сообщения этого человека: искать по отправителю MAX не умеет. Без --refresh ответ берётся из копии.
  • more: true — есть сообщения старше лимита; complete: false — копия хранит чат не с начала.
  • У голосового сообщения есть transcript, когда оно переведено в текст.

Бот, фейк или спамер: contacts check

max personal contacts check 20000002
{
  "person": { "id": "20000002", "name": "Пример Примеров", "username": null, "provider": "max" },
  "score": 3,
  "reasons": [
    { "reason": "no_bio", "weight": 1, "source": "messenger" },
    { "reason": "link_first", "weight": 2, "source": "store" }
  ],
  "registries": [
    { "name": "cas", "answer": "unknown", "checkedAt": "2026-10-07T08:00:00.000Z",
      "detail": "lists Telegram accounts only, not max" },
    { "name": "lols", "answer": "unknown", "checkedAt": "2026-10-07T08:00:00.000Z",
      "detail": "lists Telegram accounts only, not max" }
  ],
  "unknown": [],
  "checkedAt": "2026-10-07T08:00:00.000Z"
}

Оценка складывает веса найденных причин. Это подсказка, а не вывод: у многих настоящих людей нет фото или описания, поэтому такие причины весят мало.

Причина Вес Что значит
new_account 2 аккаунт создан меньше 30 дней назад, по дате от MAX
link_first 2 его первое сохранённое сообщение — ссылка
same_text 2 один и тот же текст в нескольких чатах
no_photo, no_username, no_bio 1 в профиле этого нет
odd_name 1 нет имени, длинный ряд цифр или ссылка в имени
never_wrote 1 в копии нет ни одного его сообщения
deleted 1 аккаунт удалён

unknown перечисляет признаки, которые не по чему было оценить; низкая оценка при длинном unknown мало что значит.

Что уходит с компьютера

Ничего. Публичные списки спамеров (Combot CAS и lols.bot) ведут только аккаунты Telegram, поэтому max их не спрашивает, и в ответе они отмечены как unknown. Id человека никуда не отправляется. --offline читает только сохранённое.

Участники группы: chats members audit --deep

max personal chats members audit "Книжный клуб"
max personal chats members audit "Книжный клуб" --deep 10

chats members audit оценивает всех участников по списку участников и локальной копии, без отдельного запроса на каждого, и выводит тех, у кого есть причина, по убыванию оценки. --deep 10 затем делает полную contacts check для десяти с наибольшей оценкой, по человеку в секунду. Никого не удаляет; владелец и администраторы в список не попадают.

Один человек в двух мессенджерах: contacts link

max и tg на одном компьютере пользуются одной локальной копией. Если вы знаете, что аккаунт в MAX и аккаунт в Telegram — один человек, запишите это:

max personal contacts link 20000002 telegram:1000001
max personal contacts unlink 20000002

После этого contacts context без --chat собирает оба аккаунта: общие чаты и сообщения из MAX и из Telegram. contacts profile и contacts context --chat по-прежнему показывают только тот аккаунт, который вы назвали. Связь — только то, что записали вы: одинаковое имя в двух мессенджерах никогда не считается одним человеком. Адресную книгу MAX эта запись не меняет.

Свои имена и заметки: contacts alias, contacts notes

max personal contacts alias set "Борис Пример" Боря            # ваше имя для человека, только на этом компьютере
max personal contacts alias rm "Борис Пример"
max personal contacts notes add "Борис Пример" --file note.txt  # или текст из stdin
max personal contacts notes list "Борис Пример"
max personal contacts notes edit "Борис Пример" <id> --revision 1 --file note.txt
max personal contacts notes remove "Борис Пример" <id>
max personal contacts show "Борис Пример" --with-notes
max personal contacts list --search-notes квартира             # люди, в чьих заметках есть этот текст

Псевдонимы и заметки хранятся в локальной копии и никогда не уходят в MAX. Псевдоним действует только в аккаунте, с которым вы работаете; заметка о человеке видна в каждом профиле входа max на этом компьютере, где этот человек встречается. contacts rename меняет имя в адресной книге MAX — это другое. Команда находит человека по вашему псевдониму, если псевдоним не совпадает с чужим именем; иначе нужен id. --revision не даёт изменить заметку, если её поменяли после того, как вы её прочитали. Обновление контактов сохраняет заметки и псевдонимы, а связывание людей их не объединяет.

Что дальше

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

Clone this wiki locally