Зачем вообще этот цирк?
Представьте: каждый день вы тратите час на пролистывание новостей, чтобы найти три стоящие статьи. Гугл завален мусором, ChatGPT просит деньги за каждое сообщение, а приватность — это что-то из 2010-х. Знакомая картина?
А теперь представьте другое: на вашем ноутбуке работает автономный агент, который сам ищет новости по вашим темам, фильтрует шум, кратко пересказывает и складывает в удобный формат. Без ежемесячных платежей, без отправки данных в облака, без ограничений по запросам. Звучит как фантастика? Это уже реальность.
MCP (Model Context Protocol) — это не просто очередной протокол. Это способ заставить локальные модели работать с внешними инструментами, как это делают облачные агенты OpenAI. Только вы контролируете всё.
Что у нас в арсенале
Стек выглядит минималистично, но бьёт точно в цель:
- LM Studio — клиент для локальных моделей с поддержкой MCP
- GPT-OSS 20B — 20-миллиардная модель от OpenRouter, которая умеет рассуждать и выполнять инструкции
- Google Search MCP сервер — для поиска новостей через API
- Headless браузер — для парсинга сайтов, которые блокируют простые запросы
- Instagram scraper — опционально, для мониторинга соцсетей
GPT-OSS 20B — не самая большая модель, но для задач агента она подходит идеально. Она балансирует между качеством рассуждений и скоростью работы на потребительском железе. Если нужны более мощные модели, посмотрите обзор неазиатских open-source моделей для агентов.
Собираем пазл: установка и настройка
1 Качаем и настраиваем LM Studio
Первое, что нужно понять: LM Studio — это не просто игрушка для тестирования моделей. С версии 0.3.0 там появилась полноценная поддержка MCP, которая превращает его в платформу для агентов.
# Для macOS
brew install lmstudio
# Для Windows
# Качаем с официального сайта lmstudio.ai
# Для Linux
wget https://releases.lmstudio.ai/linux/latest/lmstudio.AppImage
chmod +x lmstudio.AppImage
./lmstudio.AppImage
После установки зайдите в настройки (Settings → MCP Servers) и включите поддержку MCP. Это неочевидный момент — по умолчанию она выключена.
2 Загружаем GPT-OSS 20B
В поиске моделей вбейте "GPT-OSS 20B". Модель весит около 12 ГБ в формате GGUF. Выбирайте квантование Q4_K_M — оптимальный баланс между качеством и размером.
Важный нюанс: не берите версии с большим контекстом (128K), если у вас не очень мощная видеокарта. Для новостного агента достаточно 8K контекста.
3 Настраиваем MCP серверы
Вот где начинается магия. MCP серверы — это отдельные процессы, которые предоставляют инструменты для модели. Нам нужны два:
# Google Search MCP сервер
npm install -g @modelcontextprotocol/server-google-search
# Запускаем с API ключом
GOOGLE_API_KEY=ваш_ключ GOOGLE_CSE_ID=ваш_cse_id \
mcp-server-google-search
Для Google Search API нужен ключ и Custom Search Engine ID. Это стоит 5 долларов в месяц за 1000 запросов — дешевле, чем ChatGPT Plus.
Второй сервер — для работы с браузером:
# Устанавливаем Playwright для headless браузера
pip install playwright
playwright install chromium
# Качаем MCP сервер для браузера
git clone https://github.com/someuser/mcp-server-browser
cd mcp-server-browser
npm install
npm start
4 Подключаем серверы к LM Studio
В LM Studio идем в Chat → Configure MCP Servers. Добавляем два сервера:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": ["@modelcontextprotocol/server-google-search"],
"env": {
"GOOGLE_API_KEY": "ваш_ключ",
"GOOGLE_CSE_ID": "ваш_cse_id"
}
},
"browser": {
"command": "node",
"args": ["/путь/к/mcp-server-browser/build/index.js"],
"env": {}
}
}
}
Перезапускаем LM Studio. Теперь в интерфейсе чата должны появиться иконки инструментов.
Промпт, который работает (а не просто выглядит умно)
Вот промпт, который заставляет агента работать как швейцарские часы:
Ты — автономный новостной агент. Твоя задача — собирать и анализировать новости по заданным темам.
Доступные инструменты:
1. google_search(query, num_results=5) — поиск в Google
2. browse_page(url) — загрузка и анализ веб-страницы
Алгоритм работы:
1. Для каждой темы из списка выполни поиск новостей за последние 24 часа
2. Отфильтруй результаты: исключи рекламу, пресс-релизы, дубли
3. Для каждого значимого результата загрузи страницу и извлеки ключевую информацию
4. Сформируй отчет в формате:
- Заголовок
- Источник и дата
- Краткое содержание (3-4 предложения)
- Ключевые тезисы
- Важность (высокая/средняя/низкая)
Темы для мониторинга: [искусственный интеллект, локальные LLM, open-source модели, MCP протокол]
Важные правила:
- Не делай больше 5 запросов в минуту к Google Search API
- Если страница не загружается через browse_page, пропусти ее
- Сортируй новости по важности, а не по дате
- Игнорируй новости, которые являются перепечатками старых материалов
Самая частая ошибка — давать агенту слишком общие инструкции. Чем конкретнее промпт, тем лучше результат. Не пишите "найди интересные новости", пишите "найди новости об открытии новых моделей или серьезных уязвимостях".
Коулдаун — секретное оружие против лимитов API
Вот что никто не рассказывает: MCP серверы в LM Studio не имеют встроенного rate limiting. Если агент начнет делать запросы каждую секунду, ваш Google API ключ сгорит за минуту.
Решение — коулдаун функция в промпте:
Перед каждым вызовом google_search:
1. Проверь, не было ли предыдущего запроса менее 12 секунд назад
2. Если было — подожди 12 секунд
3. Запиши время текущего запроса
Это критически важно для соблюдения лимитов API.
На практике это выглядит так: агент сам следит за временем между запросами. Примитивно? Да. Работает? Абсолютно.
Почему это лучше облачных решений
| Критерий | LM Studio + MCP | Облачные агенты (OpenAI) |
|---|---|---|
| Стоимость | 5$/мес (Google API) + 0$ (модель) | 20-50$/мес + плата за токены |
| Приватность | Все данные локально | Все запросы уходят в облако |
| Кастомизация | Любые модели, любые инструменты | Только то, что дает провайдер |
| Лимиты | Только лимиты вашего железа | Rate limits, токен лимиты, запросы/день |
Но есть и недостатки. GPT-OSS 20B иногда галлюцинирует. Может пропустить важную новость. Может неправильно оценить важность. Зато она учится на ваших правках — следующий запрос будет точнее.
Что делать, когда новостей слишком много
Через неделю работы агент начнет приносить десятки новостей в день. Большинство из них — шум. Вот как это фильтровать:
Дополнительные правила фильтрации:
1. Если в заголовке есть слова "мог бы", "возможно", "эксперты считают" — понижай важность
2. Новости о стартапах, которые только собрали деньги — низкая важность
3. Новости о выходе новых версий библиотек — средняя важность
4. Критические уязвимости или прорывные исследования — высокая важность
5. Если один и тот же факт повторяется в 3+ источниках — оставляй только первоисточник
Эти правила кажутся субъективными? Так и есть. Но они работают лучше, чем абстрактные "найди важные новости".
Типичные ошибки (и как их не совершать)
Ошибка 1: Забыть про лимиты Google Search API. Решение — тот самый коулдаун в промпте.
Ошибка 2: Использовать слишком тяжелую модель. GPT-OSS 20B на Q4_K_M работает на MacBook M1 с 16 ГБ оперативки. Более тяжелые модели будут тормозить.
Ошибка 3: Давать агенту слишком широкие темы. "Технологии" — плохо. "Локальные LLM, новые версии PyTorch, уязвимости в трансформерах" — хорошо.
Ошибка 4: Не проверять результаты первые несколько дней. Агент нужно тренировать, как собаку. Не понравилась новость — скажите об этом в чате. Модель запомнит.
А что насчет Instagram и других соцсетей?
Технически можно добавить MCP сервер для Instagram scraping. Но готовьтесь к боли:
- Instagram блокирует автоматические запросы
- Нужны прокси и rotation user agents
- Даже тогда аккаунт могут забанить
Если очень нужно — используйте headless браузер через Playwright с человеческими задержками. Но лучше ограничиться публичными источниками, которые не воюют со скрейпингом.
Куда развивать систему дальше
Работающий агент — это только начало. Вот что можно добавить:
- Автоматическое сохранение в базу данных — чтобы искать по истории
- Телеграм-бота — для отправки уведомлений
- Кластеризацию новостей — чтобы группировать похожие события
- Сводки по неделям/месяцам — с анализом трендов
Самое интересное — это возможность создать целую мультиагентную систему. Один агент ищет новости, второй анализирует их важность, третий готовит дайджест. Хотя для большинства задач один агент справляется лучше, чем три — меньше сложностей с координацией. Об этом я писал в статье про излишность мультиагентных систем.
Главный секрет не в сложности системы, а в ее стабильности. Агент, который работает месяц без сбоев, полезнее навороченной системы, которая падает каждый день.
Что будет, когда все это надоест
Через месяц-два вы поймете, что 80% новостей — это повторение уже известного. Агент начнет приносить одни и те же новости под разными заголовками. Это не баг — это фича. Значит, система работает и фильтрует действительно новое.
В этот момент можно либо сузить темы, либо переключить агента на другую задачу. Тот же стек отлично работает для мониторинга цен, отслеживания изменений на сайтах, сбора отзывов.
Или можно пойти дальше и построить полностью локальную Agentic RAG систему, которая не просто собирает новости, но и анализирует их в контексте ваших документов.
Самое приятное во всей этой истории — вы не зависите ни от кого. Ни от OpenAI с их политикой использования, ни от Google с их ценами на API, ни даже от интернета (модель-то локальная). Вы просто взяли куски open-source мира и собрали из них то, что нужно именно вам.
И да, это работает. Прямо сейчас. На вашем ноутбуке.