3,583 papers
arXiv:2610.05382 77 4 окт. 2026 г. FREE

Harness-Search: три роли вместо одного агента для долгого поиска — одна роль ищет, вторая ведёт записи, третья не даёт остановиться раньше времени

КЛЮЧЕВАЯ СУТЬ
Проблема: агент в долгом поиске сам решает, куда идти, что запомнить и когда хватит. Он ходит по кругу, теряет найденное и останавливается с дырявым ответом. Метод Harness-Search позволяет вести многошаговый поиск (10+ ходов), где каждый следующий вопрос зависит от найденного, и не получать на выходе пересказ новостей без ключевых звеньев. Фишка: агент не может сказать «хватит», он может только предложить остановиться. Аудитор пробует собрать ответ из отобранных источников, и если звена нет, поиск продолжается с названным пробелом как новой целью.
Адаптировать под запрос
⚡

TL;DR

Harness-Search — это схема, где долгий поиск информации ведут не одним агентом, а тремя ролями с чёткими правами. Первая роль предлагает действия: искать, читать, сменить направление, отобрать находки, закончить. Вторая единственная имеет право писать в «рабочую память»: проверяет предложения и фиксирует отобранные источники. Третья принимает решение об остановке. Агент не может просто сказать «хватит». Он предлагает остановиться, а аудитор пробует собрать из отобранных фактов ответ и проверяет, хватает ли доказательств.

Главная боль: одиночный агент на длинной дистанции «плывёт». Он по кругу ищет в одном и том же направлении (читает списки лауреатов, хотя не хватает связи «кто был научным руководителем»). Нужный документ он уже находил, но тот утонул в истории и не попал в финальный ответ. Или агент заканчивает рано, потому что ему кажется, что всё есть, хотя факты не складываются в цепочку. Причина в том, что одна модель одновременно решает, куда идти, что запомнить и когда хватит. Ошибка в одном решении тянет за собой остальные.

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

🔬

Схема метода

ЦИКЛ (до лимита ходов):

РОЛЬ 1 — Поисковик (Retrieval Policy): предлагает ОДНО действие
   search | read | redirect | curate | end

РОЛЬ 2 — Хранитель памяти (Memory Operator): проверяет и записывает
   • search/read  → убирает дубли, оценивает релевантность каждого документа
   • redirect     → формулирует новое направление, старое пишет в журнал
   • curate       → отклоняет неверные ID, дубли, превышение лимита
   (сам ничего не ищет и не решает, когда закончить)

РОЛЬ 3 — Аудитор (Summary Auditor): вызывается ТОЛЬКО когда поисковик сказал end
   → пробует собрать ответ из отобранных доказательств
   → проверяет: полнота / обоснованность / связность
   → answer_ready → конец
   → search_more  → называет пробел, поисковику разрешён только redirect

ЖЁСТКИЕ ПРАВИЛА ХОДА:
   • после 5 поисков подряд → только curate
   • после curate → только redirect или end
   • после search_more → только redirect

Рабочая память общая: все найденные документы, отобранные доказательства (лимит по числу), текущее направление поиска и журнал (что исследовано, что не сработало, что не закрыто).

🚀

Пример применения

Задача: Вы готовите разбор для подкаста: как Александр Говор выкупил российский бизнес McDonald's и превратил его во «Вкусно — и точка». Нужна цепочка проверенных фактов: кто и когда объявил уход, на каких условиях прошла сделка, что досталось покупателю, кто сейчас владеет брендом. Задача многошаговая: каждый следующий вопрос зависит от найденного. Обычный агент быстро набирает пересказы новостей и закругляется, не закрыв юридическую сторону сделки.

Промпт:

Ты ведёшь долгий поиск в режиме трёх ролей. Тема: «Как Александр Говор выкупил российский бизнес McDonald's: условия сделки, что перешло покупателю, кто владеет брендом сейчас».

Роли (в каждом ходе пиши, какая роль говорит):

[ПОИСКОВИК] Предлагает ровно одно действие: search, read, redirect, curate или end.
[ХРАНИТЕЛЬ] Единственный, кто меняет память. Проверяет предложение поисковика и записывает результат. Сам ничего не ищет и не решает, когда закончить.
[АУДИТОР] Вызывается только после end. Пробует написать ответ строго по отобранным доказательствам и проверяет полноту, обоснованность, связность.

