3,583 papers
arXiv:2510.21148 70 24 окт. 2025 г. FREE

EGO-Prompt: двухэтапное рассуждение с причинно-следственным графом

КЛЮЧЕВАЯ СУТЬ
LLM плывёт когда даёшь ВСЮ релевантную информацию сразу. Даёшь полный граф причинно-следственных связей домена (30 факторов) — модель обрабатывает нерелевантные для конкретного случая связи вместо важных. EGO-Prompt решает через двухэтапное рассуждение с фильтрацией. Фишка: модель сначала выбирает из графа только релевантные связи для конкретного кейса (3-5 из 30), упаковывает в сжатое guidance — потом вторая модель рассуждает с чистым сигналом, без шума полного графа.
Адаптировать под запрос

TL;DR

EGO-Prompt — метод автоматической оптимизации промптов для задач в конкретных доменах (медицина, транспорт, финансы) через причинно-следственные графы (Semantic Causal Graph, SCG). Эксперт создаёт граф с узлами-факторами и стрелками-связями (например: "алкоголь → состояние дороги → тяжесть ДТП"), затем система автоматически улучшает и граф, и промпт через итерации.

Ключевой инсайт: LLM плохо работает с избыточной информацией в промпте. Если дать модели весь причинно-следственный граф сразу, она теряется — там всегда есть нерелевантные для конкретного случая связи (например, "уровень алкоголя" неважен, если водитель трезв). Модель тратит токены на обработку шума вместо фокуса на главном.

Метод решает это через двухэтапное рассуждение: (1) Граф-модель смотрит на конкретный случай и граф, выбирает только релевантные связи, генерирует сжатое guidance. (2) Основная модель рассуждает, используя исходные данные + это guidance, а не весь граф. Дальше система анализирует ошибки и автоматически улучшает и промпт, и сам граф через textual gradients — добавляет пропущенные связи, удаляет лишние, уточняет описания.


🔬

Схема метода

ЭТАП 1: Генерация instance-specific guidance
Вход: конкретный случай (x) + полный граф (G) + causal-промпт
→ Граф-модель выбирает релевантные узлы и связи
→ Выход: сжатое guidance (z*) для этого случая

ЭТАП 2: Рассуждение с guidance
Вход: исходные данные (x) + guidance (z*) + системный промпт
→ Модель рассуждает
→ Выход: предсказание (y)

ЭТАП 3: Итеративная оптимизация (автоматическая)
→ Сравнение с правильным ответом
→ Генерация textual gradients (что не так в промпте и графе)
→ Обновление промпта: улучшение формулировок
→ Обновление графа: Add/Delete/Edit узлов и связей
→ Повтор 6-12 итераций

Важно: Этапы 1-2 — это workflow, который можно воспроизвести вручную. Этап 3 требует API и код для автоматизации.


🚀

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

⚠️ Ограничения метода: Требует наличие domain knowledge в виде графа и ground truth данных для оптимизации. Не подходит для простых задач без структурированных причинно-следственных связей.

Задача: Ты запускаешь маркетплейс доставки еды в Москве. Нужно понять, почему клиенты отменяют заказы — чтобы снизить процент отмены с 18% до 12%.

У тебя есть данные: время суток, район, погода, время ожидания, средний чек, день недели, наличие промокода, количество прошлых заказов клиента. Эксперт-аналитик набросал причинно-следственный граф связей, но он неполный — возможно, пропущены важные паттерны.

Промпт (упрощённая версия двухэтапного reasoning):

Шаг 1: Создай instance-specific guidance

У меня есть общий граф факторов отмены заказов:
- Погода → Время ожидания → Отмена
- Время суток → Район → Отмена 
- Средний чек → Наличие промокода → Отмена
- Количество прошлых заказов → Отмена

Конкретный случай:
- Вторник, 14:00
- Район: Тверская
- Дождь
- Время ожидания: 45 минут
- Средний чек: 1200₽
- Промокод: нет
- Клиент: 3-й заказ

Задача: Выбери из графа ТОЛЬКО те связи, которые релевантны для этого случая, и сформулируй краткое reasoning guidance (3-5 предложений) — на что обратить внимание при анализе.

---

Шаг 2: Анализ с guidance

