Перейти к содержимому
Phronesis v0.1.0 alpha доступнаПрочитать анонс
Phronesis

Open source · Apache 2.0 · Python 3.11+

Практическая мудрость для систем ИИ-агентов.

Phronesis (φρόνησις): для Аристотеля — практическая мудрость — способность хорошо рассуждать и действовать с рассудительностью в конкретных ситуациях. У LLM есть episteme (знание). Агенту нужна phronesis.

hello_phronesis.py
from phronesis import Agent, anthropic

researcher = Agent(
    name="researcher",
    model=anthropic("claude-opus-4-7"),
    system_prompt="You investigate questions thoroughly and cite sources.",
)

answer = await researcher.run("What is phronesis in Aristotelian ethics?")

Зачем Phronesis

Агент — это не чат-бот с инструментами.

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

Существующие фреймворки навязывают выбор. С одной стороны — произвольный поток управления в виде кода: максимум выразительности и мультиагентная система, которую через полгода никто не сможет отладить. С другой — всё описано в YAML или конструкторах графов: понятно с первого взгляда, невозможно как только нужно что-то нетривиальное. Phronesis отделяет декларативную спецификацию от исполнения. Агенты, инструменты, память и конвейеры — это типизированные, неизменяемые, сериализуемые в JSON спецификации. Паттерны исполнения берутся из замкнутого, чётко определённого каталога — выразительность без хаоса.

Каждый запуск наблюдаем через OpenTelemetry, каждая спецификация версионируется, каждый контракт — это рантайм-проверка, а не комментарий в промпте. В этом разница между фреймворком, который рождает демо, и тем, который рождает системы, которые можно эксплуатировать.

Обзор кода

API в четырёх фрагментах.

Настоящий Python. Настоящая форма. Фреймворк ниже в ранней альфе — поверхность будет расти, но дизайн останется таким же лаконичным.

Агент связывает модель, инструменты и память под одной декларативной спецификацией.

agent.py
from phronesis import Agent, anthropic
from phronesis.memory import SemanticMemory

agent = Agent(
    name="assistant",
    model=anthropic("claude-opus-4-7"),
    tools=[search_web, read_file],
    memory=SemanticMemory(scope="session"),
    system_prompt="You are a careful research assistant.",
)

Паттерны

Сделано для повторяющихся форм агентов.

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

    Агенты, собирающие информацию, рассуждающие о ней и синтезирующие ответы с цитатами.

  • Документные агенты

    Агенты, читающие, структурирующие и действующие над документами с явной памятью того, что видели.

  • Многоагентные конвейеры

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

  • Помощники с инструментами

    Агенты, вызывающие типизированные инструменты и MCP-серверы под явными контрактами безопасности.

Принципы

Шесть выборов, применённых везде.

  • Композиция вместо наследования

    Агенты конфигурируются из частей — модель, инструменты, память, промпты — а не наследуются. Вы собираете; вы не переопределяете.

  • Сначала async

    Потоковая передача, конкурентность и отмена — базовые предположения. Никакого синхронного теневого API поддерживать не нужно.

  • Строго типизировано

    Pydantic v2 повсюду. Типы — не документация, а рантайм-контракты, которые фреймворк обеспечивает.

  • Неизменяемые спеки, изменяемые запуски

    Определения сериализуемы в JSON и воспроизводимы. Состояние исполнения живёт отдельно, наблюдаемо и запросимо.

  • Встроенная наблюдаемость

    Спаны OpenTelemetry для каждого запуска агента, вызова инструмента и этапа конвейера — с первого коммита, а не прикручено потом.

  • Закрытый каталог паттернов исполнения

    Sequence, Parallel, ReActLoop, Consensus, Debate, Handoff. Именованные режимы, о которых можно рассуждать, — а не произвольный поток управления.

Что внутри

Маленькая, принципиальная поверхность.

Фреймворк намеренно узкий. Каждый слой заслуживает место либо тем, что делает систему безопаснее в эксплуатации, либо тем, что упрощает чтение кода через полгода.

Ядро

Примитивы, из которых строится каждый агент.

  • Агенты
  • Инструменты
  • Интеграция MCP
  • Промпты
  • Возможности

Состояние и контекст

Как агенты помнят и что они делят.

  • Память (эпизодическая, семантическая, рабочая, общая)
  • Управление контекстом
  • Сессии

Оркестрация

Как агенты складываются в системы.

  • Конвейеры
  • Режимы исполнения
  • Межагентное взаимодействие
  • Политики
  • Наблюдаемость

Установка

Одна команда. Python 3.11 или новее.

$pip install phronesis-framework

Статус проекта

Phronesis в ранней альфа-версии.

API будет меняться. Мы работаем публично, чтобы построить фреймворк, который относится к системам агентов серьёзно — типизированный, компонуемый, наблюдаемый. Никаких заявлений о продакшене, никаких выдуманных кейсов, никаких корпоративных барьеров. Только код и честная приверженность его дизайну.

Обратная связь, идеи и вклад приветствуются через GitHub Discussions и Issues. Дорожная карта, шероховатости и открытые вопросы — всё в репозитории.