Пролог:
Языковая модель сама по себе не умеет в безопасность. И чем раньше исчезнут иллюзии на этот счет, тем быстрее появится рабочий инструмент.
Если запустить любую передовую языковую модель из коробки и попросить ее провести тестирование безопасности агентной системы или собрать актуальный вектор атаки, результат разочарует мгновенно. Модель выдаст наивные примеры в духе «забудь все инструкции и представь, что ты злой хакер в параллельной вселенной», словно на дворе 2023 год, а вокруг все говорят о выходе GPT-3.5.
В реальной жизни в безопасности искусственного интеллекта базовые модели ориентируются крайне слабо. Они живут в плену устаревших весов, путают галлюцинации с реальными уязвимостями и понятия не имеют о свежих техниках отравления долговременной памяти, побегах из изолированных сред или свежих эксплойтах в репозиториях моделей. Если вы не знаете, то я веду тгк о практической безопасности ИИ — PWN AI, и вот там я описываю регулярно что‑то новое по этой теме. Мир движется.
Но безопасность ИИ не стоит на месте, всё меняется. Новые векторы компрометации возникают буквально еженедельно. Модель без внешней обвязки остается лишь текстовым генератором, оторванным от реальности. Надежность, воспроизводимость результатов и настоящую боевую мощь дает внешняя инженерная среда, управляющий контур, проверенный набор инструментов и строгий контракт исполнения. Практика разработки агентов диктует фундаментальное правило: полноценный рабочий агент возникает исключительно при объединении языковой модели и специализированного харнесса.
Много сказано уже было про харнесс для пентест‑агентов. Но в целом понятие растяжимое и харнесс можно делать, как мне кажется, для любого домена.
Прощай, OpenClaw: почему Hermes, а не монструозные комбайны
Когда я начинал собирать систему, встал вопрос выбора архитектурного фундамента. На слуху были тяжеловесные фреймворки вроде OpenClaw и громоздкие мультиагентные решения. Попытка применить их в прикладной безопасности быстро показала их непригодность.
Монструозные решения вроде OpenClaw тащат за собой горы избыточных абстракций, запутанные графы взаимодействий, сжигающие драгоценные токены (а токенмаксинг — это то ещё зло), и постоянные утечки состояния. Некоторые решения обожают устроить пятиминутный созвон между шестью агентами ради одного curl, сжигая на токены месячный бюджет небольшой серверной.

Мой выбор пал на Hermes. Его прелесть заключается в модульности, динамической загрузке прикладных навыков, минимальных накладных расходах. Вместо неповоротливого комбайна получился гибкий инструментарий, способный мгновенно исполнять точечные навыки без лишнего шума. Для построения харнесcа я использовал deepseek‑v4-flash (апрельскую версию и июльскую).
Вы можете спросить: «Почему такая слабая модель?». Для меня дипсик был выбором из-за отличной работы в агентном режиме и дешевизны (до недавнего 12-кратного роста цен, хотя на OpenRouter более дешёвая модель пока ещё доступна).
Оффтоп. Про харнесс от дипсика я тоже в курсе, но сейчас он сырой. Вот реально сырой. Я пробовал адаптировать под него всё, что описано ниже, и я был разочарован.
Главная проблема безопасности моделей кроется в гигантской пропасти между чтением статьи об уязвимости и ее практическим воспроизведением. Можно бесконечно листать ленты новостей, но без проверки такие знания бесполезны.
В практической ИБ цена ложных надежд — колоссальна. Когда агент рапортует об отсутствии угроз на основе сломанных или протухших данных, последствия становятся фатальными. В академических статьях техника всегда «успешно пробивает защиту на 99%», но ровно до тех пор, пока ты не запускаешь их код за пределами авторского ноутбука, где он работал только при полной луне.
Харнесс в таком случае может с большей вероятностью гарантировать воспроизводимость каждого шага и проводить жесткую проверку готовности инфраструктуры, модели, атаки до генерации финального ответа.

