Чат
Инструменты harness
Что делает каждый инструмент harness, когда он запускается, что значат результаты и какие есть лимиты в чате, CLI, MCP и Research API.
Harness — это набор инструментов вокруг моделей. В чате модель сама решает, когда их вызвать, а вы видите каждый вызов с целью и длительностью. Результаты попадают к модели в маркерах со случайным id и помечены как недоверенный контент.
Серверные инструменты только читают: публичные страницы, поисковые индексы, наши зеркала и приложенные файлы. Ни один не сканирует, не зондирует и не шлёт payload на цель. Команды запускает только агент CLI, на вашей машине и с вашего подтверждения.
Когда чат предлагает каждый инструмент
| Инструмент | Предлагается, когда |
|---|---|
web_search, read_url | Включён Web |
darkweb_search | Включён Web и сообщение явно об этом просит |
cve_lookup, cve_search, advisory_lookup | Включён CVE |
kb_search, kb_read | Всегда. Выключателя нет |
file_list, file_read, file_search, binary_info, archive_list, disassemble | Приложен файл |
Выполнение останавливается на 12 шагах модели, 5 одновременных вызовах инструментов, 60 секундах на инструмент и 10 минутах всего. Результаты входят в диалог и тарифицируются как входные токены по цене модели.
Поиск в вебе
web_search(query, count?) принимает запрос до 400 символов и возвращает заголовки, URL и фрагменты страниц, 5 результатов по умолчанию и максимум 10. Результаты с NVD, cve.org, CISA, GitHub, Seclists, PortSwigger и OWASP идут первыми, одинаковые запросы кэшируются на 15 минут. Результат может быть неверным или устаревшим, поэтому откройте источник, прежде чем на него опираться.
Чтение страницы
read_url(url) возвращает текст одной публичной страницы. В чате открывает только URL, которые ввели вы или вернул поиск, CVE, advisory или база знаний. Ссылки внутри страницы и результаты .onion открыть нельзя.
Принимает http(s) на портах 80 и 443 и HTML, текст, JSON или XML, до 10 МБ и 15 секунд. Каждый адрес и редирект проверяются, соединение фиксируется на проверенном IP, robots.txt соблюдается. Отклоняет IP-адреса вместо имён, строки атак, пути к открытым файлам вроде /.git и /.env и больше 40 разных путей на одном хосте за 10 минут. URL с текстом из приложенного файла тоже отклоняется.
Поиск в даркнете
darkweb_search(query, max_results?, engines?) принимает запрос до 200 символов и возвращает до 30 записей. Без engines используются все индексы.
Чат предлагает этот инструмент только по явному запросу. В сообщении должно быть латиницей dark web, deep web, darknet, .onion, onion site, hidden service или Tor, либо это прямое продолжение такого хода. Названия группировки вымогателей или утечки недостаточно, такие вопросы идут в web_search. При выключенном Web инструмент тоже выключен.
Каждый результат — это запись поискового индекса: заголовок, URL .onion, фрагмент и индекс-источник. Harness читает страницы результатов индексов через Tor и никогда не открывает, не обходит и не скачивает страницы из списка. Считайте каждую запись непроверенной зацепкой, которая может быть враждебной.
Лимит — 5 поисков в минуту на пользователя. Спонсорские результаты отбрасываются. Фильтр безопасности отклоняет запросы и отбрасывает результаты о материалах с сексуальным насилием над детьми. Без маршрута Tor инструмент сообщает об этом и может использовать один индекс в открытой сети.
В MCP сам вызов darkweb_search считается явным запросом. В Research API и CLI маршрута к даркнету нет.
Данные CVE
cve_lookup(id) возвращает сводную запись: описание из NVD, оценку и вектор CVSS 3.1 или 4.0, CWE, затронутые CPE с версией исправления, если она есть в NVD, ссылки, оценку и перцентиль EPSS, статус в CISA KEV с датой добавления и использованием в атаках вымогателей. Для каждого источника видно, когда он получен. CVE без CVSS показывается как без оценки, ничего не домысливается. ID, которого нет в зеркале, один раз запрашивается у источников.
cve_search(query?, vendor?, kev?, min_cvss?, min_epss?) возвращает до 20 результатов, ранжированных по совпадению текста и EPSS. В NVD по ключевому слову идёт только когда зеркало ничего не нашло.
Advisories пакетов
advisory_lookup(name, ecosystem, version?) возвращает известные уязвимости из OSV, до 50. Сообщает то, что OSV указывает для этого имени и версии. Доказать, что уязвимый код достижим в вашей сборке, остаётся за вами. В MCP инструмент называется advisory_query.
База знаний
kb_search(query, domain?, source?, tool?) ищет в отобранной базе знаний, а kb_read(id, from?, limit?) открывает документ раздел за разделом. Домены: web, api, mobile, offensive, tools, cloud, ir и attack. Каждый результат несёт источник, лицензию и атрибуцию. Нишевой техники может не быть, тогда следующий шаг — поиск в вебе.
Файлы
Файловые инструменты читают то, что статический парсер извлёк из вложения. Ничего из загруженного не запускается, динамического анализа нет. Каждый файл разбирается в одноразовом контейнере gVisor без сети, с корнем только для чтения и без секретов. Файл сверх лимитов или сбой парсера завершаются статусом rejected с указанием причины.
| Инструмент | Возвращает |
|---|---|
file_list | Приложенные файлы со статусом, типом, размером и предупреждениями |
file_read(file_id, from?, limit?) | Извлечённый текст по фрагментам с указанием файла и строки |
file_search(query) | Фрагменты с вашими словами по всем вложениям |
binary_info(file_id) | SHA-256, размер, энтропию, а для ELF и PE ещё формат, точку входа, секции и импорты |
archive_list(file_id) | Оглавление архива |
disassemble(file_id) | Превью: первые 4 КБ файла как x86-64, максимум 200 инструкций |
Декомпилятора и графа потока нет. Архивы останавливаются на глубине 3, 10 000 записей, 2 ГБ в распакованном виде и степени сжатия 100:1. Текст ограничен 5 млн символов на файл. По изображениям только размеры. Предупреждение credentials_detected значит, что парсер нашёл шаблон ключа или токена. Типы файлов описаны в разделе Файлы в чате.
Где доступен каждый инструмент
| Возможность | Чат | CLI | MCP | Research API |
|---|---|---|---|---|
| Поиск в вебе | web_search | agent web_search | web_search | POST /v1/web/search |
| Чтение страницы | read_url | read_url | POST /v1/web/read | |
| Поиск в даркнете | darkweb_search | darkweb_search | ||
| Запись CVE | cve_lookup | notholy cve, agent cve_lookup | cve_lookup | GET /v1/cve/{id} |
| Поиск CVE | cve_search | notholy cve search | cve_search | GET /v1/cve/search |
| Advisories пакетов | advisory_lookup | advisory_query | POST /v1/advisories/query | |
| База знаний | kb_search, kb_read | notholy kb, agent kb_search | kb_search, kb_read | GET /v1/kb/search, GET /v1/kb/{id} |
| Анализ файлов | Файловые инструменты выше | notholy analyze | analyze_file | POST /v1/files |
| Локальные файлы и команды | agent read, grep, glob, edit, write, bash | |||
| Скоуп и лог engagement | notholy engage |
POST /v1/chat/completions, /v1/responses и /v1/messages — это голые эндпоинты моделей, инструментов harness в них нет. Модель получает только function tools, которые отправили вы, и запускает их ваш код. Чтобы использовать эти данные из своего кода, вызывайте Research API или MCP.