Память (показывай её в конце каждого хода):
- Найдено: список источников с короткой пометкой, о чём каждый
- Отобрано: до 15 источников, на которых будет держаться ответ
- Направление: что ищем прямо сейчас и зачем
- Журнал: что уже исследовано, что не дало результата, что осталось неясным

Правила хода:
- После 5 поисков подряд следующее действие только curate.
- После curate допустимы только redirect или end.
- end — это предложение, а не остановка. Решает аудитор.
- Если аудитор говорит search_more, он называет пробел, и следующее действие поисковика только redirect на этот пробел.

Начинай.

Результат: Модель будет вести поиск по ходам с пометками ролей. Видны серии поисков, затем отбор источников и смена направления (например, с общих новостей к условиям сделки). После предложения закончить аудитор пробует собрать ответ. Если звена не хватает (скажем, нет подтверждения условий передачи бренда), он вернёт search_more с названием пробела, и поиск продолжится. Финал: ответ только по отобранным источникам плюс журнал того, что искали и что осталось неподтверждённым.

🧠

Почему это работает

Слабость. Когда одна модель ведёт поиск, все решения лежат в одной истории. Ей легко увязнуть в знакомом направлении и потерять уже найденное. Остановиться она тоже может слишком рано: «в целом всё понятно». Оценивать собственные находки сложно: модель судит о достаточности тем же умом, который эти находки собирал.

Сильная сторона. LLM хорошо проверяет готовый текст и хорошо сводит факты в ответ. Если её попросить написать ответ по конкретным доказательствам, провалы видны сразу: не хватает звена, вывод не опирается на источник. Модель также неплохо следует жёстким правилам хода: «после 5 поисков только отбор».

Как метод это использует. Остановка превращается в проверку: чтобы закончить, нужно реально написать ответ из отобранного и показать, что он держится на источниках. Пробел, найденный при такой сборке, становится задачей следующего поиска. Принудительный отбор каждые несколько шагов не даёт тонуть находкам, а принудительная смена направления выбивает из колеи. Запись в память отделена от предложений, поэтому домыслы поисковика не попадают в «доверенные» факты автоматически.

Рычаги управления: - Число поисков до обязательного отбора (в исследовании 5) → меньше для запутанных тем, больше для простых. - Лимит отобранных источников (60 в исследовании) → ограничьте под размер итогового ответа, иначе в «доказательства» попадёт всё подряд. - Лимит ходов (40) → защита от бесконечного поиска и от расхода токенов. - Критерии аудита (полнота, обоснованность, связность) → добавьте свой: «каждая цифра с датой», «два независимых источника на ключевой факт». - Журнал → проверяйте его, чтобы увидеть, где агент ходил по кругу.

📋

Шаблон промпта


Ты ведёшь долгий поиск информации по теме: {тема}.
Работаешь в трёх ролях. Перед каждой репликой пиши название роли в квадратных скобках.



[ПОИСКОВИК]
  Предлагает ровно одно действие за ход:
  search(запрос) | read(источник) | redirect | curate(добавить/убрать источники) | end
  Сам память не меняет — только предлагает.

[ХРАНИТЕЛЬ]
  Единственный, кто меняет рабочую память.
  - после search/read: убирает дубли, к каждому новому источнику пишет, чем он полезен для вопроса «{вопрос}»
  - после redirect: формулирует новое направление поиска, старое и причину смены записывает в Журнал
  - после curate: отклоняет несуществующие источники, дубли и всё, что выходит за лимит {лимит_источников}
  Сам ничего не ищет и не решает, когда закончить.

[АУДИТОР]
  Вызывается только после действия end.
  1. Пробует написать ответ на вопрос строго по списку «Отобрано».
  2. Проверяет: полнота (есть ли всё нужное для ответа?), обоснованность (каждое утверждение опирается на источник?), связность (факты складываются в одну цепочку?).
  3. Возвращает одно из двух:
     answer_ready — остановку принимаю
     search_more — остановку отклоняю; называет, какого факта или какой связи не хватает