Используя guidance выше и данные случая, предскажи: отменит ли клиент заказ? 
Объясни через релевантные причинно-следственные связи.

Результат:

Модель выдаст двухэтапный вывод:

  1. Guidance: "В этом случае ключевые факторы — дождь увеличивает ожидание до 45 мин, что критично. Обеденное время + деловой район (Тверская) = клиент спешит. Отсутствие промокода при чеке 1200₽. Клиент новый (3-й заказ) = меньше лояльности."
  2. Предсказание с обоснованием через выбранные связи: "Вероятность отмены высокая (70%). Главный драйвер: Дождь → 45 мин ожидания + обед в деловом районе..."

🧠

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

Проблема LLM: При работе с domain-specific задачами модель получает избыточную информацию в промпте. Причинно-следственный граф содержит все возможные связи для домена, но не все релевантны для конкретного случая. Например, фактор "алкоголь водителя" неважен, если поле BAC=None (водитель трезв). Модель тратит ресурсы на обработку нерелевантных путей в графе вместо фокуса на значимых.

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

Как метод использует это: Двухэтапное рассуждение разделяет задачи:

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

Это как разница между "вот тебе вся медицинская энциклопедия" и "вот конкретные главы по симптомам пациента" — второе даёт лучший результат.

Дополнительные рычаги:

  • Детализация графа — чем точнее описаны причинно-следственные связи в узлах, тем лучше guidance (но сложнее граф)
  • Формат guidance — можно потребовать структурированный вывод (JSON) или текст
  • Длина guidance — ограничь количество предложений для экономии токенов при простых задачах
  • Causal-промпт — измени инструкцию для граф-модели: вместо "выбери связи" попроси "ранжируй по важности и возьми топ-3"

📋

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

Для ручного применения (двухэтапное рассуждение):

Шаг 1: Генерация instance-specific guidance

У меня есть причинно-следственный граф для {домен}:

{описание графа: узлы и связи в текстовом виде}

Конкретный случай:
{данные конкретной ситуации}

Задача: Проанализируй граф и выбери ТОЛЬКО те узлы и связи, которые релевантны для этого конкретного случая. Сформулируй краткое reasoning guidance (3-5 предложений): на какие причинно-следственные связи обратить внимание при решении задачи {задача}.

---

Шаг 2: Рассуждение с guidance

Используя guidance выше и данные случая, реши задачу: {формулировка задачи}.
Объясни решение через релевантные причинно-следственные связи из графа.

Поля для заполнения:

  • {домен} — область применения (медицина, финансы, маркетинг)
  • {описание графа} — текстовое представление узлов и связей (Фактор A → Фактор B → Результат)
  • {данные конкретной ситуации} — характеристики текущего случая
  • {задача} — что нужно предсказать/решить

🚀 Быстрый старт — вставь в чат:

Вот шаблон двухэтапного рассуждения с причинно-следственным графом. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.

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

LLM спросит: (1) в каком домене задача, (2) какие факторы и связи важны (если не знаешь — попроси предложить), (3) какие данные есть по конкретному случаю, (4) что нужно предсказать. Она возьмёт паттерн двухэтапного рассуждения и адаптирует под твою задачу.


⚠️

Ограничения

⚠️ Требует domain knowledge: Метод работает, если есть представление о причинно-следственных связях в домене. Для совсем новых или плохо изученных задач сложно построить начальный граф.

⚠️ Автоматическая оптимизация требует кода: Полноценное применение (итеративная оптимизация графа и промпта) требует API, forward/backward engines, textual gradients. Ручное применение ограничено двухэтапным reasoning без автоматического улучшения графа.

⚠️ Нестабильность API: Результаты могут варьироваться между запусками из-за недетерминированности LLM API (temperature, sampling). В исследовании брали лучший из 3 запусков.

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


🔍

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

Команда взяла три реальных датасета из разных доменов: прогноз госпитализации при пандемии COVID-19 (5200 случаев), предсказание тяжести ДТП (16188 аварий), выбор транспорта в Швейцарии (10728 респондентов). Для каждого домена эксперты создали начальный неполный причинно-следственный граф — специально, чтобы проверить, может ли система его улучшить.

