3,583 papers
arXiv:2508.11398 74 23 авг. 2025 г. FREE

DSM5AgentFlow: мультиагентный диалог для прозрачной диагностики

КЛЮЧЕВАЯ СУТЬ
AI-диагностика обычно работает как чёрный ящик: модель выдаёт вывод, но не объясняет почему именно так. DSM5AgentFlow позволяет получать прозрачные диагнозы с пошаговым обоснованием — каждый симптом подкреплён цитатой из разговора, каждый вывод привязан к критерию. Фишка: разделение на три роли с явным отслеживанием состояния. Терапевт ведёт список заданных вопросов (отмечает галочками), клиент отвечает согласно профилю, диагност строит цепочку симптом из разговора → критерий DSM-5 → диагноз. Модель перестаёт терять контекст в длинных диалогах — каждая роль делает одно, не размазывается на 20+ задач.
Адаптировать под запрос

TL;DR

DSM5AgentFlow — исследовательская система из трёх LLM-агентов: терапевт задаёт вопросы опросника DSM-5, клиент с заданным профилем расстройства отвечает, диагност анализирует разговор и выдаёт диагноз с пошаговым обоснованием. Каждый агент работает в отдельном промпте с чёткой ролью. Система генерирует синтетические терапевтические беседы и объясняет диагноз через цитаты из разговора.

Проблема: обычные диагностические опросники дают только итоговый балл — непонятно почему именно такой диагноз. Клиент не видит логику, терапевту сложно объяснить коллегам. LLM в один промпт часто не справляются с проведением структурированного интервью — теряют контекст, пропускают вопросы, не отслеживают что уже обсудили.

Решение: разделение на три роли с явным tracking'ом состояния. Терапевт ведёт список заданных вопросов. Клиент держит профиль расстройства и отвечает согласно симптомам. Диагност получает весь разговор + релевантные отрывки из DSM-5 (через RAG) и строит цепочку: симптом из разговора → критерий DSM-5 → диагноз. Каждый шаг подкреплён цитатой.


🔬

Схема метода

Система работает через три отдельных промпта (три API-вызова):

ШАГ 1 (Терапевт): 
- Загрузить список вопросов DSM-5
- Для каждого вопроса:
 → Переформулировать в естественный язык
 → Задать клиенту
 → Отметить как заданный
- Продолжать пока все 23 вопроса не заданы

ШАГ 2 (Клиент):
- Получить профиль расстройства (тревога/депрессия/ПТСР/etc)
- На каждый вопрос терапевта:
 → Ответить согласно симптомам из профиля
 → Говорить от первого лица
 → НЕ называть диагноз явно
 
ШАГ 3 (Диагност):
- Получить полный разговор
- Найти релевантные отрывки DSM-5 (RAG)
- Для каждого симптома:
 → Найти цитату из разговора
 → Сопоставить с критерием DSM-5
 → Пометить тегами <sym>, <quote>, <med>
- Выдать: диагноз + обоснование + рекомендации

Важно: Это не один промпт, а workflow из трёх отдельных вызовов LLM.


📌

Extractable principles для применения в чатах

Хотя полная система требует кода (multi-agent + RAG), принципы можно применить в обычном чате:

📌

1. Структурированный диалог через явное разделение ролей

Вместо "ответь на мой вопрос", создаём роли: интервьюер → респондент → аналитик. В одном промпте можно имитировать multi-agent через явные инструкции по очерёдности.

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

Задача: Собрать обратную связь от команды о новом процессе онбординга сотрудников, чтобы понять проблемные места

Промпт:

Ты — система из трёх ролей для сбора структурированной обратной связи.

ПРОФИЛЬ РЕСПОНДЕНТА:
- Роль: менеджер среднего звена в IT-компании
- Опыт: провёл онбординг 5 новых сотрудников за последние 3 месяца
- Боль: процесс занимает слишком много времени, новички теряются в документации

ВОПРОСЫ ДЛЯ ИНТЕРВЬЮ:
1. Как долго в среднем длится онбординг одного сотрудника?
2. Какие этапы вызывают больше всего вопросов у новичков?
3. Какие инструменты/документы используются?
4. Где процесс тормозит или требует повторных объяснений?
5. Что бы ты изменил в первую очередь?

ЗАДАЧА:
1. ИНТЕРВЬЮЕР: задай вопросы по списку, переформулируя естественно
2. РЕСПОНДЕНТ: отвечай согласно профилю, от первого лица
3. АНАЛИТИК: после всех ответов выдай:
 - Главные проблемы (цитата из ответа → проблема)
 - Рекомендации по улучшению
 - Приоритет внедрения

