AIKraft Agents

stanfordnlp/dspy

DSPy: фреймворк для программирования, а не промптинга языковых моделей

Инструменты⭐ 38 949Pythonпоследний релиз: 3.4.1
Открыть на GitHub ↗Сайт проекта ↗

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

DSPy — это фреймворк для программирования языковых моделей, позволяющий заменять хрупкие промпты на композиционный Python-код и автоматически оптимизировать их.

Зачем нужен

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

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

  • Построение сложных RAG-пайплайнов с автоматической оптимизацией запросов
  • Создание Agent-циклов с самообучающимися компонентами
  • Разработка классификаторов и систем для NLP-задач с высокой точностью
  • Компиляция декларативных вызовов LLM в самосовершенствующиеся пайплайны

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

  • Замена ручного промптинга на программирование на Python
  • Алгоритмическая оптимизация промптов и весов моделей
  • Поддержка модульного подхода к сборке AI-систем
  • Наличие академической базы и исследовательских статей (Stanford NLP)
  • Встроенные механизмы самосовершенствования (self-improving pipelines)

👤 Кому подойдёт: разработчики AI-систем, исследователи в области NLP, инженеры, работающие с RAG и агентами

Релизы

3.4.1majorbreaking
🕐 24 дн назад · релиз на GitHub ↗

DSPy 3.4.1: GEPA по умолчанию, RLM-агенты, Python 3.15, ломает API 3.4.0 и готовит переход на LM-интерфейс 3.5

  • Added: GEPA теперь использует структурированный InstructionProposer с JSON-адаптером по умолчанию
  • Added: dspy.RLM может создавать DSPy-подагентов внутри REPL для сложных задач
  • Added: Добавлена поддержка Python 3.15
  • Breaking: Изменена форма запросов отражения в GEPA и добавлена секция подагентов в промпты RLM
  • Breaking: Программы 3.4.0 с нулевым уровнем Score больше не загружаются
  • Deprecated: Устарели legacy-обёртки LMs и вызовы OpenAI-style, которые будут удалены в версии 3.5
3.4.0majorbreaking
🕐 1 мес назад · релиз на GitHub ↗

DSPy 3.4: интеграция Jev через TypeSafe, нативные LM-движки, локальный интерпретатор и подготовка к переходу на новые LM-типы.

  • Added: Интеграция Jev через TypeSafe: новые экспериментальные типы Noul, Choice и Score для решений с вероятностными доказательствами.
  • Added: Оптимизатор ReAnchor: калибровка порогов и весов решений на основе метрики программы без переписывания инструкций.
  • Added: Введены нативные LM-движки и локальный интерпретатор CPython для безопасного выполнения кода.
  • Breaking: Замена экспериментальных LM-типов из версии 3.3; 3.5 станет дедлайном миграции.
  • Breaking: Изменение API RLM: аргумент interpreter_factory теперь keyword-only, имя зарезервировано.
  • Deprecated: Устаревание кастомных LM-интеграций и вызовов OpenAI-style с messages= (остаются с предупреждениями).
3.3.1minor
🕐 2 мес назад · релиз на GitHub ↗

DSPy 3.3.1: усиление изоляции PythonInterpreter, наблюдаемость жизненного цикла и оптимизация GEPA с мульти-предложениями.

  • Fixed: Усилены безопасность и изоляция PythonInterpreter: защита от коллизий файлов, блокировка рекурсивных вызовов и защита от изменения глобальных переменных.
  • Added: Добавлена полная наблюдаемость жизненного цикла интерпретатора через API обратных вызовов (старт/стоп процессов, инструментов и выполнения).
  • Added: Оптимизатор GEPA теперь поддерживает мульти-предложения (multi-proposal) и конкурентную оценку кандидатов с сохранением состояния генератора случайных чисел.
  • Fixed: Исправлена сериализация типов инструментов и приведён к единому виду форматирование ошибок выполнения для LM и агентов.
  • Fixed: Улучшена совместимость с MCP и повышена пропускная способность оптимизатора.
3.3.0majorbreaking
🕐 3 мес назад · релиз на GitHub ↗

DSPy 3.3.0: экспериментальный Flex для оптимизации структуры программ, ReActV2 с нативным вызовом инструментов и типизированный LM-интерфейс.

  • Added: Экспериментальный модуль Flex позволяет оптимизатору GEPA менять структуру программы, а не только промпты.
  • Added: ReActV2 использует нативный вызов инструментов, историю сообщений и поддерживает параллельные вызовы.
  • Added: Внедрен типизированный контракт LMRequest/LMResponse, упрощающий кастомизацию и интеграцию провайдеров.
  • Breaking: Изменен API для создания значений Image, Audio, File из путей или URL.
  • Added: Добавлена поддержка параметра max_iterations для RLM и возможность получения сырых ответов API инструментов.
3.2.1patch
🕐 6 мес назад · релиз на GitHub ↗

Исправлена передача заголовков в асинхронном стриминге и кэширование эмбеддингов; обновлены зависимости и документация.

  • Fixed: Исправлена передача пользовательских заголовков в асинхронных стриминговых вызовах LM через LiteLLM.
  • Fixed: В dspy.Embedder теперь корректно учитывается параметр caching=False как для синхронных, так и для асинхронных вызовов.
  • Added: Удалено верхнее ограничение на версию библиотеки litellm.
  • Обновлены зависимости для тестирования, разработки и документации, а также улучшены процессы CI/CD.
  • Обновлена страница use-case, исправлены ошибки в документации и переработана структура раздела Deployment.