[{"data":1,"prerenderedAt":588},["ShallowReactive",2],{"ru.code.hermes-telegram-quick-capture":3,"ru.code.hermes-telegram-quick-capture-surround":579},{"id":4,"title":5,"body":6,"createdAt":561,"description":562,"draft":563,"extension":564,"image":565,"language":566,"meta":567,"navigation":568,"path":569,"private":563,"rawbody":570,"read":255,"seo":571,"stem":572,"topics":573,"updatedAt":561,"__hash__":578},"content\u002Fru\u002Fcode\u002F25.hermes-telegram-quick-capture.md","Hermes и Telegram: заметки, задачи и автоматизация с телефона",{"type":7,"value":8,"toc":547},"minimark",[9,13,24,27,32,35,38,46,49,53,56,124,127,130,134,137,140,143,153,170,371,392,399,402,406,409,412,415,421,424,427,431,436,439,442,446,459,462,466,473,476,479,483,496,507,514,517,521,524,527,531,534,540,543],[10,11,12],"p",{},"Ссылки на интересные видео я отправляю в Telegram, чтобы получить конспект в Obsidian. Там же могу надиктовать задачу для нужного проекта, не открывая трекер в браузере.",[10,14,15,16,23],{},"Сообщения обрабатывает ",[17,18,22],"a",{"href":19,"rel":20},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002F",[21],"nofollow","Hermes Agent",". Когда-то я использовал его почти для всего, включая кодинг. Сейчас оставил ему сбор заметок, ссылок и задач, а также небольшие операции, которые удобно запускать с телефона.",[10,25,26],{},"Ниже моя схема и задание, которое можно отдать своему агенту, чтобы собрать похожую систему. Названия тем, пути и идентификаторы в примерах условные.",[28,29,31],"h2",{"id":30},"почему-я-сузил-роль-hermes","Почему я сузил роль Hermes",[10,33,34],{},"Сначала мне нравилось, как Hermes работает с памятью и сам создаёт скиллы из повторяющихся действий. Я объяснял процедуру, вносил поправки и в следующих сессиях уже мог на неё ссылаться.",[10,36,37],{},"После пары обновлений в моей настройке начались проблемы с той же памятью. Hermes перестал стабильно следовать привычным инструкциям, и часть правил пришлось объяснять заново.",[10,39,40,41,45],{},"Мне было трудно понять, почему агент стал вести себя иначе: память и скиллы менялись автоматически. Я предпочитаю сам контролировать системные промпты, проектные ",[42,43,44],"code",{},"AGENTS.md"," и инструкции для отдельных операций. Когда ответ меня не устраивает, хочу знать, какой файл проверить и поправить.",[10,47,48],{},"Кодинг я перенёс в другие инструменты. Но управлять процессами из Telegram, когда меня нет дома, по-прежнему удобно. Поэтому Hermes остался, только с более узкой ролью и явно описанными процедурами.",[28,50,52],{"id":51},"что-я-отправляю-в-telegram","Что я отправляю в Telegram",[10,54,55],{},"Отправленное сообщение может сразу запустить обработку: например, превратить ссылку в конспект или запись голоса в задачу.",[57,58,59,72],"table",{},[60,61,62],"thead",{},[63,64,65,69],"tr",{},[66,67,68],"th",{},"Сценарий",[66,70,71],{},"Что получается",[73,74,75,84,92,100,108,116],"tbody",{},[63,76,77,81],{},[78,79,80],"td",{},"Статья или видео",[78,82,83],{},"Summary со ссылкой на источник в Obsidian",[63,85,86,89],{},[78,87,88],{},"Аудио с YouTube",[78,90,91],{},"Скачанный аудиофайл в выбранном каталоге",[63,93,94,97],{},[78,95,96],{},"Задача",[78,98,99],{},"Карточка в локальном или рабочем трекере, либо задача для Obsidian Tasks",[63,101,102,105],{},[78,103,104],{},"Заметка или вопрос",[78,106,107],{},"Заметка по шаблону либо ответ по содержимому vault",[63,109,110,113],{},[78,111,112],{},"Книга или фильм",[78,114,115],{},"Поиск и скачивание доступного материала из различных источников",[63,117,118,121],{},[78,119,120],{},"Рабочее уведомление",[78,122,123],{},"Сообщение об упавшем сайте или проблеме, требующей внимания",[10,125,126],{},"Рабочие уведомления сообщают об упавших сайтах и отсутствующих критических блоках на страницах. Такие проверки можно поручить самому Hermes и запускать по расписанию. Ниже покажу, как это задать обычным сообщением.",[10,128,129],{},"Запрос можно набрать, отправить голосовым сообщением в Telegram или надиктовать через распознавание речи на телефоне. Эта технология называется STT, speech-to-text: преобразование речи в текст.",[28,131,133],{"id":132},"одна-супергруппа-несколько-тем","Одна супергруппа, несколько тем",[10,135,136],{},"Я использую закрытую Telegram-супергруппу с темами. В интерфейсе это отдельные чаты внутри одной группы. К каждой теме привязана инструкция на загрузку нужного скилла.",[10,138,139],{},"Отправляю ссылку в тему конспектов, и агенту не нужно угадывать, хочу ли я скачать видео, обсудить его или сделать summary. Тема уже задаёт основной сценарий. Если мне нужен другой результат, я уточняю его сообщением.",[10,141,142],{},"Схематично маршрутизация выглядит так:",[144,145,151],"pre",{"className":146,"code":148,"language":149,"meta":150},[147],"language-text","Telegram: текст, ссылка или голосовое\n  → Hermes gateway\n  → определение группы и темы\n  → контекст темы и загрузка её скилла\n  → работа с файлами или API\n  → короткий ответ в той же теме\n","text","",[42,152,148],{"__ignoreMap":150},[10,154,155,156,161,162,165,166,169],{},"В Hermes эта настройка называется ",[17,157,160],{"href":158,"rel":159},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Fmessaging\u002Ftelegram#group-forum-topic-skill-binding",[21],"Group Forum Topic Skill Binding",". Привязки задаются в ",[42,163,164],{},"config.yaml"," профиля через ",[42,167,168],{},"platforms.telegram.extra.group_topics",". Вот фрагмент в реальном формате Hermes. Идентификаторы и названия тем условные:",[144,171,175],{"className":172,"code":173,"language":174,"meta":150,"style":150},"language-yaml shiki shiki-themes github-light github-dark","platforms:\n  telegram:\n    extra:\n      group_topics:\n        - chat_id: -1001234567890\n          topics:\n            - name: Конспекты\n              thread_id: 5\n              skill: summary\n            - name: Задачи\n              thread_id: 12\n              skill: task-capture\n            - name: Заметки\n              thread_id: 18\n              skill: create-note\n            - name: Аудио\n              thread_id: 24\n              skill: youtube-audio-downloader\n","yaml",[42,176,177,190,198,206,214,230,238,253,264,275,287,297,307,319,329,339,351,361],{"__ignoreMap":150},[178,179,182,186],"span",{"class":180,"line":181},"line",1,[178,183,185],{"class":184},"s9eBZ","platforms",[178,187,189],{"class":188},"sVt8B",":\n",[178,191,193,196],{"class":180,"line":192},2,[178,194,195],{"class":184},"  telegram",[178,197,189],{"class":188},[178,199,201,204],{"class":180,"line":200},3,[178,202,203],{"class":184},"    extra",[178,205,189],{"class":188},[178,207,209,212],{"class":180,"line":208},4,[178,210,211],{"class":184},"      group_topics",[178,213,189],{"class":188},[178,215,217,220,223,226],{"class":180,"line":216},5,[178,218,219],{"class":188},"        - ",[178,221,222],{"class":184},"chat_id",[178,224,225],{"class":188},": ",[178,227,229],{"class":228},"sj4cs","-1001234567890\n",[178,231,233,236],{"class":180,"line":232},6,[178,234,235],{"class":184},"          topics",[178,237,189],{"class":188},[178,239,241,244,247,249],{"class":180,"line":240},7,[178,242,243],{"class":188},"            - ",[178,245,246],{"class":184},"name",[178,248,225],{"class":188},[178,250,252],{"class":251},"sZZnC","Конспекты\n",[178,254,256,259,261],{"class":180,"line":255},8,[178,257,258],{"class":184},"              thread_id",[178,260,225],{"class":188},[178,262,263],{"class":228},"5\n",[178,265,267,270,272],{"class":180,"line":266},9,[178,268,269],{"class":184},"              skill",[178,271,225],{"class":188},[178,273,274],{"class":251},"summary\n",[178,276,278,280,282,284],{"class":180,"line":277},10,[178,279,243],{"class":188},[178,281,246],{"class":184},[178,283,225],{"class":188},[178,285,286],{"class":251},"Задачи\n",[178,288,290,292,294],{"class":180,"line":289},11,[178,291,258],{"class":184},[178,293,225],{"class":188},[178,295,296],{"class":228},"12\n",[178,298,300,302,304],{"class":180,"line":299},12,[178,301,269],{"class":184},[178,303,225],{"class":188},[178,305,306],{"class":251},"task-capture\n",[178,308,310,312,314,316],{"class":180,"line":309},13,[178,311,243],{"class":188},[178,313,246],{"class":184},[178,315,225],{"class":188},[178,317,318],{"class":251},"Заметки\n",[178,320,322,324,326],{"class":180,"line":321},14,[178,323,258],{"class":184},[178,325,225],{"class":188},[178,327,328],{"class":228},"18\n",[178,330,332,334,336],{"class":180,"line":331},15,[178,333,269],{"class":184},[178,335,225],{"class":188},[178,337,338],{"class":251},"create-note\n",[178,340,342,344,346,348],{"class":180,"line":341},16,[178,343,243],{"class":188},[178,345,246],{"class":184},[178,347,225],{"class":188},[178,349,350],{"class":251},"Аудио\n",[178,352,354,356,358],{"class":180,"line":353},17,[178,355,258],{"class":184},[178,357,225],{"class":188},[178,359,360],{"class":228},"24\n",[178,362,364,366,368],{"class":180,"line":363},18,[178,365,269],{"class":184},[178,367,225],{"class":188},[178,369,370],{"class":251},"youtube-audio-downloader\n",[10,372,373,374,377,378,380,381,383,384,387,388,391],{},"Темы создаются в Telegram, затем их ",[42,375,376],{},"thread_id"," и ",[42,379,222],{}," группы вносятся в конфиг. Поле ",[42,382,246],{}," служит подписью, а ",[42,385,386],{},"skill"," указывает на установленный скилл. Hermes автоматически загружает его при старте новой сессии в этой теме. Для проверки привязки в существующем разговоре начните новую сессию командой ",[42,389,390],{},"\u002Fnew",".",[10,393,394,395,398],{},"Каталог сохранения и проект трекера описываются в самом скилле или его настройках. Поля ",[42,396,397],{},"destination"," в этой привязке нет.",[10,400,401],{},"Раздельные сессии помогают не смешивать обсуждения, но тема не является границей безопасности. Она сама по себе не изолирует файлы, общую память профиля или доступные инструменты. Если рабочие и личные данные требуют разных прав, нужны отдельные профили и технические ограничения доступа.",[28,403,405],{"id":404},"модель-и-инструкции-для-скиллов","Модель и инструкции для скиллов",[10,407,408],{},"У себя я использую OpenAI Terra. Для конспектов, заметок и создания задач мне её хватает.",[10,410,411],{},"В скиллах нужно описать детали, которые иначе придётся повторять в чате. Для конспекта это способ получить текст источника и формат результата. При создании заметки агент должен проверить существующие записи и прочитать шаблон.",[10,413,414],{},"Например, тема задач может иметь такой контракт:",[144,416,419],{"className":417,"code":418,"language":149,"meta":150},[147],"Назначение: создавать задачи в личном трекере.\nПеред работой: загрузить task-capture.\nПроект: использовать явно названный или заранее заданный default.\nЕсли проект определить нельзя: спросить, не угадывать.\nПеред созданием: проверить возможный дубль.\nСрок: не придумывать, при необходимости уточнить.\nПосле создания: вернуть заголовок, проект и ссылку на карточку.\nНе переводить задачу в статус автоматического исполнения.\n",[42,420,418],{"__ignoreMap":150},[10,422,423],{},"Для рабочего трекера нужен свой маршрут с собственными правилами и доступом. Для Obsidian Tasks нужно учитывать синтаксис и настройки установленного плагина. Обычная Markdown-галочка не обязательно попадёт в существующие представления задач.",[10,425,426],{},"Создание карточки я отделяю от её исполнения. Возможность надиктовать баг с телефона не должна автоматически разрешать агенту менять код и выкатывать исправление.",[28,428,430],{"id":429},"как-собрать-похожую-систему","Как собрать похожую систему",[432,433,435],"h3",{"id":434},"выбрать-место-запуска-и-границы-доступа","Выбрать место запуска и границы доступа",[10,437,438],{},"Hermes должен работать на машине, которая доступна, пока вы пользуетесь ботом. Если это домашний компьютер, во время сна или отключения он не выполнит запрос. Для постоянной доступности подойдёт отдельная машина или сервер, но тогда нужно решить, как он получает файлы из Obsidian vault.",[10,440,441],{},"Создайте отдельный профиль для capture. Дайте ему только необходимые каталоги, инструменты и интеграции. Промпт «не читать другие папки» полезен как инструкция, но не заменяет права файловой системы или ограничения инструментов.",[432,443,445],{"id":444},"подключить-telegram-и-проверить-маршруты","Подключить Telegram и проверить маршруты",[10,447,448,449,454,455,458],{},"Создайте бота через ",[17,450,453],{"href":451,"rel":452},"https:\u002F\u002Ft.me\u002FBotFather",[21],"@BotFather",": отправьте ",[42,456,457],{},"\u002Fnewbot",", задайте имя и username, затем сохраните выданный токен в настройках Telegram gateway Hermes. Не публикуйте токен и не пересылайте его в группу. В Hermes закройте доступ посторонним и добавьте свой Telegram user ID в список разрешённых пользователей. Затем добавьте бота в супергруппу с темами. Проверьте, получает ли он обычные сообщения: на это влияют права бота и Telegram privacy mode.",[10,460,461],{},"Запустите gateway как службу с автозапуском и логами. Привяжите каждую тему к своему сценарию, обеспечьте разделение сессий и ответы в исходную тему.",[432,463,465],{"id":464},"подключить-инструменты-и-голос","Подключить инструменты и голос",[10,467,468,469,472],{},"Если работаете с Obsidian, укажите путь к его файлам, карту разделов и шаблоны. Подключая трекер, задайте адрес API и авторизацию, сопоставьте названия проектов с их идентификаторами. Аудио можно скачивать через ",[42,470,471],{},"yt-dlp"," в заранее выбранный каталог.",[10,474,475],{},"Для голосовых сообщений подключите локальное распознавание речи или внешний сервис. Если диктуете через клавиатуру телефона, настройка распознавания в Hermes для этого не нужна.",[10,477,478],{},"После тестового запроса откройте созданную заметку или карточку в трекере. Ответа «готово» в Telegram недостаточно. Отдельно проверьте неудачный запрос: если транскрипт видео недоступен, агент должен сообщить об ошибке, не сочиняя конспект по заголовку.",[432,480,482],{"id":481},"настроить-проверки-по-расписанию","Настроить проверки по расписанию",[10,484,485,486,491,492,495],{},"У Hermes есть встроенный планировщик ",[17,487,490],{"href":488,"rel":489},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Ffeatures\u002Fcron",[21],"Scheduled Tasks (Cron)",". Агент управляет заданиями через инструмент ",[42,493,494],{},"cronjob",", но писать cron-выражение вручную не обязательно. Можно просто попросить его в нужной теме Telegram:",[497,498,499],"blockquote",{},[10,500,501,502,506],{},"Настрой ежедневную проверку сайта ",[17,503,504],{"href":504,"rel":505},"https:\u002F\u002Fexample.com",[21]," в 10:00 по UTC. Проверяй доступность главной страницы и наличие блока с формой заявки. Используй скилл site-check. Если сайт недоступен или блок отсутствует, отправляй сообщение в эту тему с описанием проблемы. Если всё в порядке, не пиши. Сначала выполни тестовую проверку, затем покажи расписание и время следующего запуска в UTC.",[10,508,509,510,513],{},"Скилл ",[42,511,512],{},"site-check"," здесь условный: его нужно заранее подготовить под конкретные страницы и признаки ошибки. Hermes может привязать скилл к заданию и загрузить его при запуске. Время следующего запуска стоит проверить, чтобы 10:00 UTC не превратилось в 10:00 по часовому поясу сервера.",[10,515,516],{},"Задания выполняет работающий gateway, отдельный системный cron настраивать не нужно. Попросить показать расписание, изменить время или приостановить проверку тоже можно обычным сообщением.",[432,518,520],{"id":519},"ограничить-доступ-и-действия","Ограничить доступ и действия",[10,522,523],{},"Ключи вносите локально в защищённое хранилище или файл окружения, не отправляйте их в Telegram. Переписка с ботом не имеет сквозного шифрования.",[10,525,526],{},"Проверка сайта не должна давать агенту право что-либо на нём менять. Удаление данных, публикации и изменения production требуют отдельного подтверждения. Содержимое проверяемых страниц считайте данными, а не инструкциями для агента.",[28,528,530],{"id":529},"задание-для-своего-агента","Задание для своего агента",[10,532,533],{},"Этот блок можно отдать агенту вместе со статьёй. Он должен сначала собрать ваши ответы, а затем адаптировать схему под установленный Hermes.",[144,535,538],{"className":536,"code":537,"language":149,"meta":150},[147],"Собери мне quick capture на Hermes Agent и Telegram по этой статье. Синтаксис конфигурации в примере соответствует документации Hermes. Названия, пути и идентификаторы условные: замени их моими значениями и проверь совместимость с установленной версией.\n\nQ1. Сначала уточни, где будет работать Hermes, какая ОС установлена и нужна ли круглосуточная доступность.\nQ2. Узнай нужные сценарии и темы Telegram. Для каждого согласуй назначение, место результата и случаи, когда нужно задать вопрос.\nQ3. Уточни путь к Obsidian vault, разрешённые и закрытые каталоги, шаблоны заметок, настройки Tasks и нужные трекеры с проектами.\nQ4. Согласуй провайдера модели, её доступность и способ STT: голосовые Telegram, диктовка телефоном или оба варианта.\nQ5. Собери список необходимых доступов. Объясни, куда безопасно внести ключи локально. Не проси отправлять их в Telegram.\nQ6. Согласуй действия без подтверждения и действия, которые всегда требуют моего разрешения. Создание задачи не разрешает её исполнение.\nQ7. Если нужен мониторинг, уточни страницы и признаки ошибок, расписание, часовой пояс, тему и условия отправки уведомлений.\n\nA1. Проверь документацию установленной версии Hermes: профили, gateway, маршрутизацию тем, подключение skills и разделение сессий. Не выдумывай названия параметров. Покажи план и получи согласование. До изменений сохрани резервную копию затрагиваемых настроек и skills в защищённом локальном месте. Не публикуй секреты из копии.\nA2. Создай отдельный capture-профиль, настрой авторизацию пользователя и минимальные доступы. Проверь существующие skills, создай недостающие для согласованных сценариев и установи их в профиль. Привяжи темы к скиллам через group_topics и проверь загрузку в новых сессиях.\nA3. Подключи только согласованные интеграции. Опиши их в читаемых файлах. Не полагайся на память чата как единственное место правил. Настрой gateway как службу с автозапуском, запусти её и проверь получение сообщений Telegram и ответы в исходной теме.\nA4. Проверь каждый маршрут реальным тестом: сообщение, операция, существующий результат, ответ в исходной теме. Проверь голос, если он включён, неоднозначный запрос, повтор сообщения и отказ внешнего сервиса. Убедись, что посторонний пользователь не может запускать операции.\nA5. Если согласован мониторинг, подготовь скилл проверки и создай задание через встроенный Scheduled Tasks (Cron). Проверь существующие задания, чтобы не создать дубль. Выполни тестовый запуск, проверь доставку в нужную тему и условия, при которых уведомление не нужно. Покажи расписание, часовой пояс и время следующего запуска в UTC.\nA6. Оставь короткую памятку: где конфиг и skills, как перезапустить службу, посмотреть логи, добавить тему, изменить или приостановить cron-задание и восстановить настройки из резервной копии. После обновлений повторяй проверки маршрутов, доступа, загрузки инструкций и согласованных заданий по расписанию.\n\nНе подключай автономный кодинг, deploy или дополнительные сервисы, которые я не запрашивал. Если часть схемы не поддерживается моей версией, объясни ограничение и согласуй альтернативу.\n",[42,539,537],{"__ignoreMap":150},[10,541,542],{},"Для первого запуска я бы ограничился одной темой: например отправить ссылку на видео и получить конспект в Obsidian. На ней можно проверить весь путь от сообщения до файла, прежде чем подключать рабочий трекер и остальные сценарии.",[544,545,546],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":150,"searchDepth":192,"depth":192,"links":548},[549,550,551,552,553,560],{"id":30,"depth":192,"text":31},{"id":51,"depth":192,"text":52},{"id":132,"depth":192,"text":133},{"id":404,"depth":192,"text":405},{"id":429,"depth":192,"text":430,"children":554},[555,556,557,558,559],{"id":434,"depth":200,"text":435},{"id":444,"depth":200,"text":445},{"id":464,"depth":200,"text":465},{"id":481,"depth":200,"text":482},{"id":519,"depth":200,"text":520},{"id":529,"depth":192,"text":530},"2026-09-13","Telegram как вход в заметки, задачи и небольшие автоматизации: Hermes, темы со скиллами и инструкция, которую можно отдать своему агенту.",false,"md","hermes-telegram-quick-capture.jpg","ru",{},true,"\u002Fru\u002Fcode\u002Fhermes-telegram-quick-capture","---\nlanguage: ru\ntitle: \"Hermes и Telegram: заметки, задачи и автоматизация с телефона\"\ndescription: \"Telegram как вход в заметки, задачи и небольшие автоматизации: Hermes, темы со скиллами и инструкция, которую можно отдать своему агенту.\"\nimage: hermes-telegram-quick-capture.jpg\ncreatedAt: 2026-09-13\nupdatedAt: 2026-09-13\nread: 8\ntopics:\n  - AI\n  - Hermes\n  - Telegram\n  - Obsidian\n---\nСсылки на интересные видео я отправляю в Telegram, чтобы получить конспект в Obsidian. Там же могу надиктовать задачу для нужного проекта, не открывая трекер в браузере.\n\nСообщения обрабатывает [Hermes Agent](https:\u002F\u002Fhermes-agent.nousresearch.com\u002F). Когда-то я использовал его почти для всего, включая кодинг. Сейчас оставил ему сбор заметок, ссылок и задач, а также небольшие операции, которые удобно запускать с телефона.\n\nНиже моя схема и задание, которое можно отдать своему агенту, чтобы собрать похожую систему. Названия тем, пути и идентификаторы в примерах условные.\n\n## Почему я сузил роль Hermes\n\nСначала мне нравилось, как Hermes работает с памятью и сам создаёт скиллы из повторяющихся действий. Я объяснял процедуру, вносил поправки и в следующих сессиях уже мог на неё ссылаться.\n\nПосле пары обновлений в моей настройке начались проблемы с той же памятью. Hermes перестал стабильно следовать привычным инструкциям, и часть правил пришлось объяснять заново.\n\nМне было трудно понять, почему агент стал вести себя иначе: память и скиллы менялись автоматически. Я предпочитаю сам контролировать системные промпты, проектные `AGENTS.md` и инструкции для отдельных операций. Когда ответ меня не устраивает, хочу знать, какой файл проверить и поправить.\n\nКодинг я перенёс в другие инструменты. Но управлять процессами из Telegram, когда меня нет дома, по-прежнему удобно. Поэтому Hermes остался, только с более узкой ролью и явно описанными процедурами.\n\n## Что я отправляю в Telegram\n\nОтправленное сообщение может сразу запустить обработку: например, превратить ссылку в конспект или запись голоса в задачу.\n\n| Сценарий                | Что получается                                                           |\n| ----------------------- | ------------------------------------------------------------------------ |\n| Статья или видео    | Summary со ссылкой на источник в Obsidian                                |\n| Аудио с YouTube     | Скачанный аудиофайл в выбранном каталоге                                 |\n| Задача              | Карточка в локальном или рабочем трекере, либо задача для Obsidian Tasks |\n| Заметка или вопрос  | Заметка по шаблону либо ответ по содержимому vault                       |\n| Книга или фильм     | Поиск и скачивание доступного материала из различных источников          |\n| Рабочее уведомление | Сообщение об упавшем сайте или проблеме, требующей внимания              |\n\nРабочие уведомления сообщают об упавших сайтах и отсутствующих критических блоках на страницах. Такие проверки можно поручить самому Hermes и запускать по расписанию. Ниже покажу, как это задать обычным сообщением.\n\nЗапрос можно набрать, отправить голосовым сообщением в Telegram или надиктовать через распознавание речи на телефоне. Эта технология называется STT, speech-to-text: преобразование речи в текст.\n\n## Одна супергруппа, несколько тем\n\nЯ использую закрытую Telegram-супергруппу с темами. В интерфейсе это отдельные чаты внутри одной группы. К каждой теме привязана инструкция на загрузку нужного скилла.\n\nОтправляю ссылку в тему конспектов, и агенту не нужно угадывать, хочу ли я скачать видео, обсудить его или сделать summary. Тема уже задаёт основной сценарий. Если мне нужен другой результат, я уточняю его сообщением.\n\nСхематично маршрутизация выглядит так:\n\n```text\nTelegram: текст, ссылка или голосовое\n  → Hermes gateway\n  → определение группы и темы\n  → контекст темы и загрузка её скилла\n  → работа с файлами или API\n  → короткий ответ в той же теме\n```\n\nВ Hermes эта настройка называется [Group Forum Topic Skill Binding](https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Fmessaging\u002Ftelegram#group-forum-topic-skill-binding). Привязки задаются в `config.yaml` профиля через `platforms.telegram.extra.group_topics`. Вот фрагмент в реальном формате Hermes. Идентификаторы и названия тем условные:\n\n```yaml\nplatforms:\n  telegram:\n    extra:\n      group_topics:\n        - chat_id: -1001234567890\n          topics:\n            - name: Конспекты\n              thread_id: 5\n              skill: summary\n            - name: Задачи\n              thread_id: 12\n              skill: task-capture\n            - name: Заметки\n              thread_id: 18\n              skill: create-note\n            - name: Аудио\n              thread_id: 24\n              skill: youtube-audio-downloader\n```\n\nТемы создаются в Telegram, затем их `thread_id` и `chat_id` группы вносятся в конфиг. Поле `name` служит подписью, а `skill` указывает на установленный скилл. Hermes автоматически загружает его при старте новой сессии в этой теме. Для проверки привязки в существующем разговоре начните новую сессию командой `\u002Fnew`.\n\nКаталог сохранения и проект трекера описываются в самом скилле или его настройках. Поля `destination` в этой привязке нет.\n\nРаздельные сессии помогают не смешивать обсуждения, но тема не является границей безопасности. Она сама по себе не изолирует файлы, общую память профиля или доступные инструменты. Если рабочие и личные данные требуют разных прав, нужны отдельные профили и технические ограничения доступа.\n\n## Модель и инструкции для скиллов\n\nУ себя я использую OpenAI Terra. Для конспектов, заметок и создания задач мне её хватает.\n\nВ скиллах нужно описать детали, которые иначе придётся повторять в чате. Для конспекта это способ получить текст источника и формат результата. При создании заметки агент должен проверить существующие записи и прочитать шаблон.\n\nНапример, тема задач может иметь такой контракт:\n\n```text\nНазначение: создавать задачи в личном трекере.\nПеред работой: загрузить task-capture.\nПроект: использовать явно названный или заранее заданный default.\nЕсли проект определить нельзя: спросить, не угадывать.\nПеред созданием: проверить возможный дубль.\nСрок: не придумывать, при необходимости уточнить.\nПосле создания: вернуть заголовок, проект и ссылку на карточку.\nНе переводить задачу в статус автоматического исполнения.\n```\n\nДля рабочего трекера нужен свой маршрут с собственными правилами и доступом. Для Obsidian Tasks нужно учитывать синтаксис и настройки установленного плагина. Обычная Markdown-галочка не обязательно попадёт в существующие представления задач.\n\nСоздание карточки я отделяю от её исполнения. Возможность надиктовать баг с телефона не должна автоматически разрешать агенту менять код и выкатывать исправление.\n\n## Как собрать похожую систему\n\n### Выбрать место запуска и границы доступа\n\nHermes должен работать на машине, которая доступна, пока вы пользуетесь ботом. Если это домашний компьютер, во время сна или отключения он не выполнит запрос. Для постоянной доступности подойдёт отдельная машина или сервер, но тогда нужно решить, как он получает файлы из Obsidian vault.\n\nСоздайте отдельный профиль для capture. Дайте ему только необходимые каталоги, инструменты и интеграции. Промпт «не читать другие папки» полезен как инструкция, но не заменяет права файловой системы или ограничения инструментов.\n\n### Подключить Telegram и проверить маршруты\n\nСоздайте бота через [@BotFather](https:\u002F\u002Ft.me\u002FBotFather): отправьте `\u002Fnewbot`, задайте имя и username, затем сохраните выданный токен в настройках Telegram gateway Hermes. Не публикуйте токен и не пересылайте его в группу. В Hermes закройте доступ посторонним и добавьте свой Telegram user ID в список разрешённых пользователей. Затем добавьте бота в супергруппу с темами. Проверьте, получает ли он обычные сообщения: на это влияют права бота и Telegram privacy mode.\n\nЗапустите gateway как службу с автозапуском и логами. Привяжите каждую тему к своему сценарию, обеспечьте разделение сессий и ответы в исходную тему.\n\n### Подключить инструменты и голос\n\nЕсли работаете с Obsidian, укажите путь к его файлам, карту разделов и шаблоны. Подключая трекер, задайте адрес API и авторизацию, сопоставьте названия проектов с их идентификаторами. Аудио можно скачивать через `yt-dlp` в заранее выбранный каталог.\n\nДля голосовых сообщений подключите локальное распознавание речи или внешний сервис. Если диктуете через клавиатуру телефона, настройка распознавания в Hermes для этого не нужна.\n\nПосле тестового запроса откройте созданную заметку или карточку в трекере. Ответа «готово» в Telegram недостаточно. Отдельно проверьте неудачный запрос: если транскрипт видео недоступен, агент должен сообщить об ошибке, не сочиняя конспект по заголовку.\n\n### Настроить проверки по расписанию\n\nУ Hermes есть встроенный планировщик [Scheduled Tasks (Cron)](https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Ffeatures\u002Fcron). Агент управляет заданиями через инструмент `cronjob`, но писать cron-выражение вручную не обязательно. Можно просто попросить его в нужной теме Telegram:\n\n> Настрой ежедневную проверку сайта https:\u002F\u002Fexample.com в 10:00 по UTC. Проверяй доступность главной страницы и наличие блока с формой заявки. Используй скилл site-check. Если сайт недоступен или блок отсутствует, отправляй сообщение в эту тему с описанием проблемы. Если всё в порядке, не пиши. Сначала выполни тестовую проверку, затем покажи расписание и время следующего запуска в UTC.\n\nСкилл `site-check` здесь условный: его нужно заранее подготовить под конкретные страницы и признаки ошибки. Hermes может привязать скилл к заданию и загрузить его при запуске. Время следующего запуска стоит проверить, чтобы 10:00 UTC не превратилось в 10:00 по часовому поясу сервера.\n\nЗадания выполняет работающий gateway, отдельный системный cron настраивать не нужно. Попросить показать расписание, изменить время или приостановить проверку тоже можно обычным сообщением.\n\n### Ограничить доступ и действия\n\nКлючи вносите локально в защищённое хранилище или файл окружения, не отправляйте их в Telegram. Переписка с ботом не имеет сквозного шифрования.\n\nПроверка сайта не должна давать агенту право что-либо на нём менять. Удаление данных, публикации и изменения production требуют отдельного подтверждения. Содержимое проверяемых страниц считайте данными, а не инструкциями для агента.\n\n## Задание для своего агента\n\nЭтот блок можно отдать агенту вместе со статьёй. Он должен сначала собрать ваши ответы, а затем адаптировать схему под установленный Hermes.\n\n```text\nСобери мне quick capture на Hermes Agent и Telegram по этой статье. Синтаксис конфигурации в примере соответствует документации Hermes. Названия, пути и идентификаторы условные: замени их моими значениями и проверь совместимость с установленной версией.\n\nQ1. Сначала уточни, где будет работать Hermes, какая ОС установлена и нужна ли круглосуточная доступность.\nQ2. Узнай нужные сценарии и темы Telegram. Для каждого согласуй назначение, место результата и случаи, когда нужно задать вопрос.\nQ3. Уточни путь к Obsidian vault, разрешённые и закрытые каталоги, шаблоны заметок, настройки Tasks и нужные трекеры с проектами.\nQ4. Согласуй провайдера модели, её доступность и способ STT: голосовые Telegram, диктовка телефоном или оба варианта.\nQ5. Собери список необходимых доступов. Объясни, куда безопасно внести ключи локально. Не проси отправлять их в Telegram.\nQ6. Согласуй действия без подтверждения и действия, которые всегда требуют моего разрешения. Создание задачи не разрешает её исполнение.\nQ7. Если нужен мониторинг, уточни страницы и признаки ошибок, расписание, часовой пояс, тему и условия отправки уведомлений.\n\nA1. Проверь документацию установленной версии Hermes: профили, gateway, маршрутизацию тем, подключение skills и разделение сессий. Не выдумывай названия параметров. Покажи план и получи согласование. До изменений сохрани резервную копию затрагиваемых настроек и skills в защищённом локальном месте. Не публикуй секреты из копии.\nA2. Создай отдельный capture-профиль, настрой авторизацию пользователя и минимальные доступы. Проверь существующие skills, создай недостающие для согласованных сценариев и установи их в профиль. Привяжи темы к скиллам через group_topics и проверь загрузку в новых сессиях.\nA3. Подключи только согласованные интеграции. Опиши их в читаемых файлах. Не полагайся на память чата как единственное место правил. Настрой gateway как службу с автозапуском, запусти её и проверь получение сообщений Telegram и ответы в исходной теме.\nA4. Проверь каждый маршрут реальным тестом: сообщение, операция, существующий результат, ответ в исходной теме. Проверь голос, если он включён, неоднозначный запрос, повтор сообщения и отказ внешнего сервиса. Убедись, что посторонний пользователь не может запускать операции.\nA5. Если согласован мониторинг, подготовь скилл проверки и создай задание через встроенный Scheduled Tasks (Cron). Проверь существующие задания, чтобы не создать дубль. Выполни тестовый запуск, проверь доставку в нужную тему и условия, при которых уведомление не нужно. Покажи расписание, часовой пояс и время следующего запуска в UTC.\nA6. Оставь короткую памятку: где конфиг и skills, как перезапустить службу, посмотреть логи, добавить тему, изменить или приостановить cron-задание и восстановить настройки из резервной копии. После обновлений повторяй проверки маршрутов, доступа, загрузки инструкций и согласованных заданий по расписанию.\n\nНе подключай автономный кодинг, deploy или дополнительные сервисы, которые я не запрашивал. Если часть схемы не поддерживается моей версией, объясни ограничение и согласуй альтернативу.\n```\n\nДля первого запуска я бы ограничился одной темой: например отправить ссылку на видео и получить конспект в Obsidian. На ней можно проверить весь путь от сообщения до файла, прежде чем подключать рабочий трекер и остальные сценарии.\n",{"title":5,"description":562},"ru\u002Fcode\u002F25.hermes-telegram-quick-capture",[574,575,576,577],"AI","Hermes","Telegram","Obsidian","yPsl-qA_dexPHMMXAqNEIByTp75m0UwTAm_6-z6HU0M",[580,584],{"title":581,"path":582,"stem":583,"draft":563,"children":-1},"Алиасы в AGENTS.md: короткие команды для AI-агента","\u002Fru\u002Fcode\u002Fprompt-aliases","ru\u002Fcode\u002F27.prompt-aliases",{"title":585,"path":586,"stem":587,"draft":563,"children":-1},"Как мой Obsidian стал общим контекстом для AI-агентов","\u002Fru\u002Fcode\u002Fobsidian-compound-context-ai-agents","ru\u002Fcode\u002F24.obsidian-compound-context-ai-agents",1792403046708]