Полтора месяца назад у меня было семь воркфлоу в n8n для новостного пайплайна. Каждый делал что-то своё. Выглядит это, конечно, красиво, наблюдаешь, как крутятся воркеры. Но если посмотреть внутрь, то постоянно происходят какие то сбои. Где-то новость застряла, и сразу разобраться порой не получается. И вроде исправил одно, но следом влезают другие проблемы.
Итог: семь воркфлоу — семь точек отказа. И каждый ломается по-своему.
Сейчас эта проблема решена по-другому: у меня есть 160 уникальных источников, 7127 записей в базе, 11 воркеров, 5 AI-агентов, локальная LLM на домашнем мини-ПК — и оркестратор, которому я пишу задачу в Telegram, и он выполняет её.
И все это без n8n. Без ручного управления. И почти без моего участия.
Вот как это вышло.
Всё началось с хаоса в n8n
Я не программист в классическом смысле. Еще год назад я впервые узнал о n8n и no-code системах. Я строил различные автоматизации такие как Rag системы, автоматизация получения различных данных, обработка картинок, личные ассистенты и многое другое.
Затем я захотел построить свою новостную систему, создал канал, начал делать воркфлоу, сделал один, второй, третий, добавил генерацию картинок для каждой новости, потом я понял что так не очень хорошо получается и доработал воркфлоу так, чтобы он сначала парсил новости и тянул оттуда оригиналы картинок а затем уже если не нашел то запускал генерацию по смыслу. Так я создал полноценную систему для своего Telegram-канала @news_all_ai и постепенно обрастал воркфлоу.
Один воркфлоу тянул новости с источников. Второй чистил дубли и проводил фильтрацию новостей. Третий переводил. Четвёртый генерировал картинки. Пятый, шестой, седьмой — делали свои задачи.
Они работали. Проблема в другом: когда что-то ломалось — было порой сложновато что-то нормально настроить и добиться стабильности. Допустим, n8n показывает что ворфлоу «выполнен успешно» но результат на выходе пустой, итог вся система сыпется из-за одной проблемы.
Инструменты, которые изменили подход
Начинал я работать в Cursor. Он же с легкостью настроил домашний мини-ПК: Ubuntu, llama.cpp, сделал тонкую настройку под мое ядро Vulkan и в целом неплохо оптимизировал все под архитектуру железа. Прокси, VPN, база данных, первые версии пайплайна — тоже Cursor.
Всё это это время я параллельно всё обсуждал с Perplexity. Использую его — когда нужно разобраться в архитектурном решении или понять, как работает технология.
В целом первая рабочая Новостная система появилась когда я решил в очередной раз попробовать Claude Code. Кстати я был очень удивлен и доволен результатом.
Я просто скинул ему все семь воркфлоу и написал примерно так:
"Вот мои семь воркфлоу. Они сейчас работают на моем сервере n8n, все это работает но постоянно происходят сбои, ты можешь перегнать эти воркфлоу в питон и запустить проект в контейнере на моем сервере."
Клод задал мне несколько уточняющих вопросов, предложил архитектуру, и приступил к выполнению задачи. Буквально в течение часа он запустил готовый проект.
Затем я просто попросил его прогнать систему целиком и вот тут-то я был удивлен насколько всё это работает быстрее и без задержек.
Итог: один проект вместо семи и полностью работающая система но пока только с ручным утверждением. Этот момент мы с ним обсудили на этапе вопросов.
Что самое интересное — все сделал ИИ и я не написал нистрочки кода.
Мини-ПК как часть системы
Отдельная история — с переводом новостей.
Использовать облачные API для каждой новости из 160 источников каждые 15 минут — дороговато. Я как раз экспериментировал с локальными моделями на мини ПК — поэтому перевод теперь работает на локальной LLM: Qwen 3.5 (qwen3.5-9b-q5_k_m.gguf) через llama.cpp.
Cursor настроил всё под железо: Vulkan, оптимизация под архитектуру процессора. Перевод работает быстро, бесплатно и локально — данные никуда не уходят.
На том же мини-ПК живёт OpenClaw — о нём дальше.
Архитектура: 11 воркеров, каждый делает свою работу
Система сейчас выглядит так:
collector → scraper → deduplicator → ai_filter → translator (локальный Qwen) → llm_editor → image_worker → publisher
Плюс фоновые: github_discovery, video_discovery, video_cleanup, hitl.
Каждый воркер — отдельный Python-процесс с одной задачей и каждый из них запускается в свое время.
collector — собирает сырые новости из RSS и API примерно 160 источников: Arxiv, TechCrunch, The Verge, Wired, Anthropic Blog, OpenAI Blog, Habr, VC.ru, GitHub и ещё полторы сотни. Каждые 15 минут.
scraper — вытаскивает полный текст там, где RSS даёт только анонс. Раньше я использовал облачный Jina Reader — у него 10 млн бесплатных токенов, но на таком объёме они улетают быстро. Когда перенёс пайплайн на Python, и обсуждал с ИИ, есть ли другие бесплатные системы, выяснил, что можно оказывается поднять свой инстанс Jina на сервере. В итоге теперь у меня скрейпер без лимитов.
deduplicator — убирает дубли по семантическому сходству, не по точному совпадению текста.
ai_filter — оценивает каждую новость по relevance_score от 0 до 100. Ниже 75 — в архив.
translator — переводит на русский через локальный Qwen 3.5 на мини-ПК.
llm_editor — форматирует текст под стиль канала: заголовок с эмодзи по категории, структурированный текст, атрибуция. Работает он на MiniMax M2.7 - она достаточно шустрая и неплохо с этим справляется.
image_worker — ищет и выдергивает картинки, а в случае отсутствия запускается генерация.
publisher — публикует по расписанию.
github_discovery — мониторит GitHub на новые AI-репозитории с высоким сигналом: новые релизы, резкий рост звёзд.
hitl (Human-in-the-loop) — флагует посты, которые требуют ручной проверки.

