[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content-post-avtomatizaciya-kotoraya-padaet":3},{"post":4,"related":250,"status":199},{"id":5,"title":6,"slug":7,"excerpt":8,"content":9,"cover_alt":198,"cover_position":199,"reading_time":199,"seo":200,"robots_index":209,"seo_title":201,"seo_description":202,"date_published":210,"date_modified":199,"source_lead":199,"rubrics":211,"blocks":219,"cover":247},"f6b16c80-711f-4ad5-9a95-1201b72f598e","Автоматизация всегда падает: вопрос лишь в том, узнаете ли вы об этом","avtomatizaciya-kotoraya-padaet","Любая интеграция однажды ломается: у площадки кончился лимит, сервис ответил ошибкой, сеть моргнула. Всё решает то, что происходит потом: система досылает потерянное сама или вы узнаёте о пропавшей заявке от клиента. Разбираю на своём хозяйстве, из чего это собирается.",{"type":10,"content":11},"doc",[12,18,26,40,44,48,53,84,88,93,97,101,105,110,114,118,123,127,169,173,178,182,186,190,194],{"type":13,"attrs":14},"relation-block",{"id":15,"junction":16,"collection":17},"631c2ba6-522d-46e5-a889-1fa4d4c34c5d","posts_blocks","block_text",{"type":19,"attrs":20,"content":22},"heading",{"level":21},2,[23],{"type":24,"text":25},"text","Ломается на стыках",{"type":27,"content":28},"paragraph",[29,31,38],{"type":24,"text":30},"У меня был показательный случай: ",{"type":24,"marks":32,"text":37},[33],{"type":34,"attrs":35},"link",{"href":36},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Fkontent-bez-kontent-menedzhera","восемь площадок одновременно попросили у нейросети текст",{"type":24,"text":39}," под свой формат, шлюз ответил \"слишком много запросов\", и все восемь публикаций встали намертво с красным статусом. Формально система отработала честно. По сути - потеряла материал на ровном месте, потому что через минуту тот же запрос прошёл бы спокойно.",{"type":27,"content":41},[42],{"type":24,"text":43},"У каждого свои ограничения на число обращений в минуту, свои редкие часы недоступности и своё представление о том, сколько можно думать над ответом.",{"type":27,"content":45},[46],{"type":24,"text":47},"Поэтому надёжность здесь - это заранее решённый вопрос, что делать с чужими ошибками. По каждому стыку я отвечаю на три: отказ временный или окончательный, можно ли повторить безопасно и кто узнает, если повторы не помогли.",{"type":19,"attrs":49,"content":50},{"level":21},[51],{"type":24,"text":52},"Временный отказ и окончательный - разные истории",{"type":54,"content":55},"bulletList",[56,63,74],{"type":57,"content":58},"listItem",[59],{"type":27,"content":60},[61],{"type":24,"text":62},"Превышен лимит обращений, сервис не ответил вовремя, оборвалась связь, у площадки сбой на своей стороне.",{"type":57,"content":64},[65],{"type":27,"content":66},[67,72],{"type":24,"marks":68,"text":71},[69],{"type":70},"bold","Окончательный.",{"type":24,"text":73}," Неверный ключ доступа, площадка отказала по правилам, текст не проходит модерацию. Повторять бессмысленно - нужен человек.",{"type":57,"content":75},[76],{"type":27,"content":77},[78,82],{"type":24,"marks":79,"text":81},[80],{"type":70},"Неизвестный.",{"type":24,"text":83}," Сервис ответил чем-то нечитаемым. Пара попыток, и если не помогло - относимся как к окончательному.",{"type":27,"content":85},[86],{"type":24,"text":87},"Самая частая ошибка проектирования - считать любой сбой поводом остановиться. Разделение выглядит очевидным ровно до того момента, когда его надо описать в коде. Именно на этом шаге выясняется, что \"ошибка\" в вашей системе - это одно слово на все случаи жизни, и любое решение по ней принимает человек вручную.",{"type":19,"attrs":89,"content":90},{"level":21},[91],{"type":24,"text":92},"Повтор должен быть безопасным",{"type":27,"content":94},[95],{"type":24,"text":96},"Повторять можно только то, что не сделает работу дважды. Если запрос успел дойти, а ответ потерялся по дороге, слепой повтор превращается в два одинаковых письма клиенту или два одинаковых поста в ленте.",{"type":27,"content":98},[99],{"type":24,"text":100},"Поэтому система должна помнить не только итог, но и то, где именно остановилась: взяли в работу, отправили, получили подтверждение от площадки.",{"type":13,"attrs":102},{"id":103,"junction":16,"collection":104},"777ab225-8d6f-4a89-b218-ad5f7b60af98","block_callout",{"type":19,"attrs":106,"content":107},{"level":21},[108],{"type":24,"text":109},"Очередь вместо героизма",{"type":27,"content":111},[112],{"type":24,"text":113},"Очередь - это простая таблица: что нужно сделать, когда можно попробовать снова, сколько раз уже пробовали. Отдельный сторож раз в несколько минут забирает оттуда просроченное и запускает заново.",{"type":27,"content":115},[116],{"type":24,"text":117},"Это скучная конструкция, но именно она превращает хрупкую цепочку в систему, которая переживает ночной сбой провайдера без единого потерянного письма. И она же снимает с вас необходимость сидеть рядом: пока очередь разбирается сама, ваше внимание не нужно.",{"type":19,"attrs":119,"content":120},{"level":21},[121],{"type":24,"text":122},"Кто узнает, когда всё-таки не вышло",{"type":27,"content":124},[125],{"type":24,"text":126},"Дальше начинается то, что обычно делают хуже всего - уведомления. Я долго жил с сообщениями вида \"ошибка в процессе, подробности в логе\" и на третий день перестал их открывать: такое сообщение создаёт ощущение контроля, которого нет.",{"type":54,"content":128},[129,139,149,159],{"type":57,"content":130},[131],{"type":27,"content":132},[133,137],{"type":24,"marks":134,"text":136},[135],{"type":70},"Что именно упало.",{"type":24,"text":138}," В сообщении должны стоять конкретная статья и конкретная площадка. Человек должен понять контекст, не открывая систему.",{"type":57,"content":140},[141],{"type":27,"content":142},[143,147],{"type":24,"marks":144,"text":146},[145],{"type":70},"На каком шаге.",{"type":24,"text":148}," Отправка, подготовка текста, загрузка картинки. Шаг сужает поиск причины.",{"type":57,"content":150},[151],{"type":27,"content":152},[153,157],{"type":24,"marks":154,"text":156},[155],{"type":70},"Что ответил сервис.",{"type":24,"text":158}," Настоящий текст ошибки целиком. Именно он отвечает на вопрос \"это чинится само или руками\".",{"type":57,"content":160},[161],{"type":27,"content":162},[163,167],{"type":24,"marks":164,"text":166},[165],{"type":70},"Куда нажать.",{"type":24,"text":168}," Ссылка прямо на карточку записи. Без неё сообщение превращается в задание \"найди сам\".",{"type":27,"content":170},[171],{"type":24,"text":172},"И обратное правило: ожидаемые отказы не должны звенеть вообще. У одной площадки тариф ограничивает число публикаций в сутки - система помечает такую отправку неуспешной и молчит, потому что делать с этим нечего. Уведомления имеют смысл ровно до тех пор, пока каждое из них требует действия.",{"type":19,"attrs":174,"content":175},{"level":21},[176],{"type":24,"text":177},"Что это даёт вам в деньгах",{"type":13,"attrs":179},{"id":180,"junction":16,"collection":181},"ccc74058-9e1e-4c7d-a338-7aa986c45a12","block_stats",{"type":27,"content":183},[184],{"type":24,"text":185},"Посчитайте на своих. Одно письмо с заявкой, потерянное на минутном сбое, при среднем чеке 50 000 рублей и конверсии в сделку 30 процентов - это 15 000 рублей, за которые вы уже заплатили рекламой. Очередь досылает потерянное сама, а уведомление с текстом ошибки и ссылкой сразу показывает, что чинить, - без блуждания по логам вручную.",{"type":27,"content":187},[188],{"type":24,"text":189},"Главный эффект - доверие. Автоматизацией, которая молча теряет работу, пользоваться нельзя: её приходится перепроверять, и она перестаёт экономить время. Как только сбои становятся видимыми и обратимыми, систему можно оставить работать одну.",{"type":27,"content":191},[192],{"type":24,"text":193},"Ничего сложного тут нет - всё это делается в том же инструменте, где у вас уже живёт автоматизация. Требуется другое: заранее признать, что ломаться будет, и заложить на обработку поломок отдельное время.",{"type":13,"attrs":195},{"id":196,"junction":16,"collection":197},"4448e659-4d78-4acf-b9ae-084f59f9084d","block_cta","Цепь в темноте, одно звено разорвано и светится красным",null,{"title":201,"meta_description":202,"focus_keyphrase":203,"og_image":199,"no_index":204,"no_follow":204,"sitemap":205,"additional_fields":208},"Надёжная автоматизация: ретраи, очереди и журнал сбоев","Почему интеграции ломаются всегда и как сделать, чтобы это не стоило денег: временные и постоянные отказы, повторные попытки, очередь, журнал сбоев и уведомления человеку.","",false,{"change_frequency":206,"priority":207},"monthly","0.6",{},true,"2026-08-26T14:57:55.016Z",[212,216],{"sort":213,"tags_id":214},1,{"name":215},"CRM и интеграции",{"sort":21,"tags_id":217},{"name":218},"Инструменты",[220,223,228,241],{"id":15,"sort":199,"collection":17,"item":221},{"body":222,"is_lead":209,"footnote":199},"Любая интеграция однажды ломается: у площадки кончился лимит, сервис ответил ошибкой, сеть моргнула на две секунды. Это не признак плохой работы - это нормальный режим жизни системы, которая ходит наружу. Разница между рабочей автоматизацией и красивой демкой не в том, ломается ли она, а в том, что происходит в следующую минуту.",{"id":103,"sort":199,"collection":104,"item":224},{"heading":225,"body":226,"footnote":199,"tone":227,"show_border":209},"Проверьте себя","Возьмите любой свой автоматический сценарий и мысленно оборвите ему связь ровно в середине. Если после этого нельзя нажать \"повторить\" не думая - у сценария нет состояния, и однажды он сделает работу дважды.","neutral",{"id":180,"sort":199,"collection":181,"item":229},{"items":230,"columns":240},[231,234,237],{"lead":232,"text":233},"0 потерь","материалов и писем при временных сбоях площадок: очередь досылает всё сама",{"lead":235,"text":236},"1 сообщение","вместо десятка одинаковых: ожидаемые отказы гасятся, звенят только те, где нужен человек",{"lead":238,"text":239},"2 минуты","на разбор сбоя вместо получаса раскопок, потому что причина и ссылка сразу в тексте",3,{"id":196,"sort":199,"collection":197,"item":242},{"cta_variant":243,"heading":244,"body":245,"button_label":246,"url":199,"glow":209},"estimator","Похожая задача?","Если у вас есть автоматизация, которой вы не доверяете и потому перепроверяете руками - опишите задачу в оценщике. Отвечу с планом, вилкой стоимости и расчётом экономии.","Оценить задачу",{"id":248,"modified_on":249},"9f96d75d-3e17-4589-b755-dff1d57614ce","2026-08-27T13:18:33.220Z",[251,479,631],{"id":252,"title":253,"slug":254,"excerpt":255,"content":256,"cover_alt":447,"cover_position":199,"reading_time":240,"seo":448,"robots_index":209,"seo_title":449,"seo_description":450,"date_published":453,"date_modified":199,"source_lead":199,"rubrics":454,"blocks":460,"cover":476},"a3bdafa1-370e-4669-a460-69d658ee9330","Локально или в облаке: когда своё железо дешевле облачного счёта","lokalno-ili-v-oblake","Одна и та же задача на одном и том же сервере: сначала 25 секунд речи обрабатывались две минуты, потом сорок секунд речи укладывались в десять. Показываю на замерах и на деньгах, когда своё железо окупается на вашем потоке, а когда за него платят зря.",{"type":10,"content":257},[258,262,274,279,283,287,292,296,300,304,309,313,317,321,326,330,334,348,353,357,363,389,395,415,419,424,432,437,440,444],{"type":27,"content":259},[260],{"type":24,"text":261},"Голосовой ввод, который я собирал для сайта и для себя, сначала не заработал вообще: распознавание отставало от реального времени в пять раз. Развилку \"локальная модель или облачный API\" после этого я прохожу замерами - у неё есть числовой ответ, и он разный для разных задач.",{"type":27,"content":263},[264,266,272],{"type":24,"text":265},"Задача, на которой я прошёл оба пути до конца, - ",{"type":24,"marks":267,"text":271},[268],{"type":34,"attrs":269},{"href":270},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Fwhisperkey-diktovka-dlya-maka","распознавание речи",{"type":24,"text":273},". Расскажу, что получилось, и заодно сформулирую фильтр, по которому эту развилку стоит проходить в любом другом проекте.",{"type":19,"attrs":275,"content":276},{"level":21},[277],{"type":24,"text":278},"Задача",{"type":27,"content":280},[281],{"type":24,"text":282},"Голосовой ввод на сайте и в личных инструментах: человек говорит, получает готовый текст. К этому же классу относится расшифровка звонков и встреч - обычно самый первый реальный ИИ-проект в компании, потому что польза очевидна и данные уже есть.",{"type":27,"content":284},[285],{"type":24,"text":286},"Требования были такие: русский язык, приемлемая задержка, и аудио не должно уезжать в чужие руки без необходимости. Последнее - не паранойя: в звонках клиентов лежат персональные данные, и отправка их наружу превращает техническую задачу в юридическую.",{"type":19,"attrs":288,"content":289},{"level":21},[290],{"type":24,"text":291},"Первый заход: сделать красиво",{"type":27,"content":293},[294],{"type":24,"text":295},"Первым делом я взял готовую потоковую обёртку - из тех, что показывают текст прямо во время речи, слово за словом. Выглядит эффектно, и на демо-роликах всё летает.",{"type":27,"content":297},[298],{"type":24,"text":299},"На сервере без видеокарты она отставала от речи впятеро: 25 секунд речи обрабатывались две минуты. Пользоваться этим нельзя.",{"type":27,"content":301},[302],{"type":24,"text":303},"Сервер тут ни при чём: отдельная машина с быстрыми ядрами, взятая специально под задачу. Дело в подходе: потоковое распознавание постоянно пересчитывает уже сказанное, чтобы уточнить гипотезу, и на процессоре эта переработка съедает всё.",{"type":19,"attrs":305,"content":306},{"level":21},[307],{"type":24,"text":308},"Второй заход: сделать просто",{"type":27,"content":310},[311],{"type":24,"text":312},"Я выбросил потоковость и сделал скучно: человек говорит целиком, запись уходит на сервер одним куском, модель распознаёт её за один проход.",{"type":27,"content":314},[315],{"type":24,"text":316},"Сорок секунд речи обрабатываются за десять. После настройки - в восемь раз быстрее речи: час записи с планёрки превращается в текст за семь минут. Всё на том же сервере без видеокарты.",{"type":27,"content":318},[319],{"type":24,"text":320},"Заодно ушла вторая проблема, о которой я не думал заранее: потоковая выдача даёт рваный текст. Пока модель уточняет гипотезу, фраза на экране дёргается и переписывается. На записи целиком результат сразу чистый.",{"type":19,"attrs":322,"content":323},{"level":21},[324],{"type":24,"text":325},"Третий заход: посчитать на своём железе",{"type":27,"content":327},[328],{"type":24,"text":329},"Отдельная история - обработка на ноутбуке. В современных Маках есть отдельный ускоритель для нейросетей, и собранная под него модель разбирает час разговора за 17 секунд. Разделение на говорящих - примерно столько же. Ноутбук уже куплен, и счёт за минуту распознавания никто не выставляет.",{"type":27,"content":331},[332],{"type":24,"text":333},"Здесь же я собрал грабли, которые стоит знать заранее:",{"type":54,"content":335},[336,342],{"type":57,"content":337},[338],{"type":27,"content":339},[340],{"type":24,"text":341},"Безвентиляторный ноутбук перегревается, если гнать распознавание и разделение говорящих одновременно. Последовательно - те же секунды, но без троттлинга. Параллелить на одном ускорителе бессмысленно.",{"type":57,"content":343},[344],{"type":27,"content":345},[346],{"type":24,"text":347},"Затравка модели (список терминов, чтобы правильно писала специальные слова) должна быть обычной фразой, а не списком. Список, начинающийся со слова \"Термины:\", модель вставляла прямо в расшифровку, а на плохом звуке зацикливалась и повторяла его. Затравку она воспринимает как начало текста и продолжает его. После переписывания живым предложением мусор исчез, и скорость выросла втрое.",{"type":19,"attrs":349,"content":350},{"level":21},[351],{"type":24,"text":352},"Фильтр: когда локально выигрывает",{"type":27,"content":354},[355],{"type":24,"text":356},"Из этой и соседних задач сложилось правило, по которому я развилку прохожу.",{"type":27,"content":358},[359],{"type":24,"marks":360,"text":362},[361],{"type":70},"Локально выигрывает, когда:",{"type":54,"content":364},[365,371,377,383],{"type":57,"content":366},[367],{"type":27,"content":368},[369],{"type":24,"text":370},"нагрузка постоянная и предсказуемая - расшифровка всех звонков, обработка всех документов;",{"type":57,"content":372},[373],{"type":27,"content":374},[375],{"type":24,"text":376},"данные чувствительные и их отправка наружу создаёт отдельную юридическую задачу;",{"type":57,"content":378},[379],{"type":27,"content":380},[381],{"type":24,"text":382},"задача узкая, и под неё есть небольшая специализированная модель;",{"type":57,"content":384},[385],{"type":27,"content":386},[387],{"type":24,"text":388},"нужна независимость от чужой доступности, тарифов и геополитики.",{"type":27,"content":390},[391],{"type":24,"marks":392,"text":394},[393],{"type":70},"Облако выигрывает, когда:",{"type":54,"content":396},[397,403,409],{"type":57,"content":398},[399],{"type":27,"content":400},[401],{"type":24,"text":402},"нагрузка редкая или рваная - железо будет простаивать;",{"type":57,"content":404},[405],{"type":27,"content":406},[407],{"type":24,"text":408},"задача требует рассуждений: разбор смысла, написание текста, принятие решений;",{"type":57,"content":410},[411],{"type":27,"content":412},[413],{"type":24,"text":414},"вы ещё проверяете гипотезу и не знаете, взлетит ли вообще.",{"type":27,"content":416},[417],{"type":24,"text":418},"Практически это чаще всего означает гибрид, и у меня он именно такой: распознавание речи - локально, на своём железе, а причёсывание расшифровки в читаемый текст - облачной моделью. Аудио наружу не уходит, а за интеллект платится там, где он действительно нужен.",{"type":19,"attrs":420,"content":421},{"level":21},[422],{"type":24,"text":423},"Про деньги",{"type":54,"content":425},[426],{"type":57,"content":427},[428],{"type":27,"content":429},[430],{"type":24,"text":431},"Считайте не стоимость запроса, а стоимость месяца при вашей нагрузке. Облачный счёт растёт вместе с потоком, своё железо покупается один раз. И это ещё не всё: главная строка - часы, которые сейчас тратит на это живой человек, умноженные на его ставку. При постоянном потоке железо окупается быстро, при редких обращениях не окупается никогда.",{"type":19,"attrs":433,"content":434},{"level":21},[435],{"type":24,"text":436},"Что это даёт вам в месяц",{"type":13,"attrs":438},{"id":439,"junction":16,"collection":181},"1f3bb2ac-0689-4d3d-a55f-393549604720",{"type":27,"content":441},[442],{"type":24,"text":443},"Посчитайте на своих цифрах. При ставке 500 рублей в час двадцать часовых созвонов в месяц - это 10 000 рублей чужого времени только на прослушивание, и столько же в следующем месяце. Своё железо проходит те же двадцать часов за пару часов и счёт за минуту не выставляет. Плюс риск: если запись с персональными данными ушла наружу, разбор считается днями руководителя по 7 000 - 10 000 рублей.",{"type":13,"attrs":445},{"id":446,"junction":16,"collection":197},"e89df558-4c1d-4ad8-ad47-e2771b55b20e","Весы: монолитный блок против лёгкой формы из тонких линий",{"title":449,"meta_description":450,"focus_keyphrase":203,"og_image":199,"no_index":204,"no_follow":204,"sitemap":451,"additional_fields":452},"Локально или в облаке: когда локальная модель дешевле API","Когда своё железо окупается, а когда дешевле облачный API. Реальные замеры на распознавании речи и расчёт в рублях на вашем потоке звонков.",{"change_frequency":206,"priority":207},{},"2026-08-27T17:42:48.000Z",[455,457],{"sort":213,"tags_id":456},{"name":218},{"sort":21,"tags_id":458},{"name":459},"ИИ и модели",[461,464],{"id":446,"sort":199,"collection":197,"item":462},{"cta_variant":243,"heading":244,"body":463,"button_label":246,"url":199,"glow":209},"У вас копятся записи звонков и встреч, и вы выбираете между своим железом и облаком. Опишите задачу - посчитаю, что дешевле на вашем потоке и что при этом останется внутри компании.",{"id":439,"sort":199,"collection":181,"item":465},{"items":466,"columns":240},[467,470,473],{"lead":468,"text":469},"10 000 рублей в месяц","двадцать часов созвонов в месяц, которые сейчас кто-то слушает по ставке 500 рублей в час",{"lead":471,"text":472},"7 минут на час записи","столько занимает расшифровка на сервере без видеокарты вместо часа прослушивания",{"lead":474,"text":475},"7 000 - 10 000 рублей","день руководителя, съеденный разбором, если запись с персональными данными ушла наружу",{"id":477,"modified_on":478},"64bd6f0e-23d1-44b4-9f73-ecf6098c1280","2026-08-27T18:12:51.408Z",{"id":480,"title":481,"slug":482,"excerpt":483,"content":484,"cover_alt":603,"cover_position":199,"reading_time":240,"seo":604,"robots_index":209,"seo_title":605,"seo_description":606,"date_published":609,"date_modified":199,"source_lead":199,"rubrics":610,"blocks":615,"cover":628},"b4b00a32-20a6-4557-b217-16867693b50b","Работает, но врёт: как геоблокировки ломают ИИ-систему незаметно","geobloki-i-tihie-otkazy","Поиск в системе не работал минимум три недели, а мониторинг был зелёный: ИИ-агент съедал ошибку инструмента и спокойно отвечал по памяти. Разбираю класс поломок, при которых всё \"работает\", - блокировки по географии, тихие отказы и то, как их вообще заметить.",{"type":10,"content":485},[486,498,503,507,511,515,520,524,528,532,536,541,545,549,554,562,570,574,578,582,585,589,593],{"type":27,"content":487},[488,490,496],{"type":24,"text":489},"Расскажу про класс поломок, с которым в России теперь сталкивается любой, кто строит ИИ-системы: отказ внешнего сервиса по географическому признаку. ",{"type":24,"marks":491,"text":495},[492],{"type":34,"attrs":493},{"href":494},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Favtomatizaciya-kotoraya-padaet","Падение видно сразу",{"type":24,"text":497},", его чинят за час. Здесь другое: система продолжает отвечать, отчётность зелёная, а результат тихо стал хуже. Сервисы дальше без названий - разговор про класс поломок, названия к нему ничего не добавят.",{"type":19,"attrs":499,"content":500},{"level":21},[501],{"type":24,"text":502},"Что случилось",{"type":27,"content":504},[505],{"type":24,"text":506},"В одной системе ИИ-ассистент умеет искать в интернете - это отдельный инструмент, который он вызывает, когда своих знаний не хватает. Я полез в журналы по другому поводу и от нечего делать посмотрел статистику вызовов поиска.",{"type":27,"content":508},[509],{"type":24,"text":510},"За всё окно хранения журналов - две недели, 335 вызовов - успешных не было ни одного. Ноль. Поиск был мёртв как минимум с начала месяца.",{"type":27,"content":512},[513],{"type":24,"text":514},"При этом в системе не горело ничего. Запуски числились успешными, пользователи не жаловались, поддержка была спокойна. Причина проста и от этого неприятна: ИИ-агент устроен так, что ошибку инструмента он обрабатывает сам. Инструмент не ответил - агент пожал плечами и ответил по памяти. Формально диалог завершён успешно. Фактически человек получил ответ без свежих данных и не узнал об этом.",{"type":19,"attrs":516,"content":517},{"level":21},[518],{"type":24,"text":519},"Как отличить гео от сломанного ключа",{"type":27,"content":521},[522],{"type":24,"text":523},"Дальше началась диагностика, которая заняла бы дни, если бы не одна привычка: при странном отказе внешнего сервиса первым делом сравнить его поведение из разных точек.",{"type":27,"content":525},[526],{"type":24,"text":527},"Сервис отвечал ошибкой 403 и страницей-заглушкой вместо данных. С зарубежного адреса тот же самый ключ работал. С двух независимых российских адресов - отказ. А запрос вообще без ключа с тех же российских адресов получал внятную ошибку 401 в json. Значит, сеть проходит, адрес не в бане, отвечает само приложение. Режут именно вызов с ключом.",{"type":27,"content":529},[530],{"type":24,"text":531},"Это важное различение. Битый ключ даёт 401 и внятное сообщение. Гео даёт 403 и страницу-заглушку. Разница в одну цифру, а выводы противоположные: в первом случае перевыпускаете ключ, во втором перевыпуск не поможет никогда.",{"type":27,"content":533},[534],{"type":24,"text":535},"Отдельная ловушка того же семейства: один известный шлюз к языковым моделям отвечает на запросы из дата-центров кодом 403 с формулировкой про политику безопасности, а в другом сценарии - кодом 401. То есть 401 от него с сервера - это не протухший ключ, а тот же самый блок. Я потратил на эту догадку время дважды и теперь держу её записанной.",{"type":19,"attrs":537,"content":538},{"level":21},[539],{"type":24,"text":540},"Масштаб проблемы шире, чем кажется",{"type":27,"content":542},[543],{"type":24,"text":544},"Проверка соседних сервисов с тех же адресов дала пёструю картину: часть поисковых API режет российские адреса наглухо, часть работает без вопросов. Отдельная история - мессенджеры: исходящие в один популярный мессенджер из российского облака стабильно упираются в таймаут. У этого есть красивое следствие: если алерты о сбоях настроены туда же, то оповещатель падает на отправке оповещения. Про аварии не узнаёт никто, и мониторинг снова зелёный.",{"type":27,"content":546},[547],{"type":24,"text":548},"Общий вывод простой: в 2026 году доступность внешнего сервиса - это не константа, а переменная, зависящая от того, откуда вы вышли в интернет. Причём меняется она без предупреждения и без письма на почту.",{"type":19,"attrs":550,"content":551},{"level":21},[552],{"type":24,"text":553},"Что с этим делать",{"type":27,"content":555},[556,560],{"type":24,"marks":557,"text":559},[558],{"type":70},"Считать внешний сервис ненадёжным по умолчанию:",{"type":24,"text":561}," канал до него вам не принадлежит. И не гасить его ошибки внутри агента молча - если инструмент не ответил, это должно попадать в журнал сбоев и в оповещения, даже когда агент справился без него.",{"type":27,"content":563},[564,568],{"type":24,"marks":565,"text":567},[566],{"type":70},"Ловить тихие отказы отдельно.",{"type":24,"text":569}," Мониторинг \"процесс завершился успешно\" здесь бесполезен. Нужны метрики результата: сколько вызовов инструмента вернули данные, а не ошибку; какая доля ответов агента опиралась на поиск. Хорошая проверка на здравый смысл - раз в месяц открыть журналы и посмотреть, что вообще происходит внутри успешных запусков.",{"type":27,"content":571},[572],{"type":24,"text":573},"Весь мой трафик к зарубежным сервисам выходит наружу через одну точку, которой я управляю.",{"type":27,"content":575},[576],{"type":24,"text":577},"Держать запасного поставщика: второй сервис того же назначения, заранее проверенный и настроенный, на который переключаются одной настройкой. И не строить алерты на канале, который может отвалиться, - оповещения о сбоях должны идти по маршруту, независимому от того, что они охраняют.",{"type":19,"attrs":579,"content":580},{"level":21},[581],{"type":24,"text":436},{"type":13,"attrs":583},{"id":584,"junction":16,"collection":181},"2c691b05-9b0c-4b2d-906b-c6dc1369d67e",{"type":27,"content":586},[587],{"type":24,"text":588},"Считайте на своих числах. Три недели бот отвечал по памяти - прикиньте, сколько таких ответов пришлось переделывать руками. Например, двадцать штук по часу работы при ставке 500 рублей - это 10 000 рублей. Дороже другое: заявка, потерянная на устаревшем ответе, в B2B стоит от 3 000 до 15 000 рублей. И даже полчаса в журналах раз в месяц - это 250 рублей при той же ставке.",{"type":27,"content":590},[591],{"type":24,"text":592},"Если ваша система висит на зарубежном API, следующий вопрос - что перенести к себе. В соседней статье считаю, где своё железо реально выигрывает, а где это лишние деньги.",{"type":27,"content":594},[595,597],{"type":24,"text":596},"Читать дальше: ",{"type":24,"marks":598,"text":602},[599],{"type":34,"attrs":600},{"href":601},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Flokalno-ili-v-oblake","Локально или в облаке: где своё железо реально выигрывает у API","Ровный ряд горящих индикаторов и оборванный кабель за панелью",{"title":605,"meta_description":606,"focus_keyphrase":203,"og_image":199,"no_index":204,"no_follow":204,"sitemap":607,"additional_fields":608},"Геоблокировки и ИИ-сервисы: тихие отказы, которые не видно в мониторинге","Поиск не работал три недели, а система считала запуски успешными: ИИ-агент съедал ошибку инструмента и отвечал по памяти. Как ловить тихие отказы и что делать с блокировками по IP.",{"change_frequency":206,"priority":207},{},"2026-08-27T17:35:48.000Z",[611,613],{"sort":213,"tags_id":612},{"name":218},{"sort":21,"tags_id":614},{"name":459},[616],{"id":584,"sort":199,"collection":181,"item":617},{"items":618,"columns":240},[619,622,625],{"lead":620,"text":621},"0 из 335","вызовов поиска сработали за две недели, а система считала запуски успешными",{"lead":623,"text":624},"от 3 000 рублей","цена одной заявки в B2B, потерянной на ответе без свежих данных",{"lead":626,"text":627},"1 точка вместо 15","столько мест правите при смене выхода наружу, если канал один",{"id":629,"modified_on":630},"9f4b69c4-2c6f-438a-abc2-5de5ab33ab96","2026-08-27T18:12:56.230Z",{"id":632,"title":633,"slug":634,"excerpt":635,"content":636,"cover_alt":785,"cover_position":199,"reading_time":240,"seo":786,"robots_index":209,"seo_title":787,"seo_description":788,"date_published":791,"date_modified":199,"source_lead":199,"rubrics":792,"blocks":798,"cover":810},"e72b3463-3c8c-4645-84c6-09dfee440a20","Почему письма уходят в спам: SPF, DKIM и DMARC простыми словами","pochemu-pisma-uhodyat-v-spam","У моего домена почта работала, письма отправлялись, всё выглядело нормально - а двух из трёх записей, отвечающих за доверие к отправителю, не было вовсе. Объясняю SPF, DKIM и DMARC человеческим языком: что каждая делает, в каком порядке ставить и как проверить результат за две минуты.",{"type":10,"content":637},[638,642,646,651,655,659,663,668,672,676,680,685,689,693,697,701,706,710,714,726,731,735,739,759,763,767,770,774,778],{"type":27,"content":639},[640],{"type":24,"text":641},"Я собирался включить на сайте почтовую рассылку и по привычке начал с проверки домена. SPF на месте - его поставил хостинг сам, когда подключал почту. DKIM нет. DMARC нет.",{"type":27,"content":643},[644],{"type":24,"text":645},"Почта \"просто работает\" ровно до того момента, когда вы начинаете отправлять что-то массовое или важное. Тогда и выясняется, что часть писем не доходит, а вы об этом не знаете: уведомлений о попадании в спам не бывает. Со стороны это выглядит как молчание клиента: вы думаете, что человек не ответил, а он просто не увидел ваше письмо. И это заявки, за которые вы уже заплатили.",{"type":19,"attrs":647,"content":648},{"level":21},[649],{"type":24,"text":650},"SPF: кому разрешено писать от вашего имени",{"type":27,"content":652},[653],{"type":24,"text":654},"Представьте, что кто угодно может отправить бумажное письмо на бланке вашей компании. Примерно так устроена почта по умолчанию: адрес отправителя в письме - это просто текст, его можно написать любой.",{"type":27,"content":656},[657],{"type":24,"text":658},"SPF - это список: с каких серверов разрешено отправлять письма от вашего домена. Он лежит в настройках домена, и почтовые системы его проверяют. Пришло письмо от вас с сервера, которого нет в списке, - повод для подозрений.",{"type":27,"content":660},[661],{"type":24,"text":662},"Эта запись есть почти у всех, потому что хостинг обычно ставит её сам при подключении почты. Остальные две он за вас не поставит.",{"type":19,"attrs":664,"content":665},{"level":21},[666],{"type":24,"text":667},"DKIM: подпись, которую нельзя подделать",{"type":27,"content":669},[670],{"type":24,"text":671},"SPF отвечает только за то, что письмо пришло с разрешённого сервера. DKIM - про само письмо: ваш сервер подписывает каждое исходящее письмо, а получатель сверяет подпись с образцом, который лежит в настройках домена. Сходится - письмо ваше, и по дороге его не правили.",{"type":27,"content":673},[674],{"type":24,"text":675},"Разница практическая. SPF ломается при пересылке письма: адрес отправителя остался ваш, а сервер уже чужой. DKIM пересылку переживает, потому что подпись живёт в самом письме.",{"type":27,"content":677},[678],{"type":24,"text":679},"Именно этой записи у меня не было. И тут выяснилась деталь, из-за которой её и не бывает у многих: на Beget DKIM не включается кнопкой в панели - его включает поддержка по обращению. Пишете тикет, просите подписывать исходящую почту, и запись появляется в настройках домена сама. Работы на несколько минут и ноль рублей, но об этом надо знать.",{"type":19,"attrs":681,"content":682},{"level":21},[683],{"type":24,"text":684},"DMARC: что делать с письмами, которые не прошли проверку",{"type":27,"content":686},[687],{"type":24,"text":688},"Первые две записи описывают, как проверить письмо. DMARC отвечает на следующий вопрос: а что делать, если проверка не прошла?",{"type":27,"content":690},[691],{"type":24,"text":692},"Вариантов три: ничего не делать и просто наблюдать, отправить в спам или отклонить совсем. Плюс адрес, на который почтовые системы будут присылать отчёты - кто и откуда шлёт письма от вашего имени.",{"type":27,"content":694},[695],{"type":24,"text":696},"Порядок здесь важен, и его нарушение - главная ошибка самостоятельной настройки. Нельзя начинать со строгого режима: если DKIM не настроен или какой-то ваш сервис шлёт письма мимо списка, вы своими руками отправите в спам собственную почту.",{"type":27,"content":698},[699],{"type":24,"text":700},"Правильная последовательность: сначала мягкий режим наблюдения с отчётами, потом настройка DKIM, потом проверка боем, и только потом ужесточение. Я именно так и делал: поставил DMARC, добился DKIM, убедился, что обе проверки проходят, и после этого поднял режим до отправки подозрительного в спам.",{"type":19,"attrs":702,"content":703},{"level":21},[704],{"type":24,"text":705},"Как проверить за две минуты",{"type":27,"content":707},[708],{"type":24,"text":709},"Не надо ставить инструменты и разбираться в заголовках. Есть бесплатные сервисы-автоответчики: вы отправляете письмо со своего рабочего адреса на специальный адрес и получаете в ответ полный разбор - прошёл ли SPF, прошёл ли DKIM, что видит принимающая сторона.",{"type":27,"content":711},[712],{"type":24,"text":713},"Я пользуюсь таким после каждого изменения. Ответ приходит за минуту, и в нём прямым текстом написано pass или fail по каждому пункту. Это единственный способ убедиться, что вы настроили не то, что хотели, а то, что получилось.",{"type":27,"content":715},[716,718,724],{"type":24,"text":717},"Отдельная грабля для тех, кто правит настройки домена через программный интерфейс хостинга: у Beget операция изменения записей перезаписывает всю группу целиком и ",{"type":24,"marks":719,"text":723},[720],{"type":34,"attrs":721},{"href":722},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Fgeobloki-i-tihie-otkazy","молча удаляет то, что вы не передали",{"type":24,"text":725},". После любой такой правки проверяйте, на месте ли записи почты и адреса сайта.",{"type":19,"attrs":727,"content":728},{"level":21},[729],{"type":24,"text":730},"Бонус: аватар отправителя",{"type":27,"content":732},[733],{"type":24,"text":734},"Раз уж речь о доверии к письму - вопрос, который мне задают чаще, чем про DKIM: как сделать, чтобы рядом с письмом показывалась картинка компании, а не серый кружок с буквой.",{"type":27,"content":736},[737],{"type":24,"text":738},"Ответ неприятный и разный для разных почт:",{"type":54,"content":740},[741,747,753],{"type":57,"content":742},[743],{"type":27,"content":744},[745],{"type":24,"text":746},"В Gmail единственный официальный путь - технология BIMI, а она требует сертификата, подтверждающего права на товарный знак. Это от 1000 долларов в год и обязательный зарегистрированный знак. Для индивидуального предпринимателя без товарного знака - недоступно в принципе.",{"type":57,"content":748},[749],{"type":27,"content":750},[751],{"type":24,"text":752},"В Mail.ru делается бесплатно через кабинет почтмейстера: подтверждаете домен записью в его настройках и загружаете картинку. Требования простые - квадрат, непрозрачный фон, читаемость в мелком размере.",{"type":57,"content":754},[755],{"type":27,"content":756},[757],{"type":24,"text":758},"В Яндексе встроенного способа нет, работает сервис глобальных аватаров, привязанный к адресу отправителя.",{"type":27,"content":760},[761],{"type":24,"text":762},"Но заниматься этим стоит только после того, как настроены DKIM и DMARC. Без них красивое письмо просто не увидят.",{"type":19,"attrs":764,"content":765},{"level":21},[766],{"type":24,"text":177},{"type":13,"attrs":768},{"id":769,"junction":16,"collection":181},"90ad1d09-37c4-4b49-8161-0659e3a1202c",{"type":27,"content":771},[772],{"type":24,"text":773},"Считайте на своих числах. Заявка в B2B стоит от 3 000 до 15 000 рублей, и при среднем чеке 50 000 рублей и конверсии 30 процентов она возвращает около 15 000 рублей. Каждое письмо, ушедшее в спам, - это заявка, за которую вы уже заплатили, и она не сработала. С другой стороны весов - тикет в поддержку хостинга на несколько минут, ноль рублей и две минуты на проверку.",{"type":27,"content":775},[776],{"type":24,"text":777},"Письмо в спаме никто не отбивает уведомлением - вы просто не знаете, что клиент его не увидел. Так же тихо ломаются интеграции и выгрузки: разбираю, какие уведомления ставить, чтобы не отключить их на второй день.",{"type":27,"content":779},[780,781],{"type":24,"text":596},{"type":24,"marks":782,"text":6},[783],{"type":34,"attrs":784},{"href":494},"Три конверта проходят через арки-штампы, четвёртый отложен в тень",{"title":787,"meta_description":788,"focus_keyphrase":203,"og_image":199,"no_index":204,"no_follow":204,"sitemap":789,"additional_fields":790},"SPF, DKIM, DMARC: как настроить, чтобы письма доходили","Три записи в DNS, без которых рассылка и даже обычные письма уезжают в спам. Что каждая означает, в каком порядке их ставить и как проверить результат за две минуты.",{"change_frequency":206,"priority":207},{},"2026-08-27T17:21:48.000Z",[793,795],{"sort":213,"tags_id":794},{"name":218},{"sort":21,"tags_id":796},{"name":797},"Безопасность",[799],{"id":769,"sort":199,"collection":181,"item":800},{"items":801,"columns":240},[802,805,808],{"lead":803,"text":804},"0 рублей","Столько стоит DKIM: у Beget его включает поддержка по вашему тикету",{"lead":806,"text":807},"15 000 рублей","Столько в среднем приносит одна заявка при чеке 50 000 рублей и конверсии 30 процентов",{"lead":238,"text":809},"Проверка после каждой правки: письмо автоответчику и разбор pass или fail",{"id":811,"modified_on":812},"2191cc54-9d87-49bc-bd39-b656d1a2a18f","2026-08-27T18:13:09.511Z"]