Как я собрал автономный AI новостную систему за полтора месяца
7 апреля 2026 г. · 7 мин
Полтора месяца назад у меня было семь воркфлоу в n8n для новостного пайплайна. Каждый делал что-то своё. На бумаге красиво. На практике — постоянные затыки. Где-то новость застряла, непонятно где. Исправляешь одно — ломается другое.
Семь воркфлоу — семь точек отказа. И каждая ломается по-своему.
Сегодня та же задача решена иначе: 160 уникальных источников, 7127 записей в базе, 11 воркеров, 5 AI-агентов, локальная LLM на домашнем мини-ПК — и оркестратор, которому я просто пишу задачу в Telegram.
Без n8n. Без ручного управления. Почти без моего участия.
Вот как это вышло.
Всё началось с хаоса в n8n
Я не программист в классическом смысле. Мой путь начинался с n8n, Make, no-code. Я строил новостной пайплайн для своего Telegram-канала @news_all_ai и постепенно обрастал воркфлоу.
Один тянул новости с источников. Второй чистил дубли. Третий переводил. Четвёртый генерировал картинки. Пятый, шестой, седьмой.
Они работали. Проблема в другом: когда что-то ломалось, я не знал где. n8n показывал “выполнен успешно”, а новость в канале так и не появлялась. Каждое изменение превращалось в квест — что именно я сломал?
Инструменты, которые изменили подход
Начинал я в Cursor. Он же настраивал домашний мини-ПК: Ubuntu, llama.cpp, Vulkan, оптимизация под архитектуру железа. Прокси, VPN, база данных, первые версии пайплайна — тоже Cursor.
Perplexity шёл рядом на каждом этапе. Для меня это лучший исследовательский инструмент: когда нужно разобраться в архитектурном решении или понять как работает технология — иду туда. Глубже него я ничего не видел.
А потом попробовал Claude Code. И это изменило всё.
Я скинул ему все семь воркфлоу и написал примерно так:
“Вот мои семь воркфлоу. Они делают новостной пайплайн. Мне кажется это можно сделать лучше. Сделай.”
Ждал вопросов, уточнений, долгих итераций.
Он на одном дыхании предложил архитектуру и написал Python-пайплайн, который заменил все семь воркфлоу. Один проект вместо семи. Это было самое сильное что я видел в работе с AI за последнее время.
Я не читаю этот код как книгу. Но вижу что работает. И могу описать что хочу изменить — и получить изменение.
Мини-ПК как часть системы
Отдельная история с переводом.
Использовать облачные 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, локальный Qwen как резерв.
image_worker — генерирует обложку.
publisher — публикует по расписанию.
github_discovery — мониторит GitHub на новые AI-репозитории с высоким сигналом: новые релизы, резкий рост звёзд.
hitl (Human-in-the-loop) — флагует посты, которые требуют ручной проверки.

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

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

Расписание: слоты вместо “постить когда накопилось”
Публикации идут по четырём слотам:
- Утро (08:00-11:00) — 2 поста
- День (12:00-16:00) — 2 поста
- Вечер (18:00-22:00) — 2 поста
- Ночь (00:00-06:00) — 2 поста
Итого: 8 постов в день. Раньше было 28. Это был шум, а не канал.

OpenClaw и агенты: оркестрация вместо ручного управления
Воркеры — исполнители. Агенты — те, кто принимает решения.
OpenClaw — платформа для создания AI-агентов с доступом к инструментам. Агент не просто отвечает текстом: он вызывает API, меняет настройки, запускает процессы. Живёт на том же домашнем мини-ПК.
Координатор — оркестратор внутри OpenClaw. Он управляет всеми остальными агентами пайплайна: раздаёт задачи, следит за выполнением, реагирует на сбои.
Сейчас в пайплайне 5 агентов плюс аналитик:
| Агент | Роль | Расписание |
|---|---|---|
| AgentEditor | Шеф-редактор: выбор кандидатов по слотам, approve-text/approve-final | 07/13/19/01 ВЛАД |
| AgentLLMEditor | Переработка текстов под формат канала | каждые 20 мин |
| AgentPipelineManager | Менеджер потока: наблюдение → решение → действие → лог | 4 раза в сутки |
| AgentSourceAuditor | Аудит источников, отключение мёртвых | еженедельно |
| AgentAnalyst | Аналитика: очередь, срезы, темы | вечер 21:05 |
Координатор управляет ими всеми. Я пишу ему в Telegram:
“Снизь лимит публикаций до 8 в день”
Он смотрит в API, меняет настройку, отвечает: “Готово, max_per_day = 8”.
Без терминала. Без кода.


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


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

Главный инсайт
Я начинал в Cursor. Perplexity помогал разобраться в архитектуре. Но по-настоящему распробовал что значит “описать задачу и получить работающую систему” — только когда пересел на Claude Code.
Я не пишу код. Я принимаю решения и ставлю задачи.
Семь воркфлоу в n8n превратились в единый Python-пайплайн с агентами за полтора месяца. Хаос превратился в систему, которую видно насквозь.
Если бы не попробовал — до сих пор чинил бы воркфлоу номер восемь.
Канал: @news_all_ai — посмотреть что выдаёт система на выходе.
Вопросы про архитектуру, OpenClaw, локальные LLM или как именно это строилось — пишите в комментарии, отвечу.
Теги: AI, автоматизация, Python, агенты, Telegram, новостной пайплайн, Claude Code, OpenClaw, локальные LLM, llama.cpp