Тестировали на 5 моделях (GPT-4o mini, GPT-4.1 mini, GPT-5 mini, Gemini 2.0/2.5 Flash) против 6 baseline методов: ProTeGi, TextGrad (prompt optimization), Zero-Shot-CoT, PHP, Auto-CoT (reasoning), Expert Organized Prompt. Каждый эксперимент повторяли 3 раза (из-за случайности API) и брали лучший результат — чтобы показать потенциал метода.

Что удивило: EGO-Prompt с маленькой моделью (GPT-4o mini) обошёл reasoning-модели o4-mini и o1, хотя те стоят в 6-140 раз дороже на инференсе. F1 score вырос на 7-13% по сравнению с сильнейшим baseline. Ещё интереснее: система автоматически исправила ошибки в экспертном графе — добавила пропущенные связи (например, "состояние здравоохранения → госпитализация") и удалила слабые ("демография → политика ограничений").

Главный практический инсайт: граф не обязан быть идеальным изначально — итеративная оптимизация через textual gradients находит пропущенные паттерны в данных и улучшает структуру знаний. Это открывает путь для экспертов: набросать начальный граф → дать системе обучиться на реальных кейсах → получить обратно refined граф с новыми инсайтами.


🔗

Ресурсы

How to Auto-optimize Prompts for Domain Tasks? Adaptive Prompting and Reasoning through Evolutionary Domain Knowledge Adaptation

Yang Zhao, Pu Wang, Hao Frank Yang (Johns Hopkins University)

NeurIPS 2025

Project page: https://miemieyanga.github.io/EGOPrompt/


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

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

LLM плывёт когда даёшь ВСЮ релевантную информацию сразу. Даёшь полный граф причинно-следственных связей домена (30 факторов) — модель обрабатывает нерелевантные для конкретного случая связи вместо важных. EGO-Prompt решает через двухэтапное рассуждение с фильтрацией. Фишка: модель сначала выбирает из графа только релевантные связи для конкретного кейса (3-5 из 30), упаковывает в сжатое guidance — потом вторая модель рассуждает с чистым сигналом, без шума полного графа.

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

Разделяй фильтрацию и рассуждение на два этапа. Этап 1 (фильтрация): Граф-модель смотрит на конкретный случай и полный граф, выбирает только релевантные узлы и связи, генерирует сжатое guidance (3-5 предложений). Этап 2 (рассуждение): Основная модель работает с данными case + guidance, а не с полным графом. Это как разница между "вся медицинская энциклопедия" и "конкретные главы по симптомам пациента" — второе даёт лучший результат.

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

LLM хорошо фильтрует релевантное из большого контекста при чёткой инструкции, но плохо работает когда рассуждает с избыточной информацией одновременно. Полный граф домена содержит связи которые неважны для конкретного кейса — фактор "алкоголь водителя" бесполезен если BAC=None (трезв). Модель тратит токены на обработку нерелевантных путей в графе вместо фокуса на значимых. Двухэтапный подход даёт чистый сигнал: сначала выбери что важно, потом рассуждай только с этим.

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

Domain-specific задачи с причинно-следственной структурой → диагностика в медицине (симптомы→факторы→диагноз), анализ рисков ДТП (погода→дорога→тяжесть), оптимизация маркетинга (время→район→отмена заказа), особенно когда есть граф факторов домена и не все релевантны для каждого случая. НЕ подходит для простых задач без структурированных причинно-следственных связей — добавит лишние токены и сложность.

Мини-рецепт

1. Создай граф связей домена: Опиши узлы-факторы и стрелки-связи в текстовом виде (пример: "Погода → Время ожидания → Отмена"). Если не знаешь — попроси LLM предложить
2. Этап фильтрации (промпт 1): У меня граф: [опиши граф]. Конкретный случай: [данные]. Задача: выбери ТОЛЬКО релевантные для этого случая связи, создай краткое guidance (3-5 предложений)
3. Этап рассуждения (промпт 2): Используя guidance выше и данные случая, реши задачу: [формулировка]. Объясни через релевантные причинно-следственные связи

Примеры