Покажи полный диалог + анализ.

Результат:

Модель проведёт симулированное интервью: задаст 5 вопросов, ответит согласно профилю менеджера, затем выдаст анализ с цитатами. Например: "«новички теряются в 20+ документах Confluence» → проблема: информационная перегрузка → рекомендация: создать единый чек-лист с 5 ключевыми ссылками".

📌

2. Explicit tracking через нумерацию и состояние

Явно инструктируй модель отслеживать какие вопросы уже заданы, какие темы обсуждены.

Шаблон:

У тебя есть список из {N} вопросов.

ПРАВИЛО: 
- Задавай вопросы по порядку
- После каждого ответа пиши "✓ Вопрос {номер} завершён"
- Переходи к следующему только когда предыдущий полностью раскрыт
- В конце выведи: "Обсуждены вопросы: 1, 2, 3... {N}"

Начинай с вопроса 1.
📄

3. Пошаговое обоснование с цитатами

Вместо "дай ответ", запрашивай цепочку рассуждений с явными ссылками на исходные данные.

Шаблон:

Проанализируй разговор и выдай диагноз проблемы в формате:

ШАГ 1: Симптом
- Цитата: "..."
- Что это значит: [твоя интерпретация]

ШАГ 2: Связь с критерием
- Критерий: [какое правило/паттерн нарушен]
- Почему подходит: [объяснение]

ШАГ 3: Диагноз
- Вывод: [что не так]
- Рекомендация: [что делать]

Используй теги для структуры:
<цитата>"..."
<проблема>название
<рекомендация>действие

🧠

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

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

Сильная сторона LLM: модель отлично следует явным структурам и конкретным ролям. Если прописать "ты — интервьюер, вот список вопросов, отмечай галочкой каждый заданный", она выполнит дисциплинированно.

Как метод использует это:

  • Разделение ролей убирает когнитивную нагрузку — каждая роль делает одно: задаёт вопросы / отвечает / анализирует
  • Tracking состояния через нумерацию и галочки даёт модели внешнюю память — она видит что уже сделано
  • Цитаты и теги превращают "угадай диагноз" в "найди соответствие между A и B" — это паттерн-матчинг, а не генерация из воздуха

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

  1. Количество ролей — можно добавить четвёртую роль "критик аналитика" для проверки выводов
  2. Детализация профиля — чем точнее описан респондент (возраст, опыт, стиль речи), тем реалистичнее ответы
  3. Формат tracking'а — вместо галочек можно использовать JSON {"завершено": [1,2,3], "осталось": [4,5]}
  4. Теги для анализа — добавь <приоритет>высокий/средний/низкий для сортировки проблем

📌

Адаптация для одного чата

🔧 Техника: Multi-agent в одном промпте через явную очерёдность

Вместо отдельных API-вызовов, опиши workflow внутри одного промпта:

Симулируй диалог терапевт-клиент по опроснику тревожности.

КЛИЕНТ (профиль):
- Генерализованное тревожное расстройство
- Симптомы: постоянное беспокойство, нарушения сна, мышечное напряжение
- Не знает что с ним, обеспокоен состоянием

ТЕРАПЕВТ (задача):
- Задать 5 ключевых вопросов из опросника GAD-7
- Перефразировать каждый вопрос естественно
- После каждого ответа: пометить "✓ Вопрос {N} завершён"

ДИАГНОСТ (задача после всех 5 вопросов):
- Извлечь симптомы из ответов
- Сопоставить с критериями GAD
- Выдать:
 Симптом: <цитата>"..."
 Критерий: [какой критерий GAD]
 Вывод: <диагноз>название
 
Начни с первого вопроса терапевта.

Эффект: модель проведёт весь цикл в одном ответе — диалог + анализ. Ты получишь прозрачную цепочку: вопрос → ответ → симптом → критерий → диагноз.


📄

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

Контекст: Исследователи использовали три отдельных промпта для Therapist, Client и Diagnostician агентов. Вот упрощённая версия промпта для Diagnostician:

Based on the questionnaire responses, provide a comprehensive mental health assessment.

Questionnaire responses: {responses}
Clinical observations: {observations}

DIAGNOSTIC CONSIDERATIONS: 
Consider multiple possible diagnoses; avoid assumptions; mark as provisional if needed.

