Один терминал - девять моделей: как мы объединили Kimi K3, GLM-5. 2, Claude и Ollama в едином агенте

Один терминал - девять моделей: как мы объединили Kimi K3, GLM-5.
2, Claude и Ollama в едином агенте

Идея и цель проекта

Мы поставили перед собой задачу сделать удобный инструмент, который позволил бы одновременно использовать модели от разных провайдеров через единый интерфейс.

Вместо переключения между сервисами или интеграции каждой модели по-отдельности, захотелось создать терминального агента, который абстрагирует различия и представит всё как один связный рабочий процесс.

Главная цель - дать пользователю простой, предсказуемый и расширяемый способ работы с LLM, не теряя преимуществ каждой отдельной модели. Проект родился из практической необходимости: в разных задачах выигрывают разные модели - одна лучше пишет тексты, другая сильнее в аналитике, третья быстрее отвечает при интерактиве.

Мы решили объединить эти сильные стороны и сделать переключение между провайдерами прозрачным и удобным.

В результате пользователь получает единый "мост" к разным LLM, экономя время на настройках и интеграции.

Архитектурные решения и принципы интеграции

Основная идея архитектуры - модульность. Мы разделили систему на слой переговоров с провайдерами, слой агрегации ответов и слой логики агента, который решает, какую модель использовать в конкретной ситуации.

Это позволило легко добавлять новых провайдеров, не ломая существующую инфраструктуру: достаточно реализовать коннектор и описать характеристики модели - всё остальное агент сделает сам.

Для взаимодействия с каждым провайдером требуется своя настройка - токены, эндпойнты, лимиты.

Мы выстроили унифицированный интерфейс, преобразующий внутренние запросы в формат, подходящий конкретной модели, и обратно. Благодаря этому агент оперирует едиными понятиями: промпты, параметры генерации, контекст и т. д. Важный момент - управление очередностью и приоритетами запросов: если задача требует точности, агент предпочтет модель с лучшим качеством; если важна скорость, будет выбран быстрый инстанс.

Баланс между качеством и скоростью

При проектировании важно было не только подключить провайдеров, но и корректно распределять нагрузку.

Мы внедрили политику маршрутизации запросов: для творческих задач отправляем в Kimi K3 или Claude, для задач с большой длинной контекста - в GLM-5. 2, а для локальных, приватных сессий используем решения через Ollama. Такая гибкая маршрутизация позволяет выдерживать SLA и оптимизировать затраты на вычисления.

Кроме того, система умеет сочетать ответы: если нужно, агент может запросить несколько моделей параллельно и агрегировать результаты, выбирая лучшее или комбинируя фрагменты. Это особенно полезно при составлении длинных докладов или при проверке фактов - одна модель генерирует текст, другая проверяет и уточняет детали.

Практические кейсы использования

Мы протестировали терминального агента на разных сценариях: генерация маркетинговых текстов, аналитические сводки, код-ревью и диалоги с пользователем. В маркетинге Kimi K3 демонстрировала высокий креатив, Claude - глубокую аргументацию, GLM-5.

2 - стабильность в задачах с большим контекстом, а Ollama оказался незаменим при работе с приватными данными на локальной инфраструктуре. В реальных рабочих процессах агент показал себя как инструмент, сокращающий время настройки эксперимента и ускоряющий прототипирование.

Команды, которые ранее тратили часы на конфигурацию каждой модели, теперь получают результат в несколько кликов: выбрать цель, задать параметры и запустить обработку. Такой подход сократил трение между идеей и её реализацией.

Автообучение и адаптация

Агент поддерживает механизмы адаптации: на основе истории запросов и оценки качества ответов система может менять приоритеты моделей для конкретных задач. Это похоже на автоматическую подстройку маршрутов - со временем агент учится, какие провайдеры лучше решают определённые задачи и корректирует свои решения.

Такой фидбек-петля делает работу более персонализированной и эффективной. Также мы добавили метрики: время отклика, точность (в тех задачах, где это поддаётся измерению), стоимость запроса.

Эти данные помогают принимать решения при распределении нагрузки и оптимизировать экономику проекта.

Трудности и решения на пути реализации

Одной из основных проблем стала унификация ответов от моделей с разной логикой и форматами. Некоторые провайдеры возвращают структурированный JSON, другие - чистый текст.

Мы разработали промежуточный слой нормализации, который приводит ответы к общему формату и добавляет метаданные: источник, уверенность, затратные ресурсы.

Это упрощает последующую агрегацию и анализ. Ещё один вызов - управление контекстом и токенами при общении с моделями, у которых разные лимиты. Мы внедрили стратегию сегментации контекста и динамического подбора окон, чтобы избежать потерь ключевой информации.

При необходимости агент умеет подготавливать краткие резюме предыдущей беседы и подставлять их в запрос к модели с меньшим окном контекста.

Безопасность, приватность и масштабирование

Для корпоративных пользователей важна защита данных. Мы реализовали поддержку локальных провайдеров и шифрование транспортного слоя, а также опцию запрета пересылки конфиденциальной информации внешним сервисам.

Это особенно актуально для юридических или финансовых задач.

Масштабирование решается за счёт контейнеризации коннекторов и горизонтального увеличения агентов - каждый инстанс обрабатывает свою очередь запросов, а балансировщик распределяет нагрузку. В итоге получилась гибкая платформа, которая сочетает в себе удобство единого интерфейса и мощь разных LLM.

Пользователь получает инструмент, который умеет выбирать оптимальную модель, комбинировать ответы и адаптироваться под задачи - без необходимости разбираться с деталями интеграции.

Заключение: подход "один терминал - множество провайдеров" повышает продуктивность и экономит ресурсы, позволяя извлечь лучшее из каждой модели и одновременно упростить рабочие процессы.

Может быть интересно: Гелевые тяговые АКБ для склада: выбор, эксплуатация и реальные ресурсы