Aller au contenu
Phronesis v0.1.0 alpha est disponibleLire l'annonce
Phronesis

Open source · Apache 2.0 · Python 3.11+

Sagesse pratique pour les systèmes d'agents IA.

Phronesis (φρόνησις) : pour Aristote, sagesse pratique — la capacité de délibérer avec justesse et d'agir avec discernement dans des situations concrètes. Un LLM possède episteme (connaissance). Un agent a besoin de 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?")

Pourquoi Phronesis

Un agent n'est pas un chatbot équipé d'outils.

Les LLM savent des choses — c'est épistémè. Mais les agents doivent décider et agir avec discernement dans des situations concrètes. C'est phronesis. La plupart des frameworks d'agents les traitent comme des chatbots améliorés collés à une boucle d'utilisation d'outils. Phronesis les traite comme des systèmes délibératifs avec des contrats explicites : entrées typées, effets déclarés, mémoire bornée, modèles d'exécution nommés.

Les frameworks existants imposent un choix. D'un côté, vous écrivez un flux de contrôle arbitraire en code : expressivité maximale, et un système multi-agents que personne ne peut déboguer six mois plus tard. De l'autre, tout est décrit en YAML ou en constructeurs de graphes : lisible au premier coup d'œil, impossible dès que vous avez besoin de quelque chose de non trivial. Phronesis sépare la spécification déclarative de l'exécution. Les agents, outils, mémoire et pipelines sont des specs typées, immuables, sérialisables en JSON. Les modèles d'exécution proviennent d'un catalogue fermé et bien défini — expressivité sans chaos.

Chaque exécution est observable via OpenTelemetry, chaque spec est versionnable, chaque contrat est une vérification à l'exécution, pas un commentaire dans un prompt. C'est la différence entre un framework qui produit des démos et un qui produit des systèmes que vous pouvez exploiter.

Tour du code

L'API en quatre extraits.

Du vrai Python. De la vraie forme. Le framework ci-dessous est en alpha précoce — la surface va croître, mais le design restera aussi épuré.

Un agent lie un modèle, des outils et une mémoire dans une seule spec déclarative.

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.",
)

Modèles

Conçu pour les formes d'agents qui reviennent.

Ce sont des modèles que le framework prend en charge aujourd'hui. Ce ne sont pas des études de cas — nous n'avons pas encore d'utilisateurs en production à revendiquer, et nous ne prétendrons pas le contraire.
  • Agents de recherche

    Des agents qui rassemblent des informations, raisonnent dessus et synthétisent des réponses avec citations.

  • Agents documentaires

    Des agents qui lisent, structurent et agissent sur des documents avec une mémoire explicite de ce qu'ils ont vu.

  • Pipelines multi-agents

    Des pipelines composant des agents spécialisés via transferts, débat ou consensus.

  • Assistants utilisant des outils

    Des agents qui invoquent des outils typés et des serveurs MCP sous des contrats de sécurité explicites.

Principes

Six choix, appliqués partout.

  • Composition plutôt qu'héritage

    Les agents sont configurés à partir de pièces — modèle, outils, mémoire, prompts — pas sous-classés. Vous assemblez ; vous ne surchargez pas.

  • Async d'abord

    Streaming, concurrence et annulation sont des hypothèses de base. Il n'y a pas d'API synchrone fantôme à maintenir.

  • Fortement typé

    Pydantic v2 partout. Les types ne sont pas de la documentation — ce sont des contrats à l'exécution que le framework applique.

  • Specs immuables, exécutions mutables

    Les définitions sont sérialisables en JSON et reproductibles. L'état d'exécution vit à part, observable et interrogeable.

  • Observabilité intégrée

    Spans OpenTelemetry pour chaque exécution d'agent, appel d'outil et étape de pipeline — dès le premier commit, pas greffé après coup.

  • Catalogue fermé de modèles d'exécution

    Sequence, Parallel, ReActLoop, Consensus, Debate, Handoff. Des modes nommés sur lesquels vous pouvez raisonner — pas du flux de contrôle arbitraire.

Ce qu'il y a dedans

Une surface petite et de principe.

Le framework est intentionnellement étroit. Chaque couche gagne sa place en rendant un système plus sûr à exploiter ou en rendant le code plus simple à lire six mois plus tard.

Cœur

Les primitives à partir desquelles chaque agent est construit.

  • Agents
  • Outils
  • Intégration MCP
  • Prompts
  • Capacités

État et contexte

Comment les agents se souviennent et ce qu'ils partagent.

  • Mémoire (épisodique, sémantique, de travail, partagée)
  • Gestion du contexte
  • Sessions

Orchestration

Comment les agents se composent en systèmes.

  • Pipelines
  • Modes d'exécution
  • Communication inter-agents
  • Politiques
  • Observabilité

Installer

Une commande. Python 3.11 ou plus récent.

$pip install phronesis-framework

Statut du projet

Phronesis est en alpha précoce.

L'API va changer. Nous travaillons publiquement pour construire un framework qui prend au sérieux les systèmes d'agents — typé, composable, observable. Aucune revendication de production, aucune étude de cas inventée, aucune barrière entreprise. Juste le code, et un engagement honnête envers son design.

Retours, idées et contributions sont les bienvenus via GitHub Discussions et Issues. La feuille de route, les aspérités et les questions ouvertes sont toutes dans le dépôt.