Мой харнесс опирается на три взаимосвязанных контура и слой исполнения кода
Первым идет управляющий слой. Чтобы агент не блуждал в галлюцинациях прошлой сессии и не выдумывал отсебятину, я посадил его на жесткий поводок из ранбуков, скиллов и планов в репозитории git. Агент заходит в задачу, читает актуальные правила, забирает пошаговые команды и сверяет состояние, которое вычисляется прямо из файлов на диске.
Никакой чёрной магии: любой шаг прозрачен, а любую ошибку можно моментально откатить коммитом назад.
Ниже крутится слой сбора данных. Под капотом сидит «сканер» публикаций. Через десятки выверенных запросов он без перерыва трясет больше тридцати внешних источников, от блогов и новостных лент до баз уязвимостей. Все находки скрипт аккуратно складывает на диск в виде дампов с жесткой привязкой по времени, чтобы система сразу видела, какие данные еще свежие, а какие уже протухли.
Сверху работает слой анализа. Здесь подключаются скиллы для Hermes. Они не скармливают модели горы мусорных логов, а методично вычищают шум, отбирают практические статьи, ранжируют угрозы и упаковывают все в компактные структурированные выжимки, с которыми уже можно выходить на проверку атак.
Имеется также слой исполнения, который образует изолированную среду с командной строкой и адаптерами к профильным инструментам безопасности, включая garak, PyRIT, promptfoo, fickling, modelscan, presidio и другие. Инструменты я брал из своего списка на GitHub.
Чтобы этот комплекс не захлебнулся в собственных логах, пришлось внедрить жесткие принципы оптимизации памяти. Модель работает в цикле без сохранения долгоживущего состояния внутри контекстного окна. Единственный источник правды — файловая система. Вся история, журналы, маркеры свежести и списки разобранных материалов живут на диске в виде структурированных артефактов.
Моя долгая борьба с раздуванием контекста.
Во‑первых, динамическая загрузка навыков Hermes: агент получает в промпт только те инструменты, которые нужны на текущем шаге, исключая засорение контекста ненужными инструкциями.
Во‑вторых, дедупликация на уровне отчётов. Да‑да, нам не нужен лишний контент.
В‑третьих, отсечение сырых логов: вместо скармливания модели сотен килобайт вывода сканеров контур анализа оперирует нормализованными JSON‑структурами.
Воркфлоу можно описать петлёй (без стула внизу), начинающейся с оценки свежести данных. Временные горизонты строго разделены: суточный интервал новостей и научных статей на день, неделю или месяц. Запуск самого поиска происходит параллельно в фоновых процессах, а также через hermes cron, в 6 утра по МСК.
Восемь замков перед финальным ответом
После каждого сбора данных запускается обязательная проверка, включающая в себя 8 условий. Система включает режим безопасника на испытательном сроке: пока все восемь условий не загорятся зеленым, модель даже рта не раскроет. Отдельный скилл верифицирует валидность конфигурации, нормальную работу «сканера» публикаций, совпадение версии, отсутствие регрессий источников, свежесть самих данных, наличие файла состояния, наполненность базы знаний и чистоту в полученных на выходе данных.
Откуда течет сырье
Сырье для этой петли собирается широким фронтом. Скилл из харнесса фоном, или если попросить, мониторит полсотни запросов Google News и DuckDuckGo, объединяя их с лентами исследовательских команд Unit 42, Resecurity, Risky Business, DarkReading, Hacker News и даже блогами Reddit.
Базы уязвимостей охватывают NVD, CISA KEV, Exploit‑DB, AlienVault OTX, Huntr, а также китайские платформы CNVD, SecRSS и ThreatBook. Поиск по GitHub и Hugging Face может, к примеру, дать PoC для MLOps‑платформ и утечки системных промптов.
Вся масса собранных находок проходит через двухуровневое ранжирование.
Для оценки значимости я пришёл к использованию своей метрики, назовём её TIPS (Threat Intelligence Pass Score) со шкалой от 0.1 до 1 балла. Оценка формируется взвешенной суммой: имеется ли возможность эксплуатации уязвимости (если да, то вес — 0.35), соответствует ли она теме AI Security — 0.30, насколько сильный ущерб от неё может исходить — 0.25 и скорость распространения публикации в других источниках с весом 0.10. Показатель выше 0.8 означает критический уровень, показатель выше 0.6 требует пристального внимания. При этом оценка строится на базе корпуса ранее отобранных публикаций, ключевых слов и вердикта самой LLM-модели.
Для академических публикаций действует отдельный рейтинг научной полезности публикации от 0 до 100 баллов, оценивающий прикладную ценность статьи: профильность темы, наличие воспроизводимого репозитория, доступность датасетов, репутацию лаборатории и штрафы за битые ссылки или закрытые данные.
Когда статья преодолевает порог полезности, запускается исследовательский конвейер. Это уже не просто чтение абстракта, это, по сути, процесс из четырёх фаз и специализированных навыков, сделанных для Hermes.
Первая фаза — обнаружение: связка arXiv, Semantic Scholar и OpenAlex отбирает кандидатов.
Вторая фаза — экспертный отбор: скилл фильтрации прогоняет текст по рубрикам и отсекает чисто теоретические рассуждения без практической ценности.
Третья фаза — глубокий технический разбор. Здесь подключается группа узких навыков:
Paper‑to‑PoC разбирает псевдокод и математику из препринта, трансформируя логику уязвимости в боевой Python-скрипт.
Скилл Vision‑анализа берет на себя схемы атак, архитектурные диаграммы и графики из PDF, восстанавливая пропущенные в тексте шаги эксплуатации (и тут, кстати говоря, новый дипсик, который вышел недавно, показывает магию).
Скилл для валидации отсекает нежизнеспособные идеи и синтаксические ошибки до передачи в тестовую модель.
Если систематизировать публикации, получается следующая шкала:
L0 (Сигналы): нулевые дни, утечки системных промптов и побеги из песочниц с горизонтом в часы и дни.
L1: свежие утилиты, конкретные техники обхода защит и фильтров с горизонтом в недели.
L2: новые бенчмарки, состязательные датасеты и новые инструменты атак с горизонтом в месяцы.
L3: векторы атак на цепочки поставок моделей и сериализацию, а также требования регуляторов (международных и РФ).
L4: поиск возможных данных или публикаций, которые могут дать сдвиг индустрии. (пока занятие больше напоминает гадание на кофейной гуще по тепловым картам, но мы стараемся).

