3,583 papers
arXiv:2510.10331 82 11 окт. 2025 г. FREE

ICA (Intent, Context, Action): псевдокод вместо текста для сложных workflow'ов

КЛЮЧЕВАЯ СУТЬ
Попробуй описать текстом логику 'если стартап и зарплата +50% но дорога >45 мин если только не senior роль' — модель запутается. Метод ICA позволяет структурировать сложные многофакторные решения (карьерные выборы, бизнес-процессы, личные дилеммы) в явную if-else логику. Псевдокод вместо текстовых описаний — модель перестает интерпретировать размытые условия и начинает выполнять четкий алгоритм. Точность +67%: с 51% до 85% на Mistral-7B.
Адаптировать под запрос

TL;DR

ICA (Intent, Context, Action) — способ представления сложных workflow'ов в виде псевдокода с if-else структурами вместо длинных текстовых описаний. Вместо "если клиент спрашивает про отмену и до бронирования больше 48 часов, то..." пишете if time_until > 48_hours: Action_1.

LLM плохо понимают сложные workflow'ы написанные обычным текстом с таблицами и вложенными условиями. Rich text формат с заголовками, списками, таблицами требует специальной подготовки даже для людей. Условия размыты, приоритеты неявны, логика запутана в абзацах. Модель теряется где начало ветвления, что проверять первым, какие условия важнее.

Трансформация workflow'ов в формат "if Intent X and Context Y then Action Z". Псевдокод убирает двусмысленность и делает логику явной. Сначала проверяем Intent (цель запроса), потом Context (условия окружения), выдаём Action (конкретное действие). Структура как в коде — модель отлично с этим работает.


🔬

Схема метода

Intent: [Какая цель у запроса]

if [Условие на контексте 1]:
 if [Условие на контексте 2]:
 Action: [Что делать]
 else:
 Action: [Альтернативное действие]
else:
 Action: [Другое действие]

Всё выполняется в одном промпте. Модель читает структуру, проверяет условия по порядку, выдаёт соответствующее действие.


🚀

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

Задача: Решить принять ли оффер от новой компании — структурировать критерии принятия решения в явную логику вместо интуитивных размышлений "с одной стороны... с другой стороны..."

Промпт:

Помоги принять решение о переходе на новую работу. 
Преобразуй мои критерии в псевдокод формата ICA (Intent, Context, Action).

Intent: Оценить предложение о работе

Контексты для проверки:
- Зарплата: текущая 150к, новая 200к
- Офис: текущий 20 мин, новый 60 мин
- Должность: текущая middle, новая middle
- Компания: текущая стабильная, новая стартап
- Команда: текущая знакомая, новая незнакомая

Мои приоритеты:
1. Зарплата важнее всего если разница >30%
2. Если стартап — должна быть значительная компенсация (+50% минимум)
3. Дорога >45 мин — только если очень хорошие условия
4. Смена команды — только если growth opportunities

Преобразуй в if-else логику с чёткими рекомендациями для каждого сценария.

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


🧠

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

LLM лучше обрабатывают структурированные инструкции чем неявную логику в тексте. В обычном описании условия размыты: "если стартап и большая зарплата и не очень далеко" — непонятно что важнее, как комбинируются факторы. В псевдокоде всё явно: сначала проверяем стартап, если да — требуем +50%, потом расстояние, потом остальное.

Псевдокод работает как контракт между вами и LLM. Вместо "подумай учитывая эти факторы" вы даёте чёткий алгоритм: "если А и Б, то В". LLM отлично следует таким инструкциям — они похожи на код, который модель видела в тренировочных данных. Нет интерпретации, есть выполнение.

В оригинальном исследовании точность выросла с 51% до 85% на Mistral-7B только за счёт перехода с rich text на ICA формат. Это +67% относительного улучшения. Особенно сильно эффект на маленьких моделях: для большой Model 1 улучшение было +13%, а для маленькой Mistral-7B целых +54%.