Return assessment with exactly four parts:
1. Compassionate summary paragraph
2. Diagnosis: heading followed directly by the impression
3. Reasoning: heading followed by rationale
4. Recommended Next Steps/Treatment Options: heading followed by numbered recommendations

Wrap medical terms in <med> tags, symptoms in <sym> tags, and patient quotes in <quote> tags. 
Do not include meta-commentary.

Полный оригинал всех трёх промптов — см. Table 5 в Appendix A.2 статьи.


⚠️

Ограничения

⚠️ Требует кода для полной реализации: RAG-поиск по DSM-5 нужен для точной диагностики — в чате без внешнего инструмента можно опираться только на знания модели о критериях.

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

⚠️ Один вызов = одна итерация: система не адаптируется в реальном времени. Если терапевт пропустил важный вопрос, система не вернётся к нему автоматически.

⚠️ Evaluation bias: качество диалогов оценивалось другой LLM (не людьми). Модель может быть снисходительна к ошибкам, которые заметил бы терапевт.


🔍

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

Команда сгенерировала 8000 синтетических бесед — по 2000 на каждую из четырёх моделей (Llama-4, Mistral-Saba, Qwen-QWQ, GPT-4.1-Nano). Для каждой беседы создавали профиль клиента с конкретным расстройством (10 категорий: тревога, депрессия, ПТСР, шизофрения и др.), добавляли демографию и коморбидности. Затем запускали workflow: терапевт задаёт 23 вопроса DSM-5 → клиент отвечает согласно профилю → диагност выдаёт диагноз.

Что измеряли:

  1. Качество диалога — coherence через BERTScore (насколько логично следуют реплики), читаемость через Flesch-Kincaid
  2. Точность диагностики — сравнивали предсказанное расстройство с ground truth профилем (precision, recall, F1)
  3. Explainability — подсчитывали теги <sym>, <quote>, <med> в обосновании диагноста, проверяли ссылки на критерии DSM-5

Результаты удивили:

  • Qwen-QWQ (reasoning-модель) показала лучшую диагностическую точность (70% accuracy, 77% F1), но худшее качество диалога (3.64-4.23 из 5 по рубрикам)
  • Llama-4 и Mistral-Saba наоборот — лучший диалог (4.26-4.41 из 5), но слабее в диагностике (52-57% accuracy)
  • GPT-4.1-Nano провалился на диалоге (1.89-2.54 из 5) — модель слишком формальна, не держит эмпатичный тон

Инсайт для практики: модели для reasoning (QwQ) лучше для анализа, модели для conversation (Llama, Mistral) — для живого диалога. В реальной системе стоит комбинировать: Llama ведёт беседу, QwQ делает diagnosis.

Что ещё выяснили: все модели путают Adjustment Disorder с Depression (оба дают грусть + усталость), Bipolar с Depression (если не поймать маниакальные эпизоды). Это проблема не только LLM — опросник DSM-5 уровня 1 действительно не различает эти расстройства без дополнительного контекста.

Confusion matrices показали: модели отлично справляются с Anxiety, Panic, PTSD, OCD (F1 > 85%), но проваливаются на Adjustment (F1 < 40% у трёх моделей из четырёх).


🔗

Ресурсы

Trustworthy AI Psychotherapy: Multi-Agent LLM Workflow for Counseling and Explainable Mental Disorder Diagnosis

CIKM '25

https://github.com/mithatco/mental_health_multiagent

Авторы: Mithat Can Ozgun, Jiahuan Pei (Vrije Universiteit Amsterdam), Koen Hindriks (Vrije Universiteit Amsterdam), Lucia Donatelli (Vrije Universiteit Amsterdam), Qingzhi Liu (Wageningen University), Junxiao Wang (Guangzhou University)


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

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

AI-диагностика обычно работает как чёрный ящик: модель выдаёт вывод, но не объясняет почему именно так. DSM5AgentFlow позволяет получать прозрачные диагнозы с пошаговым обоснованием — каждый симптом подкреплён цитатой из разговора, каждый вывод привязан к критерию. Фишка: разделение на три роли с явным отслеживанием состояния. Терапевт ведёт список заданных вопросов (отмечает галочками), клиент отвечает согласно профилю, диагност строит цепочку симптом из разговора → критерий DSM-5 → диагноз. Модель перестаёт терять контекст в длинных диалогах — каждая роль делает одно, не размазывается на 20+ задач.

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

