Консилиум — оркестратор AI-специалистов
SkillAI & modelsAI consilium: a three-round analysis by multiple physician agents. Round 1 — independent blind conclusions; round 2 — cross-critique, where specialists are required to challenge each other; round 3 — dispute resolution and synthesis of a common root cause. Unresolved disagreements are recorded in th
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Консилиум — оркестратор AI-специалистов skill
What this skill tells your AI
The instructions your AI receives, as published by alxyrgin/health-os in .claude/skills/consilium/SKILL.md and read by ahel’s review.
Профиль. До чтения и записи определи активный профиль по
.claude/shared/profile-resolution.md. Короткий путьData/Xв этом файле означаетData/profiles/<активный>/X— буквально по нему писать нельзя. Перед записью назови, в чей профиль она идёт.
Назначение
Параллельный запуск специализированных врачей-агентов для комплексного анализа медицинских данных пациента. Каждый специалист анализирует данные со своей стороны, а оркестратор синтезирует перекрёстные находки.
Принципы
- Агенты, не промты — каждый специалист запускается как Agent (отдельный контекст)
- Read-only — специалисты только читают данные и возвращают анализ. Никогда не пишут файлы
- Независимость первого раунда — специалисты формируют выводы вслепую, не видя чужих заключений. Это защита от якорения: увидев чужой вывод первым, специалист перестаёт искать свой
- Спор обязателен — во втором раунде специалисты получают заключения коллег и обязаны их оспорить по существу. Двенадцать монологов консилиумом не являются
- Неразрешённое разногласие ценнее ложного согласия — искусственный консенсус запрещён. Спор, который не удалось решить, точно указывает, какое исследование нужно следующим
- Холистичность обязательна — каждый специалист работает по
.claude/shared/holistic-framework.md: ищет первопричину, а не описывает маркеры, и обязан учитывать образ жизни, среду и хронологию - Доказательность обязательна — каждый специалист работает по
.claude/shared/evidence-base.md: маркирует уровень доказательности (A/B/C/D/⚠️) и не выдумывает ссылки
Полные правила дискуссии — .claude/shared/consilium-protocol.md. Прочитать перед запуском.
Доступные специалисты
| Агент | Специальность | Ключевой фокус |
|---|---|---|
hematologist | Гематолог | ОАК, лимфоцитоз, полицитемия, анемии |
endocrinologist | Эндокринолог | Щитовидка, РААС, надпочечники, половые гормоны |
urologist | Уролог и нефролог | Почки, мочевые пути, СКФ — универсально. Простата — у мужчин |
gynecologist | Гинеколог | Цикл, репродуктивное здоровье, менопауза, скрининг. Только при sex = female |
gastroenterologist | Гастроэнтеролог | ЖКТ, печень, FOB, нутрициология |
neurologist | Невролог | Мигрень, ВЧД, шейный отдел, вегетатика |
cardiologist | Кардиолог | Аритмии, гипертензия, липиды, кардиориск |
dermatologist | Дерматолог | Дерматозы, аутоиммунные кожные |
ent | ЛОР | Нос, миндалины, лимфоузлы, СОАС |
orthopedist | Ортопед | Позвоночник, стопы, биомеханика |
psychiatrist | Психиатр | Депрессия, СДВГ, усталость, сон |
dentist | Стоматолог | Кариес, имплантация, пародонт |
ophthalmologist | Офтальмолог | Рефракция, ВГД, глазное дно |
Workflow
1. Парсинг запроса
Определить scope консилиума:
- Без аргументов (
/consilium) → полный консилиум — все специальности, у которых есть данные - С указанием специальностей (
/consilium гемато эндо) → целевой — только указанные - С вопросом (
/consilium почему я устаю?) → автоматический подбор релевантных специальностей по вопросу
Маппинг алиасов и таблица автоподбора по теме вопроса — .claude/shared/specialty-aliases.md. Прочитать оттуда, не дублировать здесь.
2. Загрузка данных
Прочитать в основном контексте (для формирования промта агентам):
Data/profile.json— профиль пациентаData/labs/_index.json— индекс анализовData/medications/current.json— текущие лекарстваData/specialists/cross-specialty-map.json— перекрёстные паттерныData/hypotheses.json— текущие гипотезы о первопричинах и их доказательная базаData/context/environment.json— география, климат, жильё, работа, стресс, соцсредаData/profile.json→ блокlifestyle— питание, вещества, сон, тренировки, работаMEMORY.md— актуальный контекст
3. Раунд 1 — независимые заключения
Специалисты вызываются напрямую по имени агента. Читать файл .claude/agents/[name].md и вставлять его в промт НЕ нужно: агенты зарегистрированы как типы субагентов, их системный промпт подгружается автоматически.
Заключения коллег в промт первого раунда не передаются — раунд слепой.
Agent(
subagent_type="neurologist",
name="neurologist-r1",
prompt="Проведи анализ данных пациента. Фокусный вопрос: [вопрос]. [Дополнительный контекст, если есть]
Дополнительно к стандартному формату добавь секцию:
### Уверенность и уязвимость
- Насколько уверен: высокая / средняя / низкая
- Самое слабое место моего вывода: [что легче всего оспорить]
- Что меня переубедит: [конкретный результат или наблюдение]
Обязательно выдвини минимум две конкурирующие гипотезы по своему направлению и укажи, что их различает.",
run_in_background=true
)
ВАЖНО:
- Все агенты запускаются в одном сообщении (параллельно),
run_in_background=true name— для идентификации в отчёте- Инструкции, холистическая рамка, доказательная база и контракт специалиста читаются агентом самостоятельно — дублировать их в промте не нужно
Ограничение состава
- Верхний предел — 8 специалистов за один запуск. Если автоподбор дал больше, показать список, объяснить выбор и спросить подтверждение
- Полный консилиум из всех 12 запускается только по явному запросу пользователя
- Состав фильтруется по полу. Прочитай
Data/profile.json→basic.sexдо формирования списка.gynecologistвключается только приfemaleлибоintersexс соответствующими органами. При жалобе на усталость у женщины детородного возраста он включается обязательно: менструальная кровопотеря — самая частая причина дефицита железа, и без него гипотеза не будет рассмотрена. Еслиsexне указан — спросить у пользователя, а не угадывать health-coachв консилиуме не участвует. Он не диагностический специалист и имеет право записи, что нарушает принцип read-only. Для обзора режима и метрик — отдельный вызов/coach
Ожидание и обработка сбоев
- Дождаться завершения всех запущенных агентов перед переходом к синтезу
- Частичный успех допустим: если ответили не все, синтез выполняется по полученным заключениям, а в отчёте явно перечисляется, кто не ответил и что из-за этого не покрыто
- Пустой или мусорный ответ агента не включается в синтез и отмечается как сбой
- Если не ответил ни один специалист — сообщить об этом и не создавать отчёт
Доступные агенты (.claude/agents/):
hematologist, endocrinologist, urologist, gynecologist, gastroenterologist, neurologist, cardiologist, dermatologist, ent, orthopedist, psychiatrist, dentist, ophthalmologist
4. Раунд 2 — перекрёстная критика
Полные правила — Блок 3 файла .claude/shared/consilium-protocol.md.
Кого запускать. Не всех повторно, а только тех, у кого есть предмет спора:
- двое и более высказались об одном маркере, органе или сквозной оси
- гипотезы противоречат друг другу либо по-разному объясняют одну жалобу
- один выставил флаг другому
- один назвал находку значимой, другой — незначимой
- сработал паттерн из
cross-specialty-map.json, затрагивающий нескольких
Если пересечений нет вообще — раунд пропускается, и это отмечается в отчёте.
Agent(
subagent_type="cardiologist",
name="cardiologist-r2",
prompt="Ты уже дал заключение в первом раунде консилиума. Теперь прочитай заключения коллег по спорной теме и оспорь их по существу.
ЗАКЛЮЧЕНИЯ КОЛЛЕГ:
[тексты заключений специалистов, чьи зоны пересеклись с твоей]
ТВОЁ ЗАКЛЮЧЕНИЕ ПЕРВОГО РАУНДА:
[текст]
Прочитай .claude/shared/consilium-protocol.md, Блок 3, и верни ответ строго в формате оттуда: с чем согласен, с чем не согласен, что коллеги не рассмотрели.
Возражение обосновывается данными, а не мнением. Авторитет специальности не аргумент. Атакуй самое сильное прочтение чужого тезиса, а не упрощённое. Если после честной проверки возразить нечего — так и напиши, указав, что именно проверил.
Оспорить собственный вывод первого раунда, если чужие данные его опровергли, — нормально и приветствуется.",
run_in_background=true
)
Адвокат дьявола. Для ведущей гипотезы — той, что объясняет больше всего находок, — назначить оппонентом участника, чья зона наименее с ней связана, с единственной задачей: попытаться её опрокинуть.
5. Раунд 3 — разрешение споров
Выполняет оркестратор в основном контексте, без запуска агентов. Правила вердикта — Блок 4 consilium-protocol.md.
По каждому спору определить:
| Ситуация | Вердикт |
|---|---|
| Разные уровни доказательности | Побеждает более высокий, расхождение фиксируется |
| Уровни равны, но одна позиция опровержима, а другая нет | Побеждает опровержимая — она проверяема |
| Уровни равны, данных для различения нет | Неразрешённое разногласие, назначается исследование-арбитр |
| Спор из-за разных единиц или разных лабораторий | Не спор, а артефакт: нормализовать по _marker-aliases.json и пересобрать |
| Одна позиция на данных старше 24 месяцев, другая на свежих | Побеждают свежие |
Позиция опирается на утверждение из промпта, а не из Data/ | Отклоняется: фактов о пациенте в промптах нет |
Запрет на искусственный консенсус. Неразрешённое разногласие идёт в отчёт как есть, обе позиции сохраняются. Сглаживать формулировку, замалчивать проигравшую сторону или объявлять согласие там, где его нет, запрещено — это уничтожает информацию о том, какое обследование нужно следующим.
6. Синтез результатов
После разрешения споров:
A. Сортировка по severity:
- Собрать все находки, отсортировать: critical → high → medium → low → stable
B. Разрешение cross-specialty флагов:
- Если гематолог написал «→ Кардиология: тахикардия может быть следствием анемии» — проверить, что кардиолог сказал о тахикардии
- Сопоставить флаги одного специалиста с находками другого
- Выявить совпадения и противоречия
C. Применение перекрёстных паттернов:
- Загрузить
Data/specialists/cross-specialty-map.json - Проверить, активируются ли известные паттерны (renin↑ + тахикардия + почки, и т.д.)
- Отметить новые паттерны, которые не были предусмотрены
D. Выявление конфликтов:
- Разные специалисты рекомендуют противоположное?
- Лекарства, назначенные одним, мешают лечению другого?
E. Синтез перекрёстных гипотез:
- Сформулировать гипотезы, которые ни один специалист по отдельности не сформулировал бы
- Это главная ценность консилиума
F. Сведение к общей первопричине:
- Собрать гипотезы уровня L4 от всех специалистов (Блок 2 рамки)
- Проверить, сводятся ли разрозненные находки к одному системному процессу или это несколько независимых
- Определить, какие сквозные оси назвали несколько специалистов (Блок 3 рамки) — совпадение осей указывает на общий корень
- Построить хронологию: совпадают ли по времени старты разных состояний
- Свести вклад образа жизни и среды в единую таблицу — что модифицируемо и даёт наибольший эффект при наименьшем вмешательстве
G. Ревалидация прошлых консилиумов:
- Прочитать
Data/consilium/_sessions.jsonи отчёты, созданные до последней партии анализов - Проверить, не опираются ли их ключевые выводы на данные, которые с тех пор опровергнуты
- Найденные недействительные выводы перечислить в отчёте отдельно, с указанием файла, даты и того, какой анализ их снял
- Отчёты прошлых консилиумов не редактировать — они остаются историческим снимком. Опровержение фиксируется в новом отчёте
H. Обновление гипотез:
- Сопоставить выводы консилиума с
Data/hypotheses.json - Отметить, какие гипотезы усилились, ослабли или опровергнуты и на каком основании
- Предложить пользователю обновление файла — не записывать без подтверждения
7. Формирование отчёта
## Консилиум — [YYYY-MM-DD] — [scope: полный / целевой / по вопросу]
### Участники
- [Специальность]: [severity их заключения]
- ...
### Ход обсуждения
- **Раунд 1:** [сколько специалистов, сколько гипотез выдвинуто]
- **Раунд 2:** [кто с кем спорил и по какому предмету; либо «пересечений не было, раунд пропущен»]
- **Не ответили:** [кто, и что из-за этого осталось непокрытым]
### CRITICAL / HIGH находки
1. **[Перекрёстная находка]** ([специальности])
- Что: [описание]
- Почему важно: [обоснование]
- Действие: [что делать]
### MEDIUM находки
1. ...
### Перекрёстный синтез
> Уникальная ценность этого консилиума — находки, которые один специалист не увидел бы
1. **[Гипотеза]**
- Основание: [маркер A от специалиста X] + [маркер B от специалиста Y]
- Механизм: [объяснение]
- Верификация: [какие исследования нужны]
### Разрешённые споры
| Предмет спора | Позиция A (кто) | Позиция B (кто) | Вердикт | Основание |
|---------------|-----------------|-----------------|---------|-----------|
### Неразрешённые разногласия
> Здесь не сглаживать. Это самая полезная часть отчёта — она показывает, чего мы не знаем
1. **[Предмет]**
- Позиция A: [...] — [специальность], уровень [X]
- Позиция B: [...] — [специальность], уровень [X]
- Почему не разрешено: [нет данных / равные уровни / нужен арбитр]
- **Что рассудит:** [конкретное исследование]
### Проверка ведущей гипотезы
- **Гипотеза:** [...]
- **Оппонент:** [специальность]
- **Аргументы против:** [...]
- **Устояла:** да / нет / частично
- **Итоговая уверенность:** выросла / не изменилась / снизилась
### Отклонённые гипотезы
| Гипотеза | Кто выдвинул | Почему отклонена |
|----------|--------------|------------------|
### Общая первопричина
> Сводится ли картина к одному процессу или это несколько независимых
- **Вердикт:** [один процесс / несколько независимых / частично связаны]
- **Общие затронутые оси:** [оси, названные несколькими специалистами]
- **Наиболее вероятная корневая причина (L4):** [...]
- **Конкурирующее объяснение:** [...]
- **Что различит гипотезы:** [конкретное исследование или наблюдение]
### Хронология
| Год | Событие или старт симптома | Что совпало по времени |
|-----|---------------------------|------------------------|
### Вклад образа жизни и среды
| Фактор | Текущее значение | На что влияет | Модифицируем | Приоритет |
|--------|------------------|---------------|--------------|-----------|
### Влияние на существующие гипотезы
| Гипотеза | Было | Стало | Основание |
|----------|------|-------|-----------|
### Недействительные выводы прошлых консилиумов
> Производные документы не обновляются сами. Если прошлый отчёт опирался на данные, снятые новыми анализами, — сказать об этом здесь
| Отчёт | Дата | Недействительный вывод | Что его сняло |
|-------|------|------------------------|---------------|
### Конфликты и взаимодействия
- [Конфликт 1]: специалист A рекомендует X, специалист B рекомендует Y
- Решение: [предложение]
### Лекарственные взаимодействия
- [Если есть]
### План действий (приоритизированный)
1. **[СРОЧНО]** [Действие] — [Почему] — [Какой специалист]
2. **[В ТЕЧЕНИЕ МЕСЯЦА]** ...
3. **[ПЛАНОВО]** ...
### Вопросы для реальных врачей
**Гематолог:**
- [Вопрос]
**Эндокринолог:**
- [Вопрос]
### Пробелы в данных
- [Что не хватает для полной картины]
⚕️ Информация носит справочный характер. Для принятия решений о лечении обратитесь к врачу.
8. Проверка перед сохранением
Гейт: не записывать отчёт, пока не подтверждено наличие обязательных секций.
- Ход обсуждения
- Разрешённые споры — либо явная отметка «споров не возникло» с объяснением почему
- Неразрешённые разногласия — либо явная отметка «все споры разрешены»
- Проверка ведущей гипотезы
- Общая первопричина
- Хронология
- Вклад образа жизни и среды
- Влияние на существующие гипотезы
- Пробелы в данных
- Disclaimer
Отдельно проверить: нет ли в тексте выдуманных ссылок — конкретных DOI, авторов, названий статей. При обнаружении удалить и понизить уровень утверждения до D.
Если секция отсутствует — заполнить её, а не удалять из шаблона. Пустая обязательная секция означает незавершённый консилиум.
9. Сохранение
- Сохранить отчёт в
Data/consilium/YYYY-MM-DD_[scope].md- scope:
full,targeted-hemato-endo,question-fatigueи т. д.
- scope:
- Добавить запись в массив
sessions[]файлаData/consilium/_sessions.json. Реальная структура файла — обёртка{version, sessions[]}, полеversionне трогать:{ "date": "YYYY-MM-DD", "scope": "full|targeted|question", "specialists": ["hematologist", "endocrinologist"], "question": "текст вопроса или null", "file": "YYYY-MM-DD_full.md", "rounds": 3, "disputes_total": 0, "disputes_unresolved": 0, "critical_count": 0, "high_count": 2, "medium_count": 5 }
Детский профиль
Если активный профиль младше 18 лет, агент pediatrician — обязательный
участник консилиума независимо от темы вопроса, и одновременно рецензент.
Во втором раунде он проверяет заключения остальных на применение взрослых норм: референсов, порогов давления, скрининговых рекомендаций, расчёта доз.
Возражение педиатра по этому основанию содержательное, а не формальное. Гематолог, назвавший возрастной лимфоцитоз четырёхлетнего отклонением, ошибся по существу — такой вывод отклоняется, а не смягчается формулировкой.
Правила
- Disclaimer обязателен в каждом отчёте
- Никогда не ставить диагнозы — только гипотезы и рекомендации обследований
- Приоритизация действий — от срочных к плановым
- Не дублировать — если 3 специалиста рекомендуют одно и то же, объединить
- Конфликты — явно — не замалчивать противоречия между специалистами
- Если у специалиста нет данных по его направлению — он всё равно может найти перекрёстные связи
- Холистическая рамка обязательна — заключение специалиста без секций «Системная картина», «Гипотеза первопричины», «Вклад образа жизни и среды» и «Хронология» считается неполным
- Контекст жизни проверяется до поиска редкой патологии — вещества, режим, питание и среда объясняют находку дешевле и чаще
- Отчёт обязан содержать гипотезу общей первопричины — набор изолированных заключений специалистов консилиумом не является
- Доказательная база обязательна — каждое содержательное утверждение в отчёте маркируется уровнем (A/B/C/D/⚠️) согласно
.claude/shared/evidence-base.md - Выдуманные ссылки недопустимы. В первом раунде поиск запрещён: слепые заключения должны быть независимыми и воспроизводимыми. Подтверждать источники — во втором раунде и при синтезе. Ссылка на орган или руководство допустима, конкретный DOI, автор или название статьи — нет. При обнаружении такой ссылки в ответе агента — удалить её и понизить уровень утверждения до D
- Перекрёстный синтез консилиума — всегда уровень D или ⚠️ — он строится из сопоставления, а не из прямого исследования
- Спор обязателен — если раунд 2 не дал ни одного возражения, это подозрительно. Проверить, действительно ли предмета спора не было, или специалисты формально согласились. Формальное согласие обесценивает консилиум
- Искусственный консенсус запрещён — неразрешённое разногласие идёт в отчёт с обеими позициями и указанием исследования-арбитра. Сглаживать нельзя
- Возражение обосновывается данными, а не мнением и не авторитетом специальности
- Отклонённая гипотеза попадает в отчёт с объяснением, почему отклонена. Это экономит время при следующем разборе — гипотезу не будут выдвигать заново
- Критерий завершения: отчёт содержит все обязательные секции из чек-листа шага 8, запись добавлена в
sessions[], выдуманных ссылок нет
Signals
- GitHub stars
- 38
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
consilium- Source
- github.com/alxyrgin/health-os