Показывай в конце каждого хода:
- Найдено: все встреченные источники с пометкой, о чём они
- Отобрано: до {лимит_источников} источников, на которых держится ответ
- Направление: что ищем сейчас и зачем
- Журнал: что исследовано, что не сработало, что остаётся неясным



- Максимум {лимит_ходов} ходов.
- После {N} поисков подряд (search/read) следующее действие — только curate.
- После curate допустимы только redirect или end.
- end — это предложение остановиться, а не остановка. Решает [АУДИТОР].
- После search_more следующее действие [ПОИСКОВИКА] — только redirect на названный пробел.



Финал: ответ на вопрос только по списку «Отобрано», с указанием источника у каждого утверждения; отдельно — что не удалось подтвердить.


Начинай.

Что подставлять: {тема} — широкое описание задачи; {вопрос} — конкретный вопрос, на который нужно ответить; {лимит_источников} — например, 15; {N} — 5 для сложных тем, 8–10 для простых; {лимит_ходов} — например, 30–40.

🚀 Быстрый старт — вставь в чат (с включённым веб-поиском):

Вот шаблон Harness-Search (три роли: поисковик, хранитель памяти, аудитор). Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какой именно вопрос нужно закрыть, сколько источников нужно в итоге, какие критерии достаточности для вас важны (даты, два источника, цифры) и сколько ходов не жалко. Это нужно, потому что аудитор работает по критериям достаточности. Без них он будет пропускать слабые ответы.

⚠️

Ограничения

⚠️ Одиночный агент с описанием ролей почти не хуже: авторы сравнили полную систему с одним агентом, у которого три роли описаны в промпте. Разрыв небольшой, хотя и заметный. Шаблон выше — именно такая «облегчённая» версия, а не полная система из отдельных вызовов с жёсткими правами записи.

⚠️ Нужен код для полной версии: настоящее разделение прав (только хранитель пишет в память, действия ограничиваются программно) требует харнеса. В чате правила держатся честным словом модели, и она может их нарушать.

⚠️ Дорого по токенам: метод тратит больше токенов, чем простые поисковые агенты. Окупается на запутанных многошаговых вопросах, на простых вопросах он лишний.

⚠️ Не везде лучше обученных моделей: на классических вопросах «ответь по двум-трём статьям» с небольшой моделью метод лишь сравним с моделями, специально обученными на поиск. Его сила в длинных поисках, а не в коротких.

⚠️ Проверено на поиске по корпусам документов: эксперименты шли на базах документов и бенчмарках. Как поведёт себя схема на открытом вебе с шумными источниками, в статье не проверялось.

⚠️ Аудитор той же модели: аудит делает та же модель, что ищет. Она может принять слабые доказательства за достаточные. Критерии достаточности нужно задавать явно.

🔍

Как исследовали

Команда Xiaohongshu и Шаньдунского университета взяла семь бенчмарков на долгий поиск. Четыре из них требуют вернуть набор документов с доказательствами, три — дать ответ на многошаговый вопрос. Все конкурирующие агентные системы запускали на одной и той же небольшой модели GPT-OSS-20B. Так сравнивали устройство системы, а не силу модели. В ключевых метриках система выиграла у сильнейшей конкурирующей схемы на каждом бенчмарке. Те же роли потом поставили на Qwen, Gemini и GPT, и результаты выросли дальше.

Самое поучительное — абляции (убирают по одному куску и смотрят, что сломается). Без хранителя памяти качество падает сильнее всего, на 13 пунктов. Без аудитора остановки просадка около 6 пунктов, без оценщика релевантности и планировщика направления примерно по 5. Значит, самое ценное здесь — дисциплина записи доказательств, а не «умный поиск». Отдельно проверили, нельзя ли получить то же в одном агенте: структурированные инструменты и промпт с тремя ролями дали прирост меньше, чем полная система, но не нулевой. Идею можно взять и в промпт, но потеряется часть эффекта. Анализ по ходам показал, что у обычных агентов покрытие доказательств упирается в потолок после первых шагов. Harness-Search продолжает находить новое до конца и меньше повторяет одни и те же запросы. Цена этого — больше токенов. Дополнительное дообучение на траекториях улучшило результаты, но это уже не про промптинг.