Что происходит с каждой новостью
Поток в реальном времени:
18 собрано (новые) → 58 в filter queue → pending selection → 4 translation queue (локальный Qwen) → 48 text approval → image queue → 2 final approval → опубликовано
Каждый этап — отдельный статус в базе. Если что-то застревает я могу это увидеть сразу и на каком именно шаге. Стало реально проще понимать в чем проблема и что нужно поправить.

Из 160 источников — 8 постов в день
Пайплайн не постит всё подряд.
За неделю система собирает порядка 1000 новостей. На выходе я получаю 8 постов в день, прошедших несколько уровней отбора:
relevance_score ≥ 80 (ai_filter)
LLM-редактор проверяет и ставит
approvedилиneeds_reviewPipeline Manager распределяет по слотам
В таблице источников видно pass rate по каждому:
Источник |
Собрано (7 дн.) |
Pass rate |
|---|---|---|
Anthropic News |
2 |
100% |
MarkTechPost |
10 |
50% |
The Next Web |
80 |
21% |
509 |
14% |
|
TechCrunch |
138 |
13% |
iXBT пишет много, но большинство не по теме канала. Anthropic пишет мало — зато каждый материал попадает в цель. Это и есть разница между объёмом и сигналом.

Pass rate помогает мне понять какие источники оставить а какие отключить. Уже в первую неделю стало ясно что порядка 20 источников совсем пустые и можно безопасно их отключить.
Расписание: слоты вместо «постить когда накопилось»
Публикации идут по четырём слотам:
Утро (08:00–11:00) — 2 поста
День (12:00–16:00) — 2 поста
Вечер (18:00–22:00) — 2 поста
Ночь (00:00–06:00) — 2 поста
Почему 8 постов в день? Раньше было 28 — это был шум, люди читали последние 1-2 новости а выше не листали.. Теперь меньше, но каждый проходит отбор и теперь меньше шансов что его пропустят.

