Sobre el proyecto
Floret es un motor de Go diseñado para construir agentes de IA interactivos capaces de utilizar herramientas. Controla el bucle del modelo y el ciclo de vida completo del agente admitido, manejando mensajes canónicos, hilos, turnos, ejecuciones, herramientas, aprobaciones, tareas pendientes, artefactos, contexto, subagentes, recuperación, estado del proveedor, caché de prompts y hechos de ejecución observables. La aplicación host es responsable de la interfaz de usuario del producto, las credenciales, los perfiles de proveedor, la autorización de recursos, el enrutamiento, el estado de lectura, las cargas antes de la admisión y los diagnósticos de transporte. Floret no es un marco de trabajo de flujo de gráficos, un orquestador de múltiples agentes ni una capa de persistencia del producto.
Características clave incluyen:
- **Gestión de ciclo de vida duradero**: Administra identidades de hilos, turnos y ejecuciones con un registro canónico como fuente única de verdad.
- **Integración de herramientas**: Soporta definiciones de herramientas locales, permisos, recursos, efectos y resultados, incluyendo una herramienta segura de recuperación HTTP/HTTPS de texto público (`web_fetch`).
- **Manejo de contexto**: Mantiene mensajes canónicos, referencias y elementos de contexto, soportando compactación y recuperación.
- **Puerta de enlace de proveedor**: Abstrae proveedores de modelos a través de un contrato `provider.Gateway`, con constructores oficiales para proveedores compatibles con OpenAI y DeepSeek.
- **Abstracción de almacenamiento**: Proporciona interfaces de almacenamiento opacas con implementaciones oficiales de memoria y SQLite, soportando integración de almacenamiento avanzada a través de SPI.
- **Observabilidad**: Emite eventos de tiempo de ejecución sanitizados y proyecciones orientadas al host para el monitoreo de la ejecución del agente.
- **Subagentes**: Soporta estructuras de agentes jerárquicas con relaciones explícitas de hilo padre-hijo.
- **Aprobación e interacción**: Administra aprobaciones de usuario, solicitudes de entrada y respuestas de interacción, incluyendo el manejo de secretos redactados.
El límite del tiempo de ejecución está definido por `runtime.Host`, que proporciona servicios de ciclo de vida tipados para la gestión de hilos, incluyendo crear, bifurcar, eliminar, enviar, responder, cancelar, reintentar y suscribirse. Floret asegura lecturas consistentes a través de vistas canónicas y soporta el arranque coordinado del almacenamiento y la restauración para entornos de múltiples almacenes. Incluye la gestión de metadatos del modelo a través de una instantánea offline de models.dev y aplica una estricta validación de entrada del modelo con oportunidades limitadas de regeneración para argumentos de herramientas inválidos.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.