Примеры и подробности
Авторы описывают как автономные приложения, так и работающие в тесной связке с человеком. Первые годятся для автоматизации хорошо описанных задач, которые требуют высокой точности вычислений и не требуют нестандартных подходов. Вторые ассистируют человеку и помогают структурировать и ускорить процессы. Я здесь приведу два примера, которые мне самой показались интересными.
Virtual Lab
Virtual Lab – это приложение, в котором пользователь (человек) даёт постановку, а команда ИИ-агентов обсуждает её и предлагает решения. Человек даёт обратную связь и может работать напрямую с каждым из ИИ-агентов. Изначально система заточена под биологические исследования, но авторы выложили весь свой код в открытый доступ, так что можно попробовать скорректировать её и применить для других задач.
Что там хорошо продумано, так это структура инструкций для агентов и структура контекста «совещаний» между ними. Посмотрим на это подробнее, потому что такие структуры бывают полезны при работе с просто языковыми моделями, которые не агенты (в том же ChatGPT, например).
- Имя, которым агент обозначается во всех прочих инструкциях и взаимодействии с другими агентами;
- Описание сферы его деятельности (например, иммунолог или специалист по машинному обучению);
- Задача агента на текущее исследование;
- Роль агента в проекте.
Структурирование инструкций для ИИ-агентов и разделение задач на очень мелкие и неделимые подзадачи – очень хорошая практика. Разберём в качестве примера инструкцию агента, который выполняет роль научного критика.
Имя: Научный Критик.
Компетенции: предоставляет критические отзывы о научных работах.
Цель: гарантировать, что предлагаемые исследовательские проекты и их реализация тщательно продуманы, детально проработаны, выполнимы и научно обоснованны.
Роль в проекте: предоставлять критическую обратную связь для выявления и исправления всех ошибок и требовать максимально полных и подробных, но не чрезмерно усложнённых научных ответов.
Попробуйте как-нибудь структурировать свои инструкции для языковой модели похожим образом и посмотрите, изменится ли результат. Я обычно люблю давать роль, цель, компетенции и описание задачи – это похожий подход, только он заимствован у CrewAI.
Как определить каждый компонент:
- Имя – простое описательное название, по которому вы будете быстро «вызывать» нужную сущность (например, в чате: «Теперь выступи в роли Научного Критика»);
- Компетенции – перечень умений, которых вы ждёте от агента (ограничивать умения полезно, чтобы сфокусировать его на важных аспектах работы и получить более прикладной результат);
- Цель – к чему он должен стремиться;
- Роль – как он будет достигать цели;
- Задача – конкретные требования, которые он будет выполнять, исходя из своей роли.
ResearchAgent
ResearchAgent – система для генерации идей на базе научной литературы, не заточенная ни под какую конкретную научную область.
Логика работы с ней следующая:
- у вас есть одна или несколько статей на интересную вам тему;
- вы их передаёте в систему, и она ищет другие статьи, которые связаны с вашими либо цитированиями (авторы ссылаются друг на друга), либо по смыслу.
Новые идеи формируются на стыке научных дисциплин, и это, на мой взгляд, очень удачное применение языковых моделей. На них не возлагается принятие решений, они только перерабатывают большие массивы текстов, подо что как раз и заточены. И ускоряют рабочий процесс для исследователей.
Решения, которые я привожу в пример, распространяются по открытой лицензии MIT. Это значит, что можно их скачать и использовать в любых целях (только процитировать авторов, если вы что-то собираетесь продавать или публиковать). У них нет интерфейсов, поэтому без опыта работы с кодом может быть поначалу неудобно. Однако при наличии подробной инструкции вполне себе можно попробовать.
Нужна вам такая инструкция на одно из этих решений или какое-нибудь другое? Если нужна, напишите, я сделаю.