Перейти к содержимому
AUTHORВЫПУСК №008 → АВТОМАТИЗАЦИЯ АГЕНТАМИ: 90% НЕ ПРОМПТ / имейте совесть, когда будете делиться или копировать
>AISTUDY_

Модуль md.2 · Урок 1

Сквозной пайплайн: Retriever, Reasoner, Tools, Report

45 мин
Практика
md.2 / Урок 1 из 3

Чему вы научитесь

  • Понимать роль каждого из четырёх агентов в пайплайне agentic-RAG
  • Читать сквозной поток данных от вопроса до отчёта
  • Собирать минимальный учебный пайплайн на Python
  • Встраивать дисклеймер в финальный отчёт программно

Из чего состоит пайплайн

MedicalAgentX (открытое демо agentic-RAG) показывает наглядную архитектуру: четыре агента, каждый со своей узкой ролью, работают по очереди. Это удобный учебный каркас — каждую роль можно понять и заменить отдельно.

flowchart LR
    Q["PDF-кейс\n+ вопрос"] --> R["Retriever\nпоиск похожего"]
    R --> RE["Reasoner\nрассуждение"]
    RE --> T["ToolsConsultant\nвызов мед-API"]
    T --> RG["ReportGenerator\nотчёт + дисклеймер"]
    style R fill:#eef2ff,stroke:#4400FF
    style T fill:#fef3c7,stroke:#d97706
    style RG fill:#ecfdf5,stroke:#059669
АгентЗадачаЧем опирается на источники
RetrieverНайти похожие случаи и релевантные фрагментыВекторный поиск по базе (FAISS)
ReasonerПостроить рассуждение и гипотезыТолько по найденным фрагментам
ToolsConsultantПроверить факты через реальные инструментыВызов медицинских API (лекарства, онтологии)
ReportGeneratorСобрать структурированный отчётЦитаты + обязательный дисклеймер

Почему это безопасная зона

Каждый агент опирается не на «память» модели, а на найденные документы и проверенные инструменты. Reasoner рассуждает по фрагментам от Retriever, ToolsConsultant сверяет факты через API, а ReportGenerator обязан указать источники. Это прямое применение всего, что мы прошли в модуле о достоверности.


Родственный сценарий: ambient-скрайб

Тот же принцип «структурированный черновик, который проверяет и подписывает врач» лежит в основе самого массового сценария медицинского AI — ambient-документации (скрайба). На вход идёт не PDF-кейс, а транскрипт живого приёма; на выходе — черновик заметки в формате SOAP (Subjective — жалобы, Objective — осмотр и данные, Assessment — оценка, Plan — план).

Меняется источник, но рамка та же: ReportGenerator собирает черновик, а финальную заметку правит и подписывает врач. Именно на этом сценарии построены западные DAX, Abridge и Glass — они снимают рутину документации, но не принимают клинических решений.


Минимальный учебный каркас

Ниже — скелет пайплайна без привязки к конкретному фреймворку. Каждый шаг возвращает данные следующему. Реальный MedicalAgentX использует оркестрацию EvoAgentX, но логика та же.

def pipeline(case_text: str, question: str) -> str:
    # 1. Retriever: похожие фрагменты из базы
    chunks = retriever.search(question, k=5)

    # 2. Reasoner: гипотезы строго по найденному
    reasoning = reasoner.run(question, context=chunks)

    # 3. ToolsConsultant: проверка фактов через мед-инструменты
    checks = tools.verify(reasoning.entities)  # препараты, взаимодействия

    # 4. ReportGenerator: отчёт с цитатами и дисклеймером
    report = report_gen.build(reasoning, checks, sources=chunks)
    return finalize(report)


def finalize(report: str) -> str:
    disclaimer = ("Учебный материал, не медицинская консультация. "
                  "Решение принимает врач. Только для справки специалисту.")
    return f"{report}\n\n---\n{disclaimer}"

Как запускать по шагам

  1. Подготовьте базу. Несколько обезличенных или синтетических PDF-кейсов (подробно — в следующем уроке про индексацию).

  2. Проверьте Retriever отдельно. Убедитесь, что на тестовый вопрос он возвращает осмысленные фрагменты, а не случайные.

  3. Прогоните полный пайплайн. Сверьте, что в отчёте есть цитаты на источники и дисклеймер в конце.

  4. Вычитайте отчёт. Откройте каждую цитату и проверьте, что она подтверждает тезис.


Что дальше

Пайплайн нужен база. Следующий урок — как индексировать медицинские PDF: md.2/02.

Скачать урок

Есть идея или нашли ошибку?

// Обсуждение

Можно писать анонимно. Укажите email, чтобы получать уведомления об ответах.