OpenClaw и агенты: оркестрация вместо ручного управления
Я изначально когда проектировал эту систему принял решение что на сервере просто бэкэнд а решение о публикации кто-то должен принять. Сначала это делал я каждый день и не очень системно. Затем появился OpenClaw - он как раз был тогда на пике восхождения.
OpenClaw — это платформа для создания AI-агентов с доступом к инструментам. Агент не просто отвечает текстом а у него есть по сути руки: он вызывает API, меняет настройки, запускает процессы. Живёт на том же домашнем мини-ПК.
Координатор — оркестратор внутри OpenClaw. Он у меня как бы главный, управляет всеми остальными агентами пайплайна и не только: раздаёт задачи, следит за выполнением, реагирует на сбои и сообщает мне если что то идет не так.
Сейчас 5 агентов работают именно с новостной системой включая аналитика:
Агент |
Роль |
Расписание |
|---|---|---|
AgentLLMEditor |
Переработка текстов под формат канала |
каждые 20 минут |
AgentPipelineManager |
Менеджер потока: наблюдение → решение → действие → лог |
4 раза в сутки |
AgentSourceAuditor |
Аудит источников, отключение мёртвых |
еженедельно |
AgentAnalyst |
Аналитика: очередь, срезы, темы |
вечер 21:05 |
Координатор управляет ими всеми. Я пишу ему в Telegram:
«Координатор, снизь, пожалуйста, лимит публикаций в пайплайне до 8 в день»
Он смотрит в API, меняет настройку, отвечает: «Готово, max_per_day = 8».
Без терминала. Без кода.


Дашборд: всё видно сразу
Дашборд появился практически сразу после запуска системы и постепенно рос вместе с ней. Сначала я добавил просто статусы воркеров. Потом еще появлялись идеи и потребности в метриках. В итоге постепенно у меня получился полноценный интерфейс для анализа работы моего пайплайна.
Сейчас мы имеем следующие вкладки: обзор, агент, источники, очередь, воркеры, слоты, опубликованные, настройки, GitHub Discovery.
Когда что-то ломается открываю дашборд — всё сразу видно и не нужно гадать.


Что работает без меня
Сбор из 160 источников — запускается каждые 15 минут, без выходных. Фильтрация, дедупликация, перевод через локальный Qwen версии 3.5 — бесплатно, без облака. LLM-редактура, генерация картинок, публикация по расписанию. Мониторинг GitHub, ежедневная аналитика, отчёты в рабочую группу.
Всё это работает само. Пока я занимаюсь своими делами или сплю.
Мне остаётся только наблюдать за выходом новостей, открывать дашборд раз в день, написать Координатору если нужно что-то поменять и периодически смотреть логи и отчеты в моей рабочей группе.

Что важно:
Есть много хороших инструментов, а в текущее время все это стало на столько доступно что теперь создать реально что то интересное достаточно легко. Можно без знания того же программирования создать полноценно работающий продукт.
Perplexity, Claude, Cursor — это всё инструменты и разобраться в них сейчас сможет практически каждый, степень вхождения опустилась до минимума.
И да, я не написал ни строчки кода, я только ставил задачи, обсуждал, принимал решения и оркестрировал.
Семь воркфлоу в n8n превратились в единый Python-пайплайн с агентами — за полтора месяца. Хаос превратился в систему, которую видно насквозь.
Если бы я не попробовал, то до сих пор чинил бы воркфлоу номер восемь.
Канал: @news_all_ai — посмотреть что выдаёт система на выходе.
Вопросы про архитектуру, OpenClaw, локальные LLM или как именно это строилось — пишите в комментарии, отвечу.
Комментарии (8)