Рычаги управления:

  • Глубина вложенности if-else: больше веток = точнее логика, но сложнее читать. Для простых задач 2-3 уровня, для сложных можно 5+
  • Порядок проверки условий: что проверяем первым влияет на финальное решение. Ставьте самые важные критерии в начало
  • Детализация действий: от короткого "Action_1" до подробного описания следующих шагов

📋

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

Преобразуй {описание процесса} в формат ICA (Intent, Context, Action).

Intent: {какая цель}

Contexts:
- {фактор 1}: {возможные значения}
- {фактор 2}: {возможные значения}
- {фактор 3}: {возможные значения}

Критерии решения:
{правила и приоритеты в свободной форме}

Создай псевдокод в формате:

Intent: {цель}

if {условие на контекст 1}:
 if {условие на контекст 2}:
 Action: {что делать}
 else:
 Action: {альтернатива}
else:
 if {другое условие}:
 Action: {ещё вариант}
 else:
 Action: {финальный вариант}

Покажи полную логику для всех комбинаций факторов.

Заполни:

  • {описание процесса} — что нужно структурировать (принятие решения, бизнес-процесс, процедура)
  • {какая цель} — Intent в одном предложении
  • {фактор N} — переменные которые влияют на решение
  • {правила и приоритеты} — ваша логика принятия решений

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

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

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

LLM спросит какие факторы важны для твоего решения, какая логика приоритетов — потому что для построения if-else дерева нужны явные условия и их порядок. Она возьмёт структуру из шаблона и адаптирует под задачу.


⚠️

Ограничения

⚠️ Сложные нелинейные зависимости: Если решение зависит от комбинации факторов которую сложно выразить через if-else (например, "зарплата важна но только если не стартап, а если стартап то неважна если есть опционы"), псевдокод станет громоздким и нечитаемым.

⚠️ Субъективные критерии: Для задач где нет чётких правил (креативные решения, эмоциональная оценка, интуитивные выборы) жёсткая if-else структура может ограничить естественные рассуждения модели.

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


🔍

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

Команда Airbnb взяла реальные customer support workflow'ы и конвертировала их из rich text (с таблицами, списками, заголовками, гиперссылками) в ICA псевдокод. Затем протестировали на 4 моделях — от больших проприетарных (Model 1, Model 2) до маленьких open-source (Mixtral-8x7B, Mistral-7B).

Ключевой результат: на Mistral-7B точность выросла с 16% (rich text без CoT) до 70% (ICA + CoT) — это в 4+ раза! Даже без fine-tuning. А с fine-tuning на синтетических данных достигли 85%.

Особенно интересно что ICA формат сильнее помог маленьким моделям чем большим. Для Model 1 улучшение было +13%, а для Mistral-7B целых +54%. Это показывает что структурированный формат компенсирует недостаток размера модели — правильная упаковка знаний важнее брутфорса параметрами.

В онлайн-тестах на 5000+ реальных обращениях клиентов fine-tuned Mistral-7B с ICA сократил время обработки на 13% по сравнению с базовым подходом. При этом большие модели с CoT увеличили время из-за latency — они генерировали слишком много токенов.

Главный инсайт для практики: Если у вас сложные workflow'ы в текстовом формате — конвертируйте в псевдокод. Это даст больший прирост точности чем переход на более мощную модель.


📄

Оригинал из исследования

Авторы показывают пример конвертации из rich text в ICA:

Оригинальный workflow (упрощённо):

Reservation Cancellation Policy

When a guest requests cancellation:
- If reservation is more than 48 hours away:
 Check if it's a strict cancellation policy
 - If strict: Charge 50% fee
 - If moderate: Full refund
- If reservation is less than 48 hours away:
 No refund unless extenuating circumstances

ICA формат:

Intent: Guest requests reservation cancellation

if time_until_reservation > 48_hours:
 if cancellation_policy == "strict":
 Action: charge_50_percent_fee
 elif cancellation_policy == "moderate": 
 Action: full_refund
else:
 if extenuating_circumstances == True:
 Action: review_extenuating_circumstances
 else:
 Action: no_refund

