惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
S
Security @ Cisco Blogs
S
Secure Thoughts
Attack and Defense Labs
Attack and Defense Labs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hacker News: Front Page
博客园 - 叶小钗
H
Heimdal Security Blog
Microsoft Security Blog
Microsoft Security Blog
Forbes - Security
Forbes - Security
AI
AI
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Troy Hunt's Blog
罗磊的独立博客
Application and Cybersecurity Blog
Application and Cybersecurity Blog
爱范儿
爱范儿
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
TaoSecurity Blog
TaoSecurity Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Schneier on Security
Schneier on Security
C
Cisco Blogs
美团技术团队
D
Docker
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
月光博客
月光博客
雷峰网
雷峰网
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
Arctic Wolf
B
Blog RSS Feed
Cisco Talos Blog
Cisco Talos Blog
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
V2EX - 技术
V2EX - 技术
Y
Y Combinator Blog
N
News and Events Feed by Topic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
W
WeLiveSecurity
Security Archives - TechRepublic
Security Archives - TechRepublic
G
GRAHAM CLULEY
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Наглядный пример, зачем нужны агенты
meet-in-mid · 2026-04-26 · via Все публикации подряд на Хабре

Наглядный пример, зачем нужны агенты

Уровень сложностиПростой

Время на прочтение8 мин

Охват и читатели357

Кейс

Расскажу историю длиною в полгода на которой прекрасно прочувствовал все прелести современных инструментов и способов эксплуатации llm.

Идея до жути простая и наверняка встречалась или приходила в голову очень многим, кто начинал задумываться об использовании llm api или после знакомства с rag. В августе 2025 года папа предложил мне создать хороший поисковик-анализатор новостей: ты даешь ему список источников и пожелания того, что хочешь увидеть в ответе, он тебе присылает в выбранный интервал сводку с источниками и отвечает на твои вопросы. Казалось бы, классическая задача чтобы показать всем удачное применение rag, словить аплодисменты и разойтись. Так показалось и мне, и я буквально за 1-2 месяца работая в свободное время собрал вполне достойный прототип. Он умел хорошо искать семантически, просить llm сформировать ответ на основе найденных постов и даже помогал их открывать. В мыслях салюты, шампанское и ai единороги.

Но реальность

Довольно быстро на самотестировании я нашел два серьезных упущения: первое - сложный запрос для такой системы оставался недопустимой роскошью: попытка найти “причины шатдауна правительства США” в лучшем случае приводила меня к заголовкам про Трампа и что-то там про переговоры, а иногда и вовсе такого рода запросы не давали никакой выборки по базе; второй серьезной проблемой стало абсолютное непонимание предметной области, если того же Трампа вектора в базе еще ставят в один ряд с Америкой и политикой, то вот ЦБ РФ может запросто восприниматься как Россия или вообще непонятная модели сущность, а может вообще трактоваться как два отдельных слова. В целом обе эти неприятности подсвечивают один известный изъян всей системы - слишком большое доверие к семантической схожести и вытекающие из нее проблемы: размытие смысла на длинных запросах, непредсказуемое поведение имен собственных, поиск связей по частотному сходству, а не смыслу.

Последняя из перечисленных проблем заставила меня задуматься глубже над самим подходом. Если длинные фразы можно разбить на несколько запросов с той же llm, а неизвестные сущности и аббревиатуры с помощью поиска подменить при запросах в базу используя обычный web поиск, то вот связь уровня “Израиль - нефть - рубль” найти не так просто по самой семантике как ты не переделывай запрос, хотя любому человеку живущему в 2026 абсолютно ясно в чем тут дело. Я начал одновременно делать две вещи: искать и придумывать.

Ищем связи

Семантическая близость - штука хорошая и на ней лишь одной можно построить хороший retrieval, но между объектами существует гораздо большее чем просто упоминания в тексте. Обычный rag выглядит довольно плоско, он хорошо найдет по синонимам какие-то схожие вещи в базе, если прикрутить к нему рефраз и фазу обдумывания (что я и сделал), можно получить даже неплохого помощника в организации порядка в куче разрозненных фактов, но ключевое - он не видит связи между событиями и объектами. Хорошо, есть graph rag и event based rag. Первый связывает данные на основе факта сожительства внутри конкретной системы - то же совместное упоминание, но не в тексте, а в каких-то сущностях конкретного проекта - например документе. Это хорошо сработает, когда есть статичный хорошо организованный источник вроде уголовного кодекса - вот здесь graph rag идеально свяжет статьи, но у нас постоянно меняющаяся система знаний и событий, которые ЖИВУТ - они устаревают, теряют актуальность или же обретают новые смыслы. Graph rag тут неповоротлив по двум причинам, потому что строит жесткие связи, которые часто меняются и потому что абсолютно невозможно представить что в этой системе будет вершиной графа, новость? объект? событие? А что если они начнут смешиваться или выделится объект по типу “экономика”, представляете сколько связей у него будет и как тяжело будет развязывать такие сверхузлы. Что касается event based rag, то это то что я выбрал в качестве нового витка эволюции, как систему разработанную под связывание именно событий и динамического обновления связей. Кратко о подходе можно прочитать в статье https://arxiv.org/abs/2507.13396 она совсем небольшая и идея в целом витала в воздухе в индустрии. Я рассмотрел несколько уже готовых фреймворков, среди которых больше всего мне подходил graphiti - изначально заточенный на коммуникацию с клиентами, но взвесив все доработки, решил писать свой велосипед, тк готовая база уже была.