Lenaro
14.04.2026 14:40у меня похожая система только собрал в н8н, разбил на этапы по статусам, их штук 20, чтобы если где-то сломалось вся работа не полетела, но собирать со 160 источников это конечно сильно
я просто по ключам ищу свежую информацию в интернете а потом ее фильтрую, если релевантная то пишу пост
Dembelk2020 Автор
14.04.2026 14:40Ну вот я так делал в начале - тогда у меня было порядка 40 источников и все были rss и все долго обрабатывалось и были постоянные ретраи, реально кучу автоматизаций сделал, а потом после очередного Бага решил попробовать по другому. Спокойно добавили новости с Видео роликами.
Сейчас к стати прихожу к тому что нужно писать посты, делать более живой канал а не просто новостная лента.
Lenaro
14.04.2026 14:40на новостях люди отписываются, но и не зарабатываешь ты потому что не нашел кому это продавать, у меня нормально выходит

mikenerevarin
14.04.2026 14:40А расскажите подробнее про ai_filter?

Dembelk2020 Автор
14.04.2026 14:40ai_filter — воркер после сбора новостей и удаления дублей, перед переводом. Берёт свежие новости, прогоняет через LLM и ставит оценку от 0 до 100 плюс короткое объяснение. На выходе три корзины: идём дальше в публикацию, откладываем как слабые или помечаем «ошибка модели».
Пороги не в коде, а в таблице настроек — меняю без перезапуска. Сейчас порог публикации 75 в будни, на выходных выше: там поток мусорнее. Всё, что ниже 70 — молча в сторону. В промпте модели явно прописано: фандинг, иски, увольнения — это не AI-новости, ставь 20-40, даже если компания AI-шная. Фильтр режет около 81% того, что собрал коллектор.
Главная оптимизация — отсев по длине текста до вызова LLM:
body = strip_all_html(r.get(“full_text”) or r.get(“content”) or “”).strip() if len(body) < 300: # сразу в сторону, LLM не зовём continue
Это платные статьи и RSS-заглушки на 150 символов. Без этого платил бы токенами за то, чтобы модель прочитала пустоту. Экономит 30+ вызовов в день.
LLM получает пачку по 5 штук: id, заголовок и обрезанный до 500 символов текст. Ответ — JSON. Парсер с подстраховкой: сначала стандартный разбор, потом поиск по скобкам — локальные модели любят навалить лишнего вокруг ответа.
Что не идеально: — Один поставщик LLM = одна точка отказа. Ретрай один раз через 20 секунд. — Пороги 70/75/80 подобрал на глаз. Собираю просмотры и реакции, но обратная связь на пороги ещё не замкнута. — Ложные срабатывания живут. Интересная научная статья может получить 65 и уйти мимо.
Следующий шаг — завязать порог на реакции и просмотры, чтобы он сам подтягивался под то, что заходит аудитории. Пока руками.

