Как мы построили нашу мультиагентную исследовательскую систему
Отличный свежий материал от Anthropic о том, как они строили свой инструмент Deep Research. Много практических советов.
Как мы построили нашу мультиагентную исследовательскую систему
Отличный свежий материал от Anthropic о том, как они строили свой инструмент Deep Research. Много практических советов.
В то время, когда слова AI и хайп практически стали синонимами, очень важно грамотно подходить к выбору источников информации. Вокруг сейчас слишком много информационного шума, и отобрать что-то действительно стоящее из моря статей различных AI-евангелистов и сгенерированного мусора невероятно сложно.
В этом посте я расскажу, какие материалы читаю я, чтобы быть в курсе последних событий.
Хороший блог — это слиток золота. Отношение сигнал/шум в нем стремится к бесконечности. Именно поэтому начну со списка блогов, которые я считаю полезными.
Лето. Пришла пора куда-то выбраться в отпуск. Открываем ChatGPT, выбираем активно набирающий популярность GPT “Travel Advisor”, обсуждаем варианты. Советник дает отличные советы и очень интересно рассказывает про местные достопримечательности, генерирует весьма неплохие планы, и в целом оставляет хорошее впечатление. Местами, конечно, проскакивают странности, но мы их пропускаем как безобидные галлюцинации. Отлично, останавливаемся на Барселоне. В том же чате переключаемся на другой, не менее знакомый и популярный GPT “Booking Agent”, который нас никогда не подводил, и бронируем жилье.
В прошлом посте я провел разбор базовых концептов AI-фреймворка Griptape, и сейчас самое время применить их к делу. Попробуем их использовать для разработки небольшого приложения, которое помогает вести линк-блог в телеграме.
Приложение будет получать URL, скачивать его, прогонять через LLM для генерации сокращенного содержания, переводить это содержимое еще на несколько языков, собирать все вместе и публиковать в телеграме через бота. Общий флоу можно увидеть на схеме ниже:
flowchart LR A["URL"] A --> Parser["Парсер"] --> LLM1["Суммаризатор"] LLM1 --> Translator1["Перевод на язык 1"] LLM1 --> Translator2["Перевод на язык 2"] Translator1 --> Combiner["Сборщик"] Translator2 --> Combiner LLM1 --> Combiner Combiner --> Telegram["Телеграм-бот"]
Для простоты картины я опущу имплементацию телеграм-бота, а также оставлю в покое мой любимый Human-in-the-loop, который, по моему мнению, обязательно должен присутствовать как минимум где-то в районе сборщика .
Хороший вопрос, правда. Дело в том, что до недавнего времени у OpenAI была модель Codex, которая использовалась как основа для автодополнения в GitHub Copilot. Затем OpenAI выпустили консольного агента для разработки, которого они назвали, чтобы никто не перепутал, Codex. Все посмеялись над умением OpenAI подбирать имена , и продолжили жить дальше. Пока не настал знаменательный день, в который в твиттере появился вот такой пост от Сэма Альтмана:

Я был заинтригован. Во-первых, нагнетанием хайпа, используя фразу “low-key research preview” , а во-вторых, этим самым именем. Впрочем, я не был разочарован:
Итак, Griptape. Фреймворк для построения AI приложений, предлагающий чистый питонячий API для тех, кто устал от уровней абстракции LangChain. Предлагает примитивы для построения ассистентов, RAG-систем, и интеграции с внешними инструментами. Честно говоря, по моему опыту, большинство людей, уставших от langchain, уходит на самописные обертки над более низкоуровневыми библиотеками, вроде openai или litellm. Но кто, знает, может быть зря. Разберемся.
Лично я про Griptape слышу уже года полтора, и начинал он как этакий конкурент LangChain с довольно похожими примитивами, но постепенно их пути разошлись. На момент написания этого поста у него 2.3k звезд на гитхабе, что несколько меньше, чем 109k лангчейна, но все же достаточно, чтобы считать проект достаточно взрослым. Кроме открытого фреймворка, он обзавелся своим облаком, в котором можно запускать свои приложения, ETLки и RAGи, и графический конструктор Griptape Nodes, позволяющий непрофессионалам накликивать приложения мышкой за считанные минуты.
Попала мне в руки Re:Camera от Seeed. По сути, маленькая коробочка (кубик сантиметра 4 ребром), опоясанная радиатором. Внутри двухъядерный MPU (updated: в системе видно только одно ядро, второе, похоже, зарезервировано под специальные операции) на основе RISC-V, древний микроконтроллер на 8051, сенсор камеры от OmniVision, диоды для подсветки, Wi-Fi, BT, ну и всякая периферия. Оперативной памяти маловато, всего 256 мегабайт, так что Greengrass поставить будет проблематично. Можно подключить Ethernet через специальный шнурок-переходник, который еле держится, но для разработки незачем, потому что камера раздает сеть по USB Type C, и работать проще через него. Кстати, включается этот переходник во что-то, подозрительно напоминающее grove plug от того же Seeed, что, вкупе с документацией, намекает на возможность подключения внешних сенсоров. Если мало памяти (а поставляется устройство в вариантах с 8 и 64 ГБ встроенной памяти), можно воткнуть MicroSD. Еще коробку можно прицепить к чему-нибудь металлическому, потому что есть магнитики на одной из сторон.