Оказывается, вызовы функций у LLM-моделей плохо масштабируются. Но есть альтернатива — оркестрация кода! Проще, эффективнее и без головной боли. Кто бы мог подумать, что старый добрый код всё ещё рулит? 👨💻 #AI #Программирование
Технический обзор: почему традиционные вызовы функций в LLM не масштабируются
Современный подход к работе с вызовами инструментов в мультимодальных цепочках процессов (MCP) часто предполагает передачу полных выходных данных обратно в языковую модель (LLM) для интерпретации. Однако при работе с реальными производственными данными этот метод демонстрирует серьезные ограничения:
- Проблема токенизации: JSON-объекты от инструментов могут содержать до 25K токенов (пример: 50 задач из Linear = ~70K символов)
- Семантический шум: избыточные поля (например, многочисленные
id) увеличивают объем без полезной нагрузки - Риски точности: LLM может некорректно интерпретировать или пропустить критически важные данные
Архитектурный сдвиг: от чат-ориентированного подхода к кодовой оркестровке
1. Ключевое разделение ответственности
Традиционный метод смешивает два аспекта:
- Оркестровка (принятие решений о следующем действии)
- Обработка данных (манипуляции со структурированными данными)
Новый подход предлагает:
- Использование схем выходных данных (output schemas) для структурированного парсинга
- Выполнение операций обработки данных через сгенерированный код, а не через LLM
2. Технические преимущества кодового исполнения
Память через переменные:
- Данные хранятся в системной памяти как типизированные переменные
- LLM управляет данными через присваивание и передачу аргументов
Цепочки инструментов:
- Неявное представление зависимостей через граф вычислений
- Гарантия полноты обработки без ретрансляции данных через LLM
Масштабируемость:
- Обработка больших объемов через циклы и специализированные библиотеки (NumPy, pandas)
- Возможность вложенного вызова LLM для обработки неструктурированных данных
Практическая реализация и вызовы
Требования к MCP-клиентам
-
Безопасность:
- Песочницы для исполнения AI-генерируемого кода
- Изоляция API-ключей и пользовательских данных
-
Управление состоянием:
- Статически-персистентные среды для долгоживущих задач
- Отказ от stateful-решений типа Jupyter kernels
Перспективы развития
С появлением output schemas в спецификациях MCP открываются новые сценарии:
- Динамические дашборды
- Автоматизированные отчеты по задачам
- Автономные агенты для управления workflow
Заключение: новая парадигма AI-оркестровки
Переход к кодовой обработке данных решает фундаментальные проблемы масштабируемости LLM, но требует:
- Пересмотра архитектуры клиентских систем
- Разработки специализированных «AI-рантаймов»
- Углубленной работы с системами типов и схемами данных
Технологии типа Lutra демонстрируют практическую реализуемость этого подхода, открывая путь к созданию по-настоящему масштабируемых AI-ассистентов.
