Vai al contenuto
Phronesis v0.1.0 alfa è disponibileLeggi l'annuncio
Phronesis

Open source · Apache 2.0 · Python 3.11+

Saggezza pratica per sistemi di agenti IA.

Phronesis (φρόνησις): per Aristotele, saggezza pratica — la capacità di deliberare bene e agire con giudizio in situazioni concrete. Un LLM ha episteme (conoscenza). Un agente ha bisogno di 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?")

Perché Phronesis

Un agente non è un chatbot con strumenti.

Gli LLM sanno cose — quella è episteme. Ma gli agenti devono decidere e agire con giudizio in situazioni concrete. Quella è phronesis. La maggior parte dei framework per agenti li tratta come chatbot potenziati incollati a un ciclo d'uso degli strumenti. Phronesis li tratta come sistemi deliberativi con contratti espliciti: input tipizzati, effetti dichiarati, memoria limitata, pattern di esecuzione nominati.

I framework esistenti impongono una scelta. Da un lato, scrivi flusso di controllo arbitrario come codice: massima espressività e un sistema multi-agente che nessuno può debugare sei mesi dopo. Dall'altro, tutto è descritto in YAML o costruttori di grafi: leggibile a colpo d'occhio, impossibile appena serve qualcosa di non banale. Phronesis separa la specifica dichiarativa dall'esecuzione runtime. Agenti, strumenti, memoria e pipeline sono spec tipizzate, immutabili, serializzabili in JSON. I pattern di esecuzione provengono da un catalogo chiuso e ben definito — espressività senza caos.

Ogni esecuzione è osservabile tramite OpenTelemetry, ogni spec è versionabile, ogni contratto è un controllo runtime, non un commento in un prompt. Questa è la differenza fra un framework che produce demo e uno che produce sistemi che puoi gestire.

Tour del codice

L'API in quattro snippet.

Python vero. Forma vera. Il framework qui sotto è in alfa precoce — la superficie crescerà, ma il design rimarrà così snello.

Un agente lega un modello, strumenti e memoria sotto una singola spec dichiarativa.

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

Pattern

Progettato per le forme di agente che ricorrono.

Questi sono pattern che il framework supporta oggi. Non sono case study — non abbiamo ancora utenti in produzione da rivendicare, e non fingeremo il contrario.
  • Agenti di ricerca

    Agenti che raccolgono informazioni, ragionano su di esse e sintetizzano risposte con citazioni.

  • Agenti documentali

    Agenti che leggono, strutturano e agiscono su documenti con memoria esplicita di ciò che hanno visto.

  • Pipeline multi-agente

    Pipeline che compongono agenti specializzati tramite handoff, dibattito o consenso.

  • Assistenti con strumenti

    Agenti che invocano strumenti tipizzati e server MCP sotto contratti di sicurezza espliciti.

Principi

Sei scelte, applicate ovunque.

  • Composizione invece di ereditarietà

    Gli agenti sono configurati a partire da pezzi — modello, strumenti, memoria, prompt — non sottoclassati. Assembli; non sovrascrivi.

  • Async first

    Streaming, concorrenza e cancellazione sono ipotesi di base. Non c'è un'API sincrona ombra da mantenere.

  • Fortemente tipizzato

    Pydantic v2 ovunque. I tipi non sono documentazione — sono contratti runtime che il framework fa rispettare.

  • Spec immutabili, run mutabili

    Le definizioni sono serializzabili in JSON e riproducibili. Lo stato di esecuzione vive a parte, osservabile e interrogabile.

  • Osservabilità integrata

    Span OpenTelemetry per ogni run di agente, chiamata di strumento e stage di pipeline — dal primo commit, non avvitati dopo.

  • Catalogo chiuso di pattern d'esecuzione

    Sequence, Parallel, ReActLoop, Consensus, Debate, Handoff. Modalità con un nome su cui puoi ragionare — non flusso di controllo arbitrario.

Cosa c'è dentro

Una superficie piccola e con principi.

Il framework è intenzionalmente stretto. Ogni strato si guadagna il posto rendendo un sistema più sicuro da operare o il codice più semplice da leggere sei mesi dopo.

Nucleo

Le primitive da cui è costruito ogni agente.

  • Agenti
  • Strumenti
  • Integrazione MCP
  • Prompt
  • Capacità

Stato e contesto

Come gli agenti ricordano e cosa condividono.

  • Memoria (episodica, semantica, di lavoro, condivisa)
  • Gestione del contesto
  • Sessioni

Orchestrazione

Come gli agenti si compongono in sistemi.

  • Pipeline
  • Modalità d'esecuzione
  • Comunicazione tra agenti
  • Politiche
  • Osservabilità

Installa

Un comando. Python 3.11 o successivo.

$pip install phronesis-framework

Stato del progetto

Phronesis è in alfa precoce.

L'API cambierà. Stiamo lavorando in pubblico per costruire un framework che prenda sul serio i sistemi di agenti — tipizzato, componibile, osservabile. Nessuna rivendicazione di produzione, nessun caso studio inventato, nessuna barriera enterprise. Solo il codice e un impegno onesto verso il suo design.

Feedback, idee e contributi sono benvenuti via GitHub Discussions e Issues. La roadmap, le asperità e le questioni aperte sono tutte nel repository.