Модуль s.4 · Урок 1
Урок 1: Анализ данных агентом — первый воспроизводимый анализ
Чему вы научитесь
- Ставить агенту задачу на анализ так, чтобы получить воспроизводимый результат, а не одноразовый ответ
- Подключать научный инструментарий: 70+ Python-пакетов из Scientific Agent Skills и analysis-агента BioAgents
- Понимать рабочий цикл анализа: загрузка датасета, описательная статистика, графики publication-quality
- Читать сгенерированный код как артефакт проверки, а не как чёрный ящик
- Загружать типовые научные форматы данных: CSV, Excel, h5ad (single-cell)
Что значит «воспроизводимый» анализ
Когда вы просите чат-бот «проанализируй эти данные», он часто отвечает текстом: «среднее около 5, есть выброс». Это не анализ — это пересказ. Проверить такой ответ нельзя, повторить тоже.
Агент-исследователь работает иначе: он пишет код, исполняет его и возвращает и код, и его вывод. Воспроизводимость здесь — не абстрактная ценность, а механизм проверки: если вы видите код и можете перезапустить его на тех же данных, у вас есть способ поймать ошибку.
Инструментарий: чем агент считает
Голая LLM не умеет считать дисперсию — она умеет писать код, который считает дисперсию. Поэтому к агенту подключают научные пакеты. Два практичных способа на май 2026.
| Подход | Что это | Когда выбирать |
|---|---|---|
| Scientific Agent Skills | Библиотека навыков (K-Dense): 70+ Python-пакетов — scikit-learn, Scanpy, RDKit, BioPython | Любой агент (Claude Code, Cursor, Gemini CLI), нужен широкий научный стек |
| BioAgents analysis-агент | Готовый агент анализа данных в составе фреймворка bio.xyz под науки о жизни | Нужен встроенный режим анализа, биология и биомед |
Scientific Agent Skills — это набор «навыков» по открытому стандарту Agent Skills: каждый навык даёт агенту доступ к пакетам и методикам, включая 100+ научных баз данных (K-Dense scientific-agent-skills). BioAgents добавляет специализированного analysis-агента (bio-xyz/BioAgents).
Рабочий цикл анализа
Любой первый анализ датасета проходит один и тот же путь. Удобно держать его как карту и проверять каждый узел.
flowchart LR
D[Датасет: CSV, Excel, h5ad] --> L[Загрузка и проверка формы]
L --> C[Очистка: пропуски, типы]
C --> S[Описательная статистика]
S --> P[Графики publication-quality]
P --> R[Артефакт: скрипт + вывод]
R --> V{Человек проверяет}
V -- ошибки --> C
style D fill:#0891b2,color:#fff,stroke:#0e7490
style V fill:#f59e0b,color:#fff,stroke:#d97706
style R fill:#059669,color:#fff,stroke:#047857
Узкое место всегда одно и то же: загрузка и проверка формы данных. Агент любит предположить структуру датасета и пойти дальше. Поэтому первый шаг — заставить его явно показать форму, типы и пропуски, прежде чем что-то считать.
Как поставить задачу агенту
- Дайте путь к файлу и формат. «Датасет lab_measurements.csv, разделитель запятая, первая строка — заголовки».
- Потребуйте сначала разведку. Попросите вывести форму таблицы, типы колонок и долю пропусков до любого анализа.
- Зафиксируйте seed и версии. Любая случайность (сэмплирование, кластеризация) — с фиксированным random_state, чтобы результат повторялся.
- Просите код, а не выводы. «Верни скрипт целиком и его вывод», а не «расскажи, что в данных».
- Сохраняйте графики в файлы. savefig с dpi 300, чтобы артефакт был publication-quality и не терялся в чате.
Разведка данных: код, который стоит прочитать
Первый блок, который агент должен выдать, — это разведка, а не анализ. Ниже типовой фрагмент на pandas. Прочитайте его построчно: именно здесь чаще всего вскрываются проблемы датасета.
Разведка датасета перед анализом
Если на этом шаге df.shape не совпадает с ожиданием или числовая колонка
оказалась типа object — анализ дальше бессмысленен. Это и есть точка приёмки:
вы ловите ошибку за минуту, а не после построения графиков.
Описательная статистика и график
После разведки идёт сам анализ. Для publication-quality графиков агент обычно использует matplotlib или seaborn — оба входят в научный стек.
import matplotlib.pyplot as plt
import seaborn as sns
# группировка и сводная статистика
summary = df.groupby('group')['value'].agg(['mean', 'std', 'count'])
print(summary)
# график publication-quality: распределение по группам
plt.figure(figsize=(6, 4), dpi=300)
sns.boxplot(data=df, x='group', y='value')
plt.title('Распределение value по группам')
plt.tight_layout()
plt.savefig('value_by_group.png', dpi=300)
Обратите внимание на dpi=300 и savefig: график сохраняется в файл с
печатным разрешением. Это превращает картинку из чата в воспроизводимый
артефакт, который можно вложить в статью или приложить к отчёту.
Где агент ошибается на анализе
Анализ — это «дешёвая проверка» по карте из модуля S.1: код запускается, график видно глазами. Но есть три ловушки, где агент уверенно ошибается.
- Молчаливые пропуски. Агент может посчитать среднее, проигнорировав, что 40% значений отсутствуют. Поэтому доля пропусков выводится до анализа.
- Неверный тип данных. Числа, прочитанные как строки, дают бессмысленную «статистику» категорий. Ловится на
df.dtypes. - Утечка формата. Агент предполагает разделитель или кодировку и читает мусор. Ловится на
df.shapeи первых строках.
Следующий урок
Урок 2: Безопасное исполнение кода ИИ — почему код агента нельзя запускать как есть и как изолировать его в Docker-песочнице.