AIKraft Agents

brainlid/langchain

Реализация на Elixir фреймворка в стиле LangChain, позволяющая проектам на Elixir интегрироваться с LLM и использовать их возможности.

Инструменты⭐ 1 212Elixirпоследний релиз: v0.15.8
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Elixir-библиотека, реализующая функционал LangChain для интеграции Elixir-приложений с различными LLM и локальными моделями.

Зачем нужен

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

Что можно реализовать

  • Интеграция Elixir-бэкенда с внешними LLM (OpenAI, Anthropic, Google Gemini) для генерации текста или анализа данных
  • Запуск и использование локальных open-source моделей (Llama, Mistral) через Bumblebee/Nx
  • Создание AI-агентов, взаимодействующих с окружением или источниками данных
  • Использование прокси-шлюзов (AWS Bedrock Mantle, Cloudflare Workers AI) для доступа к моделям других вендоров
  • Мультимодельная архитектура с единым интерфейсом через ReqLLM

Ключевые возможности

  • Поддержка широкого спектра провайдеров: OpenAI, Anthropic, Google, xAI, DeepSeek, Ollama, Mistral, Perplexity и др.
  • Возможность работы с локальными моделями через интеграцию с Bumblebee (Nx)
  • Гибкая конфигурация секретов (API-ключей) через функции или кортежи
  • Отсутствие попыток полного паритета с JS/Python версиями, оптимизация под функциональную парадигму Elixir
  • Поддержка современных API, включая OpenAI Responses API с WebSocket и prompt caching от DeepSeek

👤 Кому подойдёт: Разработчики на Elixir, внедряющие AI-функционал в свои приложения, а также команды, использующие Elixir для высоконагруженных систем с интеграцией LLM.

Релизы

v0.15.8patch
🕐 3 дн назад · релиз на GitHub ↗

Исправлена типизация кодов ошибок в ChatOpenAICompatible для корректной работы механизмов повторных попыток.

  • Fixed: В ChatOpenAICompatible добавлена типизация кодов ошибок сервисов, чтобы механизмы повторных попыток (fallbacks) могли их корректно обрабатывать.
v0.15.7patch
🕐 10 дн назад · релиз на GitHub ↗

Исправлена обработка отказов инструментов и добавлена маркировка повторяющихся неудачных вызовов.

  • Fixed: Добавлена маркировка отказов инструментов (tool refusals).
  • Fixed: Внедрено отслеживание идентичных повторов неудачных вызовов.
  • Подготовка кода к релизу версии v0.15.7.
v0.15.6patch
🕐 10 дн назад · релиз на GitHub ↗

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

  • Fixed: Асинхронные инструменты, прошедшие проверку, теперь выполняются конкурентно в функции execute_tool_calls_with_decisions/3.
v0.15.5minor
🕐 14 дн назад · релиз на GitHub ↗

Релиз v0.15.5: добавлена поддержка адаптивного мышления для Claude Sonnet 5.5 и исправления для ChatGrok.

  • Added: Добавлена поддержка адаптивного мышления для модели Claude Sonnet 5.5 в ChatAnthropic.
  • Added: Реализован поиск инструментов провайдера с отложенными функциями и пространствами имен.
  • Fixed: Исправлена передача вызовов инструментов в ChatGrok.
  • Fixed: Текст ответа теперь сохраняется после этапа рассуждения при потоковой передаче.
v0.15.4patch
🕐 14 дн назад · релиз на GitHub ↗

Исправлена обработка ошибок ChatAnthropic и добавлены методы для работы с reasoning-контентом.

  • Fixed: Возврат ошибок API для нестриминговых ответов ChatAnthropic при возникновении сбоев.
  • Added: Добавлены функции Message.strip_reasoning/1 и ContentPart.reasoning?/1 для работы с рассуждениями.
v0.15.3minor
🕐 27 дн назад · релиз на GitHub ↗

В версии 0.15.3 добавлена передача контекста инструментов в parse_args и экспортировано предварительное разделение аргументов.

  • Added: Контекст инструментов теперь передаётся в parse_args.
  • Added: Стал доступен экспорт предварительного разбора аргументов до выполнения.
v0.15.2patch
🕐 28 дн назад · релиз на GitHub ↗

Выпуск v0.15.2: передача параметров кэширования текстовых частей в ChatReqLLM.

  • Fixed: Исправлена передача параметров кэширования текстовых частей в ChatReqLLM.