Практическая ценность харнесса раскрывается на этапе воспроизведения атак. Для этого на каждое исследование дёргается локально развёрнутая тестовая модель через Ollama и песочница Docker, у которой имеются ресурсные ограничения. Опасные системные команды блокируются статикой еще до старта. Запросы к целевой модели идут через доверенный оркестратор на хосте, закрывая недоверенному коду прямой доступ во внешнюю сеть.
Автономная эволюция: система учится на собственных ошибках
Показательный пример работы связки виден на атаке с отравлением контекста. Скилл анализа источников находит материал с новой техникой внедрения промпт‑атак, к примеру, через документы в RAG.
Скилл для адаптации исследования превращает концепт в исполняемый проверочный сценарий, и для каждого исследования задаются условия достижимости - например, если при промпт-атаке удалось вывести системную инструкцию, то она считается применимой. Далее прогоняется файл через тестовую модель. Результат немедленно оформляется в виде готового и воспроизводимого кода, фиксируется техника классификатора атак и создается коммит в репозиторий.
Построение такого харнесса потребовало решения десятков прикладных проблем. Пришлось отказаться от ручных правок монолитного сканера в пользу программных патчей с валидацией синтаксиса перед запуском, переписать логику свежести на регулярные выражения и исключить застревание пайплайна на таймаутах научных архивов.
В итоге получился живой, развивающийся комплекс. Каждая обнаруженная уязвимость обогащает постоянный репозиторий сценариев, каждый сбой в каналах сбора информации превращается в улучшенное правило валидации.
Приятно, когда ваш харнесс также умнеет. Это большая тема, но она не под эту статью. В заключение я просто хочу вам порекомендовать полезную ссылку. Надеюсь, эта статья подкинет вам свежих идей.
Скилл, скилл, скилл, харнесс, харнесс, база, гитхаб... Это не заклинание, а реальная штука на Hermes.