💡

Адаптации и экстраполяции

💡 Адаптация для агента с инструкциями (CLAUDE.md / системный промпт): переносить всю схему не обязательно. Достаточно правила «остановка = проверка».

Перед тем как завершить задачу и написать итог:
1. Составь черновик итогового ответа ТОЛЬКО из того, что ты подтвердил (файлы, логи, найденные источники).
2. Проверь три вещи: полнота (всё, что просили, закрыто?), обоснованность (у каждого утверждения есть источник?), связность (части не противоречат друг другу?).
3. Если не хватает факта или связи — назови, чего именно, вернись и закрой это одним целевым шагом. Только потом заканчивай.

Это моя адаптация принципа аудита, не точный промпт авторов.

🔧 Техника: аудитор в отдельном чате или субагенте → свежий взгляд. Когда поисковик говорит «готово», отдайте аудитору (новый чат, субагент в Claude Code) только отобранные источники и вопрос. Аудитор не видит всей истории поиска, поэтому не поддаётся «я же уже всё нашёл». Авторы использовали одну модель во всех ролях, так что отдельный контекст — моё предложение, его надо проверять.

🔗

Ресурсы

  • Harness-Search: Guiding Long-Horizon Search through Multi-Agent Coordination — Shanyong Wang, Zhenwen Ji, Lei Jin, Yining Zhao, Yicheng Qian, Chengqiang Lu, Yi Wu, Yao Hu, Lizhen Cui, Yanyu Xu. Xiaohongshu Inc.; Joint SDU-NTU Centre for Artificial Intelligence Research (Shandong University); University of Illinois at Urbana-Champaign.
  • Код: https://github.com/SwimmingWang/Harness-Search
  • Промпты и алгоритм — в приложениях A и E исследования (в доступной мне версии текста их нет, шаблон выше собран по описанию метода).
  • Связанные работы: ReAct (Yao et al., 2022), Harness-1 (Jiang et al., 2026), MemHarness (Wu et al., 2026).

📋 Дайджест исследования

Ключевая суть

Проблема: агент в долгом поиске сам решает, куда идти, что запомнить и когда хватит. Он ходит по кругу, теряет найденное и останавливается с дырявым ответом. Метод Harness-Search позволяет вести многошаговый поиск (10+ ходов), где каждый следующий вопрос зависит от найденного, и не получать на выходе пересказ новостей без ключевых звеньев. Фишка: агент не может сказать «хватит», он может только предложить остановиться. Аудитор пробует собрать ответ из отобранных источников, и если звена нет, поиск продолжается с названным пробелом как новой целью.

Принцип работы

Работа идёт по кругу с тремя ролями. Поисковик предлагает одно действие за ход: искать, читать, сменить направление, отобрать находки или закончить. Хранитель памяти проверяет предложение и единственный пишет в рабочую память. Аудитор просыпается только после «закончить». Он пытается написать ответ строго по отобранному и проверяет три вещи: полноту, обоснованность, связность. Ещё есть жёсткие правила хода. После 5 поисков подряд можно только отобрать находки. После отбора можно только сменить направление или закончить. После отказа аудитора можно только сменить направление на названный пробел. Тот, кто ищет, не решает, что считать фактом, и не решает, когда хватит. Это как редакция: репортёр приносит материал, выпускающий вносит в полосу, а корректор не пропустит текст, пока в нём есть дыры.

Почему работает

Одна модель судит о своих находках тем же умом, который их собрал. Ей кажется, что «в целом всё понятно». Зато LLM хорошо пишет ответ по готовым доказательствам. Если звена не хватает, это видно сразу: вывод не на что опереть. Остановка превращается в экзамен: хочешь закончить, напиши ответ из отобранного. Пробел, найденный на экзамене, становится задачей следующего поиска. Принудительный отбор каждые 5 поисков не даёт находкам утонуть в истории. Принудительная смена направления выбивает из колеи, когда агент в десятый раз читает списки лауреатов вместо нужной связи. Запись в память отделена от предложений, поэтому домыслы поисковика не становятся «доверенными» фактами сами. Честно про масштаб. В статье нет громкой цифры вроде «+50%». Полная система обгоняет одиночного агента с теми же инструментами, а разрыв с облегчённой версией (три роли в одном промпте) небольшой, но заметный.