v0.15.0minor
🕐 1 мес назад · релиз на GitHub ↗

В релизе v0.15.0 добавлена поддержка OpenAI-совместимых сервисов через ChatOpenAICompatible.

  • Added: Добавлен класс ChatOpenAICompatible для работы с сервисами, совместимыми с API OpenAI.
v0.14.4patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена обработка таймаутов стриминга в ChatReqLLM и подготовлен релиз v0.14.4.

  • Fixed: ChatReqLLM: улучшена классификация таймаутов стриминга и корректная передача receive_timeout.
  • Подготовка кодовой базы к выпуску версии v0.14.4.
v0.14.3patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена обработка усечённых ответов и улучшена надёжность работы наррации.

  • Fixed: Завершение выполнения при получении усечённых ответов.
  • Fixed: Улучшена стабильность обработки наррации.
v0.14.2patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена работа цепочек при комментариях сообщений ассистента OpenAI, подготовлен релиз v0.14.2.

  • Fixed: Цепочка теперь продолжает работу, если сообщение ассистента OpenAI является комментарием.
  • Подготовка к выпуску версии v0.14.2.
v0.14.1minor
🕐 1 мес назад · релиз на GitHub ↗

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

  • Added: Добавлена MessageExpansion, позволяющая результатам инструментов вставлять сообщения в ходе выполнения.
  • Added: Реализована поддержка полей кэширования промптов в Responses API.
  • Fixed: Исправлена сериализация результатов инструментов в сообщениях OpenTelemetry.
  • Fixed: Устранены предупреждения типов Elixir 1.20 и обновлена CI для OTP 29.
v0.13.1patch
🕐 2 мес назад · релиз на GitHub ↗

Исправлена работа потоковых ответов, улучшена обработка ошибок и зависимостей.

  • Fixed: Отключено объединение отдельных потоковых ответов в одно сообщение.
  • Fixed: Ошибки стриминга в ChatReqLLM теперь корректно отображаются, а не скрываются.
  • Fixed: Пробелы в стоп-последовательностях Ollama теперь корректно сохраняются при приведении типов.
  • Обновлены зависимости проекта.
v0.13.0minor
🕐 2 мес назад · релиз на GitHub ↗

В Langchain v0.13.0 добавлена возможность предварительного просмотра вызовов инструментов через callback и исправлена передача ID вызова в Gemini.

  • Added: Появился callback, позволяющий проверять каждый вызов инструмента перед его выполнением.
  • Fixed: Исправлена передача ID вызова инструмента через обмен данными с Gemini.
  • Added: Подготовка к релизу версии 0.13.0.
v0.12.0minor
🕐 2 мес назад · релиз на GitHub ↗

Добавлена поддержка потоковой передачи и отчётов об использовании токенов для xAI и ChatGrok, улучшена работа с контентом и WebSocket.

  • Added: Реализована потоковая передача, завершение и отчёт об использовании токенов для ChatGrok.
  • Added: Добавлена поддержка отчётов об использовании токенов от xAI в потоковом режиме.
  • Added: Унифицирована структура вариантов ContentPart.
  • Added: Обеспечено сохранение элементов рассуждения OpenAI в цикле использования инструментов.
  • Fixed: Исправлена схема WebSocket, выводимая из конечной точки Responses.
v0.11.0minor
🕐 2 мес назад · релиз на GitHub ↗

Обновление для v0.11.0: улучшена обработка вызовов инструментов Gemini, добавлен доступ к исключениям и исправлена работа потоковых запросов.

  • Added: Использован tool call id от Gemini для корректного разделения параллельных вызовов.
  • Added: Добавлен публичный доступ к исключениям, которые LangChain перехватывает при работе с инструментами.
  • Fixed: При сбое потокового запроса теперь возвращается кортеж с ошибкой.
  • Подготовка к релизу версии v0.11.0.
v0.10.0patch
🕐 2 мес назад · релиз на GitHub ↗

Релиз v0.10.0 репозитория brainlid/langchain.

  • Выпущена версия v0.10.0.
v0.9.5minor
🕐 3 мес назад · релиз на GitHub ↗

Версия 0.9.5: добавлена поддержка наследования атрибутов OTel для вложенных спанов.

  • Added: Добавлена возможность передачи атрибутов OpenTelemetry от вызывающего кода с поддержкой наследования для вложенных спанов.
  • Подготовка к выпуску новой версии v0.9.5.