Execai: объединение девяти LLM-провайдеров в одном терминальном агенте
Moonshot AI
Anthropic
OpenAI
Execai — терминальный ИИ-агент на Go, который поддерживает девять LLM-провайдеров через единый интерфейс, включая Kimi K3, GLM-5.2, Claude и Ollama. Архитектура основана на двух совместимых диалектах API (Anthropic и OpenAI) с SSE-парсерами для накопления вызовов инструментов и динамическими каталогами моделей. Пользователи могут переключаться между источниками в одном чате, сохраняя общую историю разговора.
Разработчик представил execai — терминальный AI-агент на Go (bubbletea), который позволяет использовать девять различных LLM-провайдеров через единый интерфейс. Среди поддерживаемых источников: собственный gateway execai, Z.ai Coding Plan с GLM-5.2, подписка Kimi Code (Kimi K3), Moonshot Platform, Anthropic API, OpenAI API, Ollama (облако и локально), а также делегирование в Claude Code CLI и Codex CLI. Архитектура сводится к четырем реализациям интерфейса StreamingLLM, покрывающим два диалекта HTTP API: OpenAI-совместимый и Anthropic-совместимый. Особое внимание уделено аккумуляции вызовов инструментов из SSE-чанков по индексам, динамическим каталогам моделей через GET /v1/models и автодетекту тарифа подписки через эндпоинты Kimi Code. Также реализовано делегирование запросов в локальные CLI чужих агентов (Claude Code, Codex), которые используют собственную OAuth-сессию. Разработчики поделились граблями, включая несовместимость ключей между подпиской и pay-per-token у Kimi и Z.ai, а также проблему поиска модели по ID в неправильном каталоге. Код доступен на GitHub по лицензии Business Source License.
- Сокращения
- LLM = Large Language Model — большая языковая модель
- API = Application Programming Interface — интерфейс программирования приложений
- SSE = Server-Sent Events — события, отправляемые сервером
- CLI = Command-Line Interface — интерфейс командной строки
- JSON = JavaScript Object Notation — формат обмена данными
- HTTP = HyperText Transfer Protocol — протокол передачи гипертекста
- TUI = Text User Interface — текстовый интерфейс пользователя
- OAuth = Open Authorization — открытый протокол авторизации
- JSONL = JSON Lines — формат JSON Lines (построчный JSON)
Source: Habr — хаб ИИ —
original