[ПЛОХО] : Проанализируй отмену заказа: вторник 14:00, Тверская, дождь, ожидание 45 мин, чек 1200₽, без промокода, клиент 3-й заказ
[ХОРОШО] : Шаг 1: У меня граф факторов отмены заказов: Погода→Ожидание→Отмена, Время суток→Район→Отмена, Чек→Промокод→Отмена, Количество заказов→Отмена. Случай: вторник 14:00, Тверская (деловой район), дождь, 45 мин ожидания, 1200₽, нет промо, 3-й заказ клиента. Выбери из графа только релевантные для этого случая связи и создай reasoning guidance. Шаг 2: Используя guidance выше, предскажи: отменит ли заказ? Объясни через выбранные связи
Источник: How to Auto-optimize Prompts for Domain Tasks? Adaptive Prompting and Reasoning through Evolutionary Domain Knowledge Adaptation
ArXiv ID: 2510.21148 | Сгенерировано: 2026-01-12 00:29

Методы

МетодСуть
Двухэтапное рассуждение: фильтрация + применениеУ тебя есть большой набор информации (факты, правила, связи). Не вся информация релевантна для конкретного случая. Шаг 1: Дай модели полный набор + конкретный случай. Попроси выбрать ТОЛЬКО релевантные части и сформулировать краткую инструкцию (3-5 предложений). Шаг 2: Дай модели исходные данные + эту инструкцию (не весь набор!). Попроси решить задачу. Почему работает: Модель лучше фильтрует информацию, чем игнорирует нерелевантное при рассуждении. Полный набор в промпте = шум, модель тратит "внимание" на обработку лишнего. Сжатая инструкция = чистый сигнал. Когда применять: сложная задача с большим объёмом правил/связей/контекста, где не всё релевантно для каждого случая (диагностика, анализ рисков, юридические кейсы). Когда не работает: простая задача решается одним промптом, или весь контекст всегда релевантен
📖 Простыми словами

EGO-Prompt: двухэтапное рассуждение с причинно-следственным графом

arXiv: 2510.21148

LLM в специфических областях вроде медицины или логистики часто ведут себя как рассеянные профессора: они знают всё обо всём, но в конкретной ситуации начинают нести околесицу, потому что тонут в деталях. Метод EGO-Prompt решает эту проблему через причинно-следственные графы. Вместо того чтобы скармливать модели тонну текста, эксперты рисуют карту связей — что на что влияет. Это заставляет нейронку не просто угадывать следующее слово, а буквально «рассуждать» по логической цепочке, отсекая лишний шум.

Это как если бы ты пришёл к врачу с жалобой на колено, а он начал бы пересказывать тебе весь учебник анатомии, включая устройство уха. EGO-Prompt работает как фильтр: он понимает, что если у тебя нет температуры, то половину диагнозов можно сразу выкинуть в помойку. Система берет огромный граф знаний и оставляет только те «рельсы», которые ведут к решению твоей конкретной задачи. Формально знаний много, но в дело идут только нужные, что спасает модель от перегруза и галлюцинаций.

В основе лежат два процесса: генерация точечных подсказок и эволюционная адаптация. Сначала система строит Semantic Causal Graph (SCG) — это дерево факторов, где стрелочки показывают зависимости, например, как «состояние дороги» влияет на «тяжесть ДТП». Если в данных указано, что водитель трезв, метод просто вырезает ветку про алкоголь из промпта. Затем алгоритм прогоняет задачу через итерации, подправляя и сам граф, и текст промпта, пока точность не станет максимальной. 10 из 10 по логике, но только если у тебя есть экспертные данные на входе.

Тестировали это на сложных штуках вроде медицины и транспорта, но принцип адаптивного промптинга применим везде, где есть жесткая логика и структура. Это может быть скоринг кредитов, юридический анализ или сложная техническая поддержка. Везде, где обычный ChatGPT начинает «плавать» в обилии условий, этот метод выстраивает жесткий каркас. SEO для смыслов — так можно назвать этот подход, когда мы оптимизируем не слова, а логические пути внутри модели.

Короче: если задача сложнее, чем написать пост в соцсети, обычные промпты — это херня и лотерея. Нужно переходить на структурированные графы знаний, которые направляют внимание модели в нужное русло. Метод не для ленивых, так как требует участия эксперта и базы знаний, но это единственный способ заставить AI выдавать стабильный результат в узких нишах. Либо ты строишь логический скелет, либо твоя модель продолжает уверенно нести чушь.

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

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

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