Saltar al contenido
Phronesis v0.1.0 alfa ya está disponibleLeer el anuncio
Phronesis

Código abierto · Apache 2.0 · Python 3.11+

Sabiduría práctica para sistemas de agentes de IA.

Phronesis (φρόνησις): para Aristóteles, sabiduría práctica — la capacidad de deliberar bien y actuar con juicio en situaciones concretas. Un LLM tiene episteme (conocimiento). Un agente necesita 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?")

Por qué Phronesis

Un agente no es un chatbot con herramientas.

Los LLM saben cosas — eso es episteme. Pero los agentes deben decidir y actuar con juicio en situaciones concretas. Eso es phronesis. La mayoría de los frameworks de agentes los tratan como chatbots mejorados pegados a un bucle de uso de herramientas. Phronesis los trata como sistemas deliberativos con contratos explícitos: entradas tipadas, efectos declarados, memoria delimitada, patrones de ejecución con nombre.

Los frameworks existentes obligan a elegir. Por un lado, escribes flujo de control arbitrario como código: máxima expresividad y un sistema multiagente que nadie puede depurar seis meses después. Por otro, todo se describe en YAML o constructores de grafos: legible a primera vista, imposible en cuanto necesitas algo no trivial. Phronesis separa la especificación declarativa de la ejecución en tiempo de ejecución. Agentes, herramientas, memoria, pipelines son especificaciones tipadas, inmutables y serializables a JSON. Los patrones de ejecución provienen de un catálogo cerrado y bien definido — expresividad sin caos.

Cada ejecución es observable mediante OpenTelemetry, cada especificación es versionable, cada contrato es una comprobación en tiempo de ejecución, no un comentario en un prompt. Esa es la diferencia entre un framework que produce demos y uno que produce sistemas que puedes operar.

Recorrido por el código

La API en cuatro fragmentos.

Python real. Forma real. El framework que ves abajo está en alfa temprana — la superficie crecerá, pero el diseño seguirá siendo así de delgado.

Un agente vincula un modelo, herramientas y memoria bajo una única especificación declarativa.

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

Patrones

Diseñado para las formas de agente que se repiten.

Estos son patrones que el framework soporta hoy. No son casos de estudio — aún no tenemos usuarios en producción que reclamar, y no fingiremos lo contrario.
  • Agentes de investigación

    Agentes que reúnen información, razonan sobre ella y sintetizan respuestas con citas.

  • Agentes de documentos

    Agentes que leen, estructuran y actúan sobre documentos con memoria explícita de lo que han visto.

  • Pipelines multiagente

    Pipelines que componen agentes especializados mediante traspasos, debate o consenso.

  • Asistentes con herramientas

    Agentes que invocan herramientas tipadas y servidores MCP bajo contratos de seguridad explícitos.

Principios

Seis decisiones, aplicadas en todas partes.

  • Composición sobre herencia

    Los agentes se configuran a partir de piezas — modelo, herramientas, memoria, prompts — no se heredan. Ensamblas; no sobrescribes.

  • Async primero

    Streaming, concurrencia y cancelación son supuestos básicos. No hay una API síncrona paralela que mantener.

  • Fuertemente tipado

    Pydantic v2 en todo. Los tipos no son documentación — son contratos en tiempo de ejecución que el framework hace cumplir.

  • Specs inmutables, ejecuciones mutables

    Las definiciones son serializables a JSON y reproducibles. El estado de ejecución vive aparte, observable y consultable.

  • Observabilidad integrada

    Spans de OpenTelemetry para cada ejecución de agente, llamada a herramienta y etapa de pipeline — desde el primer commit, no atornillado después.

  • Catálogo cerrado de patrones de ejecución

    Sequence, Parallel, ReActLoop, Consensus, Debate, Handoff. Modos con nombre sobre los que puedes razonar — no flujo de control arbitrario.

Qué hay dentro

Una superficie pequeña y con principios.

El framework es intencionadamente estrecho. Cada capa se gana su lugar haciendo que un sistema sea más seguro de operar o que el código sea más sencillo de leer seis meses después.

Núcleo

Los primitivos a partir de los que se construye cada agente.

  • Agentes
  • Herramientas
  • Integración con MCP
  • Prompts
  • Capacidades

Estado y contexto

Cómo recuerdan los agentes y qué comparten.

  • Memoria (episódica, semántica, de trabajo, compartida)
  • Gestión del contexto
  • Sesiones

Orquestación

Cómo se componen los agentes en sistemas.

  • Pipelines
  • Modos de ejecución
  • Comunicación entre agentes
  • Políticas
  • Observabilidad

Instalar

Un comando. Python 3.11 o superior.

$pip install phronesis-framework

Estado del proyecto

Phronesis está en alfa temprana.

La API cambiará. Estamos trabajando en público para construir un framework que se tome en serio los sistemas de agentes — tipado, componible, observable. Sin afirmaciones de producción, sin casos de estudio inventados, sin barreras empresariales. Solo el código, y un compromiso honesto con su diseño.

Los comentarios, ideas y contribuciones son bienvenidos a través de GitHub Discussions e Issues. La hoja de ruta, los detalles ásperos y las preguntas abiertas están todos en el repositorio.