Дао мягких и жестких связей

Я довольно быстро понял, что самое важное при построении связей, выделить что и как будет связано. Чтобы понять что строить, нужно понять чего хочется. Хороший граф в моем понимании должен обладать следующими свойствами:

  • операция по изменению веса ребер или их переопределению должна стремиться по сложности к минимуму

  • связи в графе должны расширять знания, а не дублировать частотную связанность

  • нужно учитывать жесткие параметры (в первую очередь временной контекст)

  • сам подход должен исключать проблему сверхузлов

Обладая такими свойствами графом легко манипулировать для поддержки знаний в актуальном состоянии. Также он даст нам возможность иметь расширенный контекст знаний, а вот по какому принципу выбирать эти знания пишу дальше.

Задача довольно конкретная - понимание новостного контекста, доменное поле можно сузить до… И тут тупик, попытаюсь написать, как мысленно я из него выходил:

Ну начнем с самого очевидного - у новости есть значение актуальности в виде даты публикации. Новости очень часто дублируются в разных источниках, поэтому можно связывать заголовки как дубликаты и оригиналы (есть очень классный проект https://github.com/NyanNyanovich/nyan в котором очень хорошо решается именно эта проблема). Ну вроде какая-то база есть, осталось найти что-то важное. Вроде как в каждой новости есть объект(-ы) и они даже как-то взаимодействуют, выделим их, пригодятся! И теперь остается все связать и получить что не хватает состояния - вот оно новость = состояние объектов в момент времени, если говорить проще то любая новость состоит из событий, а события из отношений объектов. Так я вывел формулу, которой придерживаюсь до сих пор и которая оказывает серьезнейшее влияние на меня самого и мое мировоззрение: ARTICLE - EVENT - ENTITY

Отлично! Поле есть, остается его вспахать уместить в граф. Сложно представить как текст статьи про открытие сезона катков встанет в одну плоскость с каким нибудь объектом вроде OpenAI, получается мы смешаем сущности и их отношения и опять придем к невероятно разросшемуся графу с центральным узлом в виде Дональда Трампа, где связи тяжело как менять так и поддерживать, толк попросту пропадет. Для самого себя 4 месяца назад я сейчас даю огромную подсказку, оглашая слово “плоскость”. Хранить совместно объекты и события с ними создают какую-то, на интуитивном уровне, неприятную циклическую зависимость, хорошо, но что нам мешает хранить их не рядом, но при этом связать между собой? Именно из этого вопроса родилась следующая картинка, которая до сих пор является фундаментом всего проекта.

Пример свзей между плоскостями и внтури них

Пример свзей между плоскостями и внтури них

Что здесь происходит: все “сущности” были отнесены к своим изолированным плоскостям, то есть тексты новостей живут в одной плоскости, события в другой и объекты в третьей, при этом связи сохраняются как между плоскостями, так и внутри них. Связь от одной плоскости к другой я назвал жесткой, потому что они неизменны, например если статья содержит событие, то после публикации никак это событие оттуда не пропадет, точно так же как и объект не пропадет из события. Такие связи помогают хорошо сохранять нить событий и связок, когда в одной статье мы встречаем события А и Б, то условный алгоритм поиска, который нашел событие А выйдет и на событие Б пройдя через общего родителя, тем самым образовав уже “мягкую” связь между этими двумя событиями. Например вот статья, в которой упоминаются два события:

Иран открывает Ормузский пролив для судоходства, сообщил глава МИД страны Аббас Арагчи. «В соответствии с прекращением огня в Ливане, проход для всех коммерческих судов через Ормузский пролив объявляется полностью открытым на оставшийся период прекращения огня», — написал министр в X. (https://www.rbc.ru/politics/17/04/2026/69e22df89a7947d70a5d92db).

В плоскость постов добавится сам пост, в плоскость событий добавятся 2 события с “жесткой” связью к посту, а несколько объектов (Иран, Ормузский пролив, Аббас Арагчи, Ливан) добавятся в свою плоскость с “жесткой” связью к событиям. “Мягкие” связи в такой схеме будут рассчитываться динамически и при работе итогового алгоритма будут суммой всевозможных факторов, в том числе по наличию общих узлов в других плоскостях. Таким образом при поиске новостей про Ливан, очень велика вероятность, что алгоритм набредет на Ормузский пролив или на Аббаса Арагчи, а это именно то, что мы и ждем от умного поиска и то, что никогда не даст только лишь семантический.

Как на данный момент работала система и чего ей не хватало

Вся система в тот момент выглядела как франкенштейн, у которого есть следующие два пайплайна:

Сохранение - запланированный процесс собирает новые посты с источников (только открытые тг каналы). Посты нормализуются, фильтруются по рекламности и отправляются на процессинг. Далее из постов с помощью llm выделяются события и объекты, строятся эмбеддинги и идет сохранение: текстовые данные в векторную БД, связи - в обычную SQL таблицу

Поиск - перефраз запроса, выделение статики (временной интервал). Потом формирование нескольких запросов в базу. Дальше поиск по каждому запросу: находим по семантике -> фильтр релевантных -> добавление в выборку связанных слабыми связями событий -> суммаризация всех найденных статей с помощью llm и попытка ответить на изначальный вопрос пользователя. На деле конечно было применено несколько оптимизаций вроде извлечения тегов и якорей, разные оптимизации под типы запросов (вопрос, поиск по сущности и тд), но это тема для отдельной публикации

Это уже работало неплохо и подход с моделью “пост - событие - сущность” похоже реально хорошо решает задачу. В целом готовое прод решение, но изначально перед проектом стояли следующие приоритеты: качество и удобство. Заказчик проекта (папа) приносил мне множество различных требований, которые я сам бы никогда не предусмотрел, вот некоторые из них:

  • Есть посты в которых пишется заголовок и дальше текст по типу “а продолжение читайте на сайте (ссылка)” и нужно брать информацию с этого сайта, а не с поста

  • Я хочу создать проект в котором укажу источники и дам ему задание искать информацию по теме и оповещать меня в выбранный интервал

  • Все найденные события он должен проверять в зарубежных источниках и выписывать разницу в интерпретациях

Прикинул, какие еще могут быть требования у других пользователей, а еще что требования одного будут противоречить другому… И тут я подумал, что лепить что‑то в один проект гиблое дело, он просто превратится в неподдерживаемый швейцарский нож, а огромная часть «человеческой» функции будет размазана либо в каком‑то супер‑промпте, либо по куче маленьких тяжелоконтролируемых инструментам.

Агенты (самая важная часть статьи)

Несколько недель я использовал агента на openclaw для ведения журнала трат, поиска товаров, напоминаний в календаре и был очень доволен простоте использования и какой-то дружелюбности что ли. Этот опыт подвиг меня попробовать внедрить такого умельца в свой проект. В целом решение пришло быстро и не было сложно в реализации. Я понял, что нужно менять саму модель проекта и подход к пользователю, поэтому основные тезисы были такие:

  • гиперперсонализация - зона ответственности агента на стороне пользователя

  • надежность сервиса - ответственности модели данных и алгоритмов поиска

  • сам сервис перестает быть точкой входа и становится инструментом в руках агента

  • из предыдущего пункта вытекает необходимость развернуть сервис в сторону источника правды, набора инструментов и хранилища

И это по мне, самым правильным и очевидным решением было разбить весь проект на минимальные функции и дать к ним доступ агента под соусом авторизации. Что получилось в итоге:

Интеграция агентов и разделение ответственности

Интеграция агентов и разделение ответственности

Сервис превратился в понятный для агента источник знаний с минимальным набором хорошо контролируемых инструментов. Агент сам решает, какой запрос задать, какие фильтры по времени публикации поставить, когда этот запрос отправить, также агент может вести свой локальный кэш каких-то просьб от клиента, искать и посылать в базу статьи по своему решению. На агента перекладываются две важнейшие задачи - персонализация и поиск и парсинг источников. Если говорить в терминах очередей сообщений, то важнейшее изменение - смена  push модели на pull. И лично для меня это невероятно важное изменение и подвижка возможно во всей индустрии, которая разделяет ответственность, дает пользователю нереальную свободу и гибкость и, даже с точки зрения бизнеса: зачем пытаться продавать доступ к сервису, следить за тарификацией api llm, избегать преследований антиботов и тд. Можно же продать пользователю доступ к платформе по небольшой цене, это даст хорошо организованное хранилище и mcp сервер для его агентов, а агентов он настроит сам из заготовленных инструкций или купит отдельно. Для меня это в целом новый взгляд на мир!

Было:

Стало:

P.S. Эта статья избегает довольно многие проблемы, как минимум самая важная из них - отдавать на out-source заполнение источников довольно опасно и злоумышленник может попробовать накидать тонну треш контента или чего похуже. Эта проблема требует отдельного решения, но если проект сделан “для семьи” то ничего страшного в этом нет.

Еще немаловажным считаю подсветить проблему памяти: она в общем-то никак не решена и входной точкой поиска все равно выступает семантический поиск. Больше всего последнее время я пытаюсь исследовать ассоциативную память и то, как можно прикрутить ее к текущим моделям, но пока задача выглядит очень сложной и достойных результатов у меня нет. Эта статья - рассказать про мой опыт оптимизировать проблему плоского поиска на одной конкретной задаче. В любом случае искренне благодарен за то, что дочитали до этого момента!