Вместо одного промпта «проведи интервью из 20 вопросов и дай анализ» (модель пропустит вопросы, забудет детали из начала) — раздели на три отдельных роли с чёткими задачами. Шаг 1 (Интервьюер): задаёт вопросы по списку, после каждого пишет «✓ Вопрос 5 завершён» — явное отслеживание что уже обсудили. Шаг 2 (Респондент): отвечает согласно заданному профилю (опыт, боль, контекст), говорит от первого лица. Шаг 3 (Аналитик): получает весь разговор, извлекает паттерны через цитаты — не угадывает из воздуха, а находит соответствия между ответами и критериями.

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

LLM легко теряет фокус в одном промпте при многошаговых задачах. Попросишь «проведи интервью + дай анализ» — она смешает роли, пропустит вопросы, забудет что обсуждалось в начале. Разделение ролей убирает когнитивную нагрузку — каждая роль делает одно: задаёт вопросы / отвечает / анализирует. Явное отслеживание через нумерацию («✓ Вопрос 3 завершён») даёт модели внешнюю память — она видит что уже сделано. Цитаты превращают «угадай диагноз» в «найди соответствие между А и Б» — это сопоставление паттернов, а не генерация из воздуха. Модель отлично следует явным структурам, но плывёт без них.

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

Структурированные интервью и диагностика → конкретно для сбора обратной связи от команды, проведения опросов с анализом, оценки кандидатов через стандартизированные вопросы — особенно когда нужна прозрачность выводов (не просто «кандидат подходит», а «вот цитата из ответа → вот критерий → вот почему подходит»). Работает для любых задач где важно не потерять контекст в длинном диалоге из 10-20+ вопросов. НЕ подходит для свободных бесед без структуры — там нет списка вопросов для отслеживания.

Мини-рецепт

1. Опиши роли и профиль: Интервьюер (задаёт вопросы), респондент (профиль: роль, опыт, боль), аналитик (извлекает паттерны). Пример профиля: менеджер среднего звена, провёл онбординг 5 новичков, боль: процесс занимает слишком много времени

2. Дай список вопросов с правилом отслеживания: Пронумеруй вопросы (1-5 или 1-10), добавь инструкцию После каждого ответа пиши ✓ Вопрос {номер} завершён. Переходи к следующему только когда предыдущий полностью раскрыт

3. Запроси анализ с цитатами в формате: Симптом: <цитата>"..." → Критерий: [какое правило нарушено] → Вывод: <проблема>название + <рекомендация>действие. Теги помогают модели структурировать — она видит что именно извлекать

4. Укажи очерёдность выполнения: Сначала интервьюер задаёт все вопросы, потом респондент отвечает на каждый, в конце аналитик выдаёт разбор. Можно в одном промпте: Симулируй диалог терапевт-клиент. ТЕРАПЕВТ: задай 5 вопросов... КЛИЕНТ: ответь согласно профилю... ДИАГНОСТ: после всех ответов выдай анализ

Примеры

[ПЛОХО] : Проведи интервью с менеджером о проблемах онбординга и дай рекомендации — модель смешает роли, пропустит вопросы, выдаст общие слова без привязки к конкретным ответам
[ХОРОШО] : Ты — система из трёх ролей. ПРОФИЛЬ РЕСПОНДЕНТА: менеджер среднего звена, провёл онбординг 5 новичков за 3 месяца, боль: процесс занимает много времени. ВОПРОСЫ ДЛЯ ИНТЕРВЬЮ: 1) Как долго длится онбординг одного сотрудника? 2) Какие этапы вызывают больше всего вопросов? 3) Где процесс тормозит? 4) Что изменил бы в первую очередь? ЗАДАЧА: ИНТЕРВЬЮЕР задаёт вопросы по списку, отмечает ✓ после каждого. РЕСПОНДЕНТ отвечает согласно профилю. АНАЛИТИК после всех ответов выдаёт: Проблема: <цитата>"новички теряются в 20+ документах" → Причина: информационная перегрузка → Рекомендация: создать единый чек-лист с 5 ключевыми ссылками. Покажи полный диалог + анализ — модель проведёт весь цикл, ты получишь прозрачную цепочку от ответа до рекомендации
Источник: Trustworthy AI Psychotherapy: Multi-Agent LLM Workflow for Counseling and Explainable Mental Disorder Diagnosis
ArXiv ID: 2508.11398 | Сгенерировано: 2026-01-12 03:03

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

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

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