Контекст: В исследовании этот формат затем использовался для генерации синтетических тренировочных данных и fine-tuning моделей. Но сам ICA формат работает и без fine-tuning — просто вставляете в промпт.


💡

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

💡 Адаптация для личных decision frameworks:

ICA можно использовать не только для бизнес-процессов, но и для структурирования личных систем принятия решений — от выбора квартиры до планирования карьеры.

Помоги создать decision framework для {моя задача}.

Используй ICA формат:

Intent: {цель решения}

Variables:
- {фактор 1}: {значения}
- {фактор 2}: {значения}
- {фактор 3}: {значения}

Priorities:
1. {главный приоритет}
2. {второй приоритет}
3. {третий приоритет}

Создай псевдокод который выдаст чёткую рекомендацию для любой комбинации факторов.
Покажи все возможные пути решения.

🔧 Техника: Визуализация логики → видеть все пути решения

После создания псевдокода добавь:

Преобразуй этот псевдокод в decision tree diagram в текстовом формате. 
Покажи все возможные пути и их финальные действия.

Это помогает увидеть полную картину: какие комбинации факторов к чему ведут, есть ли пропущенные сценарии, нет ли противоречий в логике.


🔧 Техника: Action IDs → быстрое сравнение вариантов

Вместо текстовых описаний действий используй номера:

Action_1: Принять оффер
Action_2: Отклонить оффер 
Action_3: Запросить улучшение условий

Затем попроси модель:

Для этих трёх вариантов моих данных:
- Вариант А: зарплата +20%, офис +40 мин, стартап
- Вариант Б: зарплата +50%, офис +60 мин, стабильная компания
- Вариант В: зарплата +35%, офис +20 мин, стартап

Какие Action ID получатся? Выведи таблицу.

Это даёт quick comparison разных сценариев без генерации длинных объяснений.


🔗

Ресурсы

"LLM-Friendly Knowledge Representation for Customer Support"

Airbnb Inc.

Hanchen Su, Wei Luo, Wei Han, Yu Liu, Yufeng Zhang, Cen Zhao, Joy Zhang, Yashar Mehdad


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

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

Попробуй описать текстом логику 'если стартап и зарплата +50% но дорога >45 мин если только не senior роль' — модель запутается. Метод ICA позволяет структурировать сложные многофакторные решения (карьерные выборы, бизнес-процессы, личные дилеммы) в явную if-else логику. Псевдокод вместо текстовых описаний — модель перестает интерпретировать размытые условия и начинает выполнять четкий алгоритм. Точность +67%: с 51% до 85% на Mistral-7B.

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

Было: 'Если клиент спрашивает про отмену и до бронирования больше 48 часов, то возврат полной суммы, но если менее 24 часов то только 50%, а если VIP статус то...' — модель теряется где начало ветвления, что проверять первым. Стало: `` Intent: Отмена бронирования if time_until > 48h: Action: Возврат 100% elif time_until > 24h: Action: Возврат 50% else: if vip_status: Action: Возврат 75% `` Псевдокод делает логику явной и последовательной. Модель следует алгоритму вместо того чтобы интерпретировать размытые условия в тексте.

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

LLM видели миллионы строк кода в тренировочных данных. Псевдокод для них привычнее чем сложный текст с вложенными условиями. В обычном описании условия размыты: 'если стартап и большая зарплата и не очень далеко' — непонятно что важнее, как факторы комбинируются. В if-else всё явно: сначала проверяем А, если да — требуем Б, потом проверяем В. Конкретика из исследования: на Mistral-7B точность выросла с 51% до 85% (+67% относительного улучшения). Особенно сильно работает на маленьких моделях: для большой модели улучшение было +13%, для Mistral-7B целых +54%. Маленькие модели сильнее страдают от размытых инструкций — псевдокод компенсирует это ограничение.

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

Многофакторные решения → когда нужно учесть 3+ условия с разными приоритетами (карьерные выборы, оценка стартап-идей, медицинские протоколы), особенно когда логика запутана и есть вложенные 'если-то-иначе'. Бизнес-процессы → правила обработки заявок, эскалации в саппорте, ценообразование с условиями. НЕ подходит для: креативных решений без четких критериев, интуитивных выборов ('что кажется правильным'), динамических процессов где условия меняются в ходе диалога.