vladkolchik
14.04.2026 14:40Спасибо за развернутое описание системы, было интересно почитать, классная статья получилась
vtal007
Ничего не понятно, но очень интересно :)
вопрос имени Дудя, - "сколько ты зарабатываешь" (ну и во сколько это обходится)
Я пока пробую простым советским opencode что-то настроить, по плану - на каждый этап, свой проект (один проект - генерация текста по ТЗ (скилл копирайтинг, пока не нашел толковый, ну пусть по ТЗ работает), второй проект - хуманизация (хоть в промте и стараются это учесть) - есть скил для хуманизации, третий проект - конвертнуть в csv и разместить на сайте)
переводы пробовал локально сделать, спарсив статьи с одного зарубежного сайта (там тоже были свои приколы, парсинг из выдачи гугла), перевод через translate-gema локально, на видеокарте (около 1000 статей, 5060ти, работала часов 16 или больше), но проблема в том, что переводился хтмл, хоть гему и просили не переводить теги - все равно переводила. Ну и качество самого источника - не ахти (а вычищать его руками - муторно)
С точки зрения новостного контента- да, в принципе так и работают редакции - смотрят источники, переводят и фигачат свои материалы (хобот уже давно не торт)
У меня в планах отбирать, например, (не, 100500 статей у меня нет), пусть в неделю 50 статей, из них отбирать топ 10 и переводить - у меня не новостные, а по возможности "вечно-зеленые"
и тут как будто просто - бери буржуйские сайты и переводи целиком. Но на каждый сайт пока настроишь парсинг, да и то, что опубликовано "там", не факт, что интересно тут
Заканчивая мысль в стиле нейронок - автоматизация это не только ценных мех, а еще 3-4 килограмма высокоусвояемого диетического мяса"
Dembelk2020 Автор
Попробую ответить по порядку:
Я описал чем пользуюсь - Это был Курсор за 20 долларов. И Клод код так же 20 долларов. Раньше я пользовался только Курсором. Но буквально 3 месяца назад еще раз вернулся к Клоду и вот он реально делает красоту.
По поводу opencode - я так же его начал использовать но к нему я подключил свою кодинг подписку от MiniMax, она очень неплохо таки работает и так же отлично кодит.
Бесплатные модели пробовал для кондинга, мне не очень понравились.
А вот для обработки текста самое то - у меня тут используется свой Стэк: Мини Пк - CHUWI AuBox Ai365 на процессоре AMD Ryzen AI 9 365 и 32 гига оперативы. Локальная LLM Qwen 3.5 - она не плохо работает на нем - примерно 9 токенов в секунду.
Но вот сейчас вышла к стати Gemma4 от Гугл и она рвет всех в своем классе по скорости. Я ее параллельно подключил к llama.cpp - она мне вечернюю свод прогоняет, думаю позже заменю на нее.
По поводу копирайтинга и хуманизации - не ищи готовый создай свой. Их я создал совместно с Перплексити и Клодом - отлично получилось и смог выйти на 92% яеловечности) а что я по сути сделал, скормил перплексити свои тексты и переписки и попросил выдернуть все паттерны а дальше попросил его подготовить промпт для Клода чтобы он сделал эти скилы один назвали alexey-editor а второй ru-humanizer. Отлично справляются и проходит многие проверки.
По поводу отбора статей(новостей). -- у меня система отбирает да примерно 100-200 в день, но дальше идет фильтрация которая проставляет рейтинг новости, дедупликация которая отсекает дубли, так же отсекаются битые новости, очень короткие менее 300 знаков уходят в мусор. Итого по подсчетам примерно 18% новостей из данного пула доходят до Менеджера а тот в свою очередь отправляет в данный момент всего 10 топовых новостей в сутки. Я еще пока играюсь с количеством.
И вот локальная LLM Qwen 3.5 - достаточно шустро справляется с этими задачами.
Причем скрйапер у меня тянет весь текст новости после всех отборов и фильтраций. А там порой портянки на несколько страниц.
По поводу настройки парсинга на каждый сайт проблем не было вообще - поставь jina я описал это в статье. Прекрасно парсит и все бесплатно - мне к стати нейронка сама предложила это сделать.
Я полностью согласен с тем что еще и нужно все нормально подготовить и оформить, я еще дорабатываю канал. И добавляю новые фичи и аналитику плюс автоматизацию вплоть до исправления в авторежиме любых косяков.
Я в статье хотел донести то что сейчас по сути создать автоматизацию может почти каждый и тут не нужно гигантских знаний. И вложения минимальные.
Я на работе себе создаю различные автоматизации и crm системы которые мне помогают и все это без знания программирования.
А так же вот на днях я собрал себе сайт https://kravtsovlab.space/ - статьи там публикуются прями из Obsidian - все сделал за 2 часа и все в автоматическом режиме.
Пока там 2 статьи - буду расширять базу знаний. И в ближайшее время выпущу еще статью как я создал такой сайт.