Когда применять

Исследовательский поиск → цепочки фактов, где каждый шаг зависит от предыдущего (кто, когда, на каких условиях, кто владеет сейчас), особенно когда обычный агент быстро набирает пересказы и закругляется. Подходит для разборов, проверки фактов, подготовки материалов с источниками. Не подходит для простых вопросов вроде «ответь по двум-трём статьям»: роли жгут токены зря. В чате правила держатся на честном слове модели, и она может их нарушать. Жёсткое разделение прав требует кода. Аудитор той же модели может принять слабые доказательства за достаточные, поэтому критерии достаточности задавайте явно. На открытом вебе с шумными источниками схему не проверяли.

Мини-рецепт

1. Сформулируй вопрос узко: не «расскажи про сделку», а «кто, когда, на каких условиях, что перешло, кто владеет сейчас».
2. Раздай роли: <роль>ПОИСКОВИК предлагает одно действие, <роль>ХРАНИТЕЛЬ один меняет память, <роль>АУДИТОР просыпается только после «закончить». Пусть модель пишет название роли перед каждой репликой.
3. Заведи память: найдено, отобрано (до 15 источников), текущее направление, журнал. Пусть показывает её в конце каждого хода.
4. Поставь жёсткие правила: после 5 поисков подряд только отбор, после отбора только смена направления или конец, после отказа аудитора только смена направления на пробел.
5. Задай критерии аудита: кроме полноты, обоснованности и связности добавь свои, например «каждая цифра с датой» или «два независимых источника на ключевой факт».
6. Задай лимит ходов: 30-40, чтобы не сжечь все токены.
7. Читай журнал: по нему видно, где агент ходил по кругу и что осталось неподтверждённым.

Примеры

[ПЛОХО] : Найди всё про выкуп российского бизнеса McDonald's Александром Говором и напиши итог
[ХОРОШО] : Ты ведёшь долгий поиск в трёх ролях. Тема: как Александр Говор выкупил российский бизнес McDonald's, условия сделки, что перешло покупателю, кто владеет брендом сейчас. Перед каждой репликой пиши роль в скобках. [ПОИСКОВИК] предлагает ровно одно действие: искать, читать, сменить направление, отобрать или закончить. [ХРАНИТЕЛЬ] один меняет память: убирает дубли, к каждому источнику пишет, чем он полезен. [АУДИТОР] вызывается только после «закончить», пробует написать ответ строго по отобранным источникам и проверяет полноту, обоснованность, связность. Правила: после 5 поисков подряд только отбор. После отбора только смена направления или конец. Если аудитор говорит «ищи дальше», он называет пробел, и следующий ход только смена направления на него. В конце каждого хода показывай память: найдено, отобрано (до 15), направление, журнал. Начинай. [ЧТО ПОЛУЧИШЬ]: серии поисков, затем отбор и смена курса, например с общих новостей к условиям сделки. Если аудитор не нашёл подтверждения условий передачи бренда, он вернёт пробел и поиск продолжится. Финал: ответ только по отобранным источникам плюс список того, что подтвердить не удалось.
Источник: Harness-Search: Guiding Long-Horizon Search through Multi-Agent Coordination
ArXiv ID: 2610.05382 | Сгенерировано: 2026-10-06 06:00

Проблемы LLM

ПроблемаСутьКак обойти
В долгом поиске модель «плывёт»: ходит по кругу, теряет найденное, останавливается раноЗадача многошаговая, каждый следующий вопрос зависит от найденного. Модель долго копает в одном направлении, хотя не хватает другого звена. Нужный источник она уже находила, но он утонул в длинной истории. Или она решает «всё понятно» и заканчивает, хотя факты не складываются в цепочку. Причина: одна история несёт сразу три решения: куда идти, что запомнить, когда хватит. Ошибка в одном тянет остальные. Это касается любых долгих задач: исследование рынка, проверка фактов, подготовка разбораНе давай модели самой решать, что она закончила. Используй два метода ниже: проверку остановки через пробную сборку ответа и принудительный отбор находок каждые несколько шагов

Методы

МетодСуть
Остановка через пробную сборку ответа — не даёт закончить раньше времениЗапрети модели просто говорить «готово». Пусть она только предлагает закончить. Дальше включается проверка: модель пишет ответ строго по списку отобранных источников. Затем проверяет три вещи. Полнота: есть всё нужное для ответа? Обоснованность: каждое утверждение опирается на источник? Связность: факты складываются в одну цепочку? Если всё да, поиск завершён. Если нет, модель называет, какого факта или связи не хватает. Этот пробел становится целью следующего поиска. Пример запроса: end — это предложение, а не остановка. Перед концом напиши ответ только по списку «Отобрано». Если не хватает звена, назови его и ищи именно его. Почему работает: модель плохо судит «хватит ли мне», потому что оценивает тем же умом, который собирал находки. Зато она хорошо сводит факты в текст. При сборке дыры видны сразу: звено отсутствует, вывод висит без источника. Когда да: многошаговые вопросы, где факты зависят друг от друга. Когда нет: простые вопросы на один-два источника, это лишние токены. Важно: проверяет та же модель, она может принять слабое за достаточное. Задай свои критерии: «каждая цифра с датой», «два независимых источника на ключевой факт»
Принудительный отбор каждые N шагов — находки не тонутВведи жёсткое правило хода: после N поисков подряд следующее действие только отбор. Модель выбирает лучшие источники в короткий список с лимитом (например, до 15). После отбора разрешены два действия: сменить направление или предложить закончить. Пример: После 5 поисков подряд — только curate. После curate — только redirect или end. Почему работает: в длинной истории нужное теряется. Короткий список с лимитом всегда на виду. Лимит заставляет выбирать, а не копить всё подряд. Принудительная смена направления выбивает модель из знакомой колеи. Модель неплохо следует таким простым жёстким правилам. Настройка: N = 5 для запутанных тем, 8–10 для простых. Лимит списка ставь под размер итогового ответа. Добавь лимит ходов (30–40), чтобы не сжечь токены. Слабое место: в чате правило держится на «честном слове» модели, она может его нарушить. Жёстко его обеспечит только код, который ограничивает допустимые действия. Проверяй журнал: он покажет, где модель ходила по кругу
📖 Простыми словами

Harness-Search: Guiding Long-Horizon Search through Multi-AgentCoordination

arXiv: 2610.05382

Обычные LLM быстро сливаются на долгих расследованиях, потому что страдают банальной ленью. Когда один агент и ищет инфу, и сам себя оценивает, он мгновенно забивает контекст мусором и бросает задачу со словами «ну, в целом понятно». Архитектура Harness-Search лечит эту фигню через жесткое разделение властей: один предлагает шаги, второй ведет записи, а третий проверяет факты на прочность.

Это как если бы опер сам искал улики, сам писал отчет и сам выносил судебный приговор. Формально дело раскрыто, но в реальности он просто схватил первые попавшиеся слухи, решил, что и так сойдет, и свалил на обед. В расследованиях такой подход — полный провал, потому что исполнителю нельзя давать право самому закрывать задачу.

Вся схема метода держится на трех ролях с изолированными правами. Генератор действий только предлагает, куда копать и что прочесть. Хранитель памяти — единственный фильтр, который решает, какие данные достойны фиксации, отсекая информационный шум. А внешний аудитор единолично командует «стоп»: когда агент заявляет «я всё нашел», аудитор пытается собрать из заметок доказательную базу и пинком отправляет искать дальше, если фактов не хватает.

Авторы гоняли метод на запутанных кейсах вроде схемы выкупа McDonald’s, но принцип абсолютно универсален. Юридический комплаенс, глубокая конкурентная разведка, научный фактчекинг — везде, где поверхностный пересказ новостей означает слив бюджета. Обычный бот захлебнется на третьем шаге, а координация трех агентов спокойно докопается до сути.

Вывод простой: никогда не доверяй одной LLM проверять собственную работу — модель всегда себе подсуживает. Если нужен реальный ресерч, забудь про одиночные промпты. Только автономный аудит и жесткий контроль памяти, иначе вместо фактов получишь уверенную, но бесполезную лажу.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с