TL;DR
AgentReuse — механизм для LLM-ассистентов (типа Алисы, Siri), который кэширует планы выполнения задач и переиспользует их для похожих запросов. Когда ассистент получает задачу ("Забронируй билет Москва→Питер на завтра"), он сначала генерирует план из 5-7 шагов (узнать дату, проверить рейсы, сравнить цены, учесть предпочтения пользователя), потом выполняет. Генерация плана занимает 25-30 секунд — большую часть времени ответа. Если 30% запросов похожи, можно переиспользовать старые планы и сократить время на 93%.
Нельзя сравнивать тексты запросов напрямую. "Билет Москва→Питер завтра" и "Билет Казань→Сочи послезавтра" — разные тексты, но план одинаковый (города и даты — просто параметры). Если векторизовать и сравнить тексты как в GPTCache, получишь низкое сходство (разные слова) и упустишь возможность переиспользования. Если считать их схожими и вернуть старый ответ — пользователь получит билеты не в те города. Нужно переиспользовать ПЛАН, а не ответ, подставив новые параметры.
Решение в три шага: (1) Классифицировать намерение запроса ("Забронировать", "Найти", "Отправить"), (2) Извлечь параметры (города, даты) и удалить их из текста, (3) Сравнить остаток — "Забронируй билет из в на" высоко схож с самим собой. Если нашли похожий запрос в кэше — берём его план и подставляем новые параметры. Если не нашли — генерируем план и сохраняем в кэш.
Схема метода
ШАГ 1: Классификация намерения
Запрос → Intent Classification → Категория ("Забронировать", "Найти", "Отправить")
ШАГ 2: Извлечение параметров
Запрос → Slot Filling → Параметры (города, даты, имена)
"Билет Москва→Питер завтра" → {Москва, Питер, завтра}
ШАГ 3: Удаление параметров для сравнения
"Билет Москва→Питер завтра" → "Билет из в на"
ШАГ 4: Поиск похожего в кэше
Векторизация → Поиск в кэше по категории → Сходство ≥ 0.75?
ШАГ 5a: Если нашли
Взять план из кэша → Подставить новые параметры → Выполнить
ШАГ 5b: Если не нашли
Сгенерировать план через LLM → Сохранить в кэш → Выполнить
Все шаги автоматизированы через код/API — система для разработчиков агентов.
Пример применения
⚠️ Ограничения метода: AgentReuse — это инфраструктурное решение, требует модели для классификации, векторную базу, кэш. Читатель не может построить такую систему в чате. НО принцип "отдели структуру плана от параметров" применим вручную.
Задача: Ты регулярно готовишь разборы российских стартапов для инвестора. Каждый раз описываешь задачу с нуля: "Изучи AmoCRM", "Проанализируй GetCourse", "Разбери Unisender". Модель каждый раз генерирует новый план — тратишь время на повторы.
Промпт-шаблон (manual plan reuse):
Ты аналитик стартапов. Разбери {компанию} по структуре:
1. Позиционирование — кто клиенты, какую боль закрывает
2. Конкуренты — кто в той же нише, чем отличаются
3. Метрики — выручка, пользователи, динамика роста (если есть в открытых источниках)
4. Сильные стороны — что делает лучше конкурентов
5. Слабые стороны — где проигрывает, какие риски
6. Вывод — стоит ли инвестору смотреть
Компания: {название}
Фокус инвестора: {B2B SaaS, EdTech, FinTech и т.д.}
Результат:
Ты сохраняешь шаблон отдельно (в заметках, в Custom Instructions, в отдельном чате). Когда приходит новая задача — копируешь шаблон, подставляешь название компании, отправляешь. Модель не генерирует план заново — ты даёшь готовую структуру. Экономишь 10-15 секунд на каждый запрос + получаешь консистентные разборы (все по одной логике).
Для "Unisender" подставляешь {Unisender} и {Email-маркетинг}, для "GetCourse" — {GetCourse} и {EdTech платформы}. План один, данные разные.
Почему это работает
Слабость LLM: Модель каждый раз генерирует план с нуля, даже если задача похожа на предыдущую. Ты пишешь "Разбери компанию X", модель создаёт план. Через час пишешь "Разбери компанию Y" — модель снова создаёт план, хотя структура та же. Автогрессивная генерация долгая (25-30 секунд для плана из 7 шагов) — время тратится на воспроизведение того, что уже было.
Сильная сторона LLM: Модель отлично следует готовой структуре и подставляет данные в шаблон. Если дать план явно ("Сделай 1, 2, 3, подставь {X}"), модель выполнит быстро и точно. Ей не нужно думать "какие шаги сделать", только "какие данные подставить".
Как AgentReuse использует это: Разделяет структуру задачи (план) и данные (параметры). Для "Билет Москва→Питер завтра" и "Билет Казань→Сочи послезавтра" структура одна: (1) узнать дату, (2) найти рейсы из города A в город B, (3) сравнить цены, (4) учесть предпочтения пользователя, (5) рекомендовать. Параметры разные: {Москва, Питер, завтра} vs {Казань, Сочи, послезавтра}. Система сохраняет план первого запроса, при втором — берёт тот же план и подставляет новые параметры. Никакой генерации плана — только подстановка. 25 секунд → 0 секунд.
Рычаги управления (для manual reuse):
Детальность плана → Чем подробнее структура в шаблоне, тем консистентнее результаты, но тем жёстче рамки. Для исследовательских задач делай пункты шире ("Изучи рынок"), для рутинных — конкретнее ("Найди 5 конкурентов с выручкой >100M₽").
Гибкость параметров → Не все данные выносятся в {скобки}. Фиксированные части (всегда 5 конкурентов, всегда рубли) пиши явно. Изменяемые (название компании, ниша) — в параметры.
Категоризация задач → Группируй задачи по намерению: все "анализ компаний" — один шаблон, все "написать пост" — другой. Не пытайся сделать универсальный шаблон "для всего" — структура размоется.
Шаблон промпта
Это принцип ручного переиспользования планов, а не прямой перенос технической системы AgentReuse.
{Твоя роль и контекст}
Выполни задачу по структуре:
1. {Шаг 1 плана}
2. {Шаг 2 плана}
3. {Шаг 3 плана}
...
N. {Финальный шаг}
Входные данные:
- {Параметр 1}: {значение}
- {Параметр 2}: {значение}
- {Параметр 3}: {значение}
Как заполнять:
{Твоя роль и контекст}— кто модель и что она делает ("Ты аналитик стартапов", "Ты редактор текстов"){Шаг 1, 2, 3...}— последовательность действий, которые ВСЕГДА одинаковы для этой категории задач{Параметр 1, 2, 3}— данные, которые МЕНЯЮТСЯ от задачи к задаче (название компании, город, дата)
Важно: Структуру плана (шаги 1-N) пиши один раз, сохрани. Для новых задач меняй только параметры.
🚀 Быстрый старт — вставь в чат:
У меня есть повторяющаяся задача: {опиши свою задачу}.
Я делаю её регулярно, меняются только {что меняется — названия, даты, города и т.д.}.
Создай промпт-шаблон с фиксированной структурой (план действий) и параметрами {в скобках} для данных, которые меняются. Структура должна подходить для всех вариантов этой задачи.
LLM спросит примеры твоих задач и какие части фиксированы, какие переменны — чтобы выделить структуру от данных. Она возьмёт паттерн "план + параметры" и создаст шаблон, который ты будешь копировать для каждого нового запроса.
Ограничения
⚠️ Подходит для повторяющихся задач: Если каждая задача уникальна по структуре — шаблон не поможет. "Разбери 50 стартапов" — да, структура одна. "Разбери стартап, потом напиши статью, потом найди инвестора" — нет, это разные задачи.
⚠️ Параметры должны чётко выделяться: Если в задаче всё переплетено ("учитывай вот это, но если вот то, то по-другому"), сложно сделать универсальный план. Лучше работает для задач с ясными переменными (название, дата, город, сумма).
⚠️ Читатель делает вручную то, что в AgentReuse автоматизировано: Ты сам выделяешь параметры, сам подставляешь, сам следишь за консистентностью. Техническая система делает это за миллисекунды для тысяч запросов, у тебя — для десятков задач в день.
⚠️ Не для разовых экспериментов: Если задача встречается 1-2 раза — шаблон не окупится. Ценность в многократном переиспользовании.
Как исследовали
Использовали датасеты реальных запросов к личным ассистентам (Xiao Ai, китайский рынок). Построили систему с: - Моделью классификации намерений (bert-base-chinese) — определяет категорию запроса - Моделью извлечения параметров (slot filling) — вытаскивает города, даты, имена из текста - Векторной базой (FAISS) — хранит закэшированные планы и ищет похожие - LLM для генерации планов (GPT-4 через API)
Сравнивали с базовым подходом (без кэширования) и с GPTCache (кэширует ответы LLM по сходству текстов). Замеряли: - F1 score — точность определения "похожих" vs "непохожих" запросов (0.9718 у AgentReuse vs 0.9 у GPTCache) - Эффективность переиспользования — сколько планов удалось корректно переиспользовать (93% у AgentReuse) - Снижение латентности — на сколько быстрее ответ (93.12% быстрее при срабатывании кэша)
Тестировали на 100 запросах, средняя генерация плана — 31.8 секунды, средняя экономия при попадании в кэш — 29.6 секунд.
Ресурсы
A Plan Reuse Mechanism for LLM-Driven Agent — Guopeng Li, Ruiqi Wu, Haisheng Tan (University of Science and Technology of China). Опубликовано в Journal of Computer Research and Development, 2024.
Упоминаются методы: AutoGen (Microsoft, фреймворк для агентов), GPTCache (метод кэширования ответов LLM), MetaGPT (multi-agent framework).