Мини-рецепт

1. Определи Intent: какая цель у решения в одном предложении (например: 'оценить предложение о работе')

2. Выпиши Contexts: все факторы которые влияют на решение — зарплата, расстояние, тип компании, роль. Для каждого укажи возможные значения

3. Структурируй приоритеты: что проверяем первым? Что важнее при конфликте критериев? Это определит порядок if-else веток

4. Построй псевдокод: начни с главного критера в первом if, вложи второстепенные условия внутрь, для каждой ветки укажи конкретное Action

5. Проверь покрытие: пройдись по всем комбинациям факторов — каждая должна вести к четкому действию, не должно быть 'а что если...'

Примеры

[ПЛОХО] : Помоги решить менять ли работу. Новая зарплата 200к (сейчас 150к), но ехать 60 мин (сейчас 20). Это стартап, текущая компания стабильная. Что делать? (Модель выдаст размытое 'зависит от приоритетов', 'с одной стороны... с другой стороны...', не будет четкой рекомендации)
[ХОРОШО] : Преобразуй критерии в ICA формат. Intent: Оценить оффер Contexts: - Зарплата: 150к → 200к (+33%) - Дорога: 20 мин → 60 мин - Компания: стабильная → стартап - Роль: middle → middle Мои приоритеты: - Стартап только если зарплата +50% минимум - Дорога >45 мин только если очень хорошие условия - Зарплата важнее всего Создай if-else псевдокод с рекомендацией для этого случая. (Модель выдаст структурированную логику: 'if стартап: требуется зарплата +50%, текущий оффер +33% → НЕ проходит → рекомендация: отклонить или запросить 225к')
Источник: LLM-Friendly Knowledge Representation for Customer Support
ArXiv ID: 2510.10331 | Сгенерировано: 2026-01-11 23:48

Концепты не выделены.

📖 Простыми словами

ICA (Intent, Context, Action): псевдокод вместо текста для сложных workflow'ов

arXiv: 2510.10331

Суть в том, что современные нейронки, несмотря на всю их «человечность», в душе остаются калькуляторами. Когда ты скармливаешь им длинную простыню текста с описанием бизнес-процессов, они начинают плавать в логических связях. Метод ICA (Intent, Context, Action) переводит рыхлые инструкции на язык, который AI понимает с полуслова — это структурированный псевдокод. Вместо того чтобы заставлять модель гадать, что важнее, мы даем ей четкую дорожную карту с if-else структурами, где каждое условие отсекается как бритвой.

Это как пытаться объяснить дорогу таксисту: можно долго описывать «красивый домик с геранью, за которым надо повернуть туда, где обычно стоит собака», а можно просто дать точные координаты и список поворотов. В первом случае он может приехать не туда, потому что собака ушла, а во втором — доставит груз без лишних вопросов. Псевдокод убирает из коммуникации с AI литературщину и оставляет только голый скелет логики, на котором модель не спотыкается.

Работает это через жесткую связку трех элементов: Intent (чего хочет юзер), Context (в каких условиях мы находимся) и Action (что конкретно делать). Если раньше инструкция звучала как «попробуйте помочь клиенту с возвратом, если он не сильно злится и прошло меньше недели», то теперь это превращается в строгий алгоритм: if days < 7 and mood != 'angry'. Такая подача вырезает двусмысленность под корень, и AI перестает галлюцинировать или импровизировать там, где это может стоить компании денег.

Хотя метод тестировали на клиентской поддержке, принцип универсален и применим везде, где нужно принять решение. Это может быть выбор оффера от работодателя, скоринг лидов или даже личные правила жизни. Как только ты переводишь свои интуитивные «с одной стороны, с другой стороны» в формат явной логики, ты внезапно обнаруживаешь, что даже самая тупая модель начинает выдавать результаты уровня Senior-специалиста.

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

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

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

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