Sobre o projeto
Floret é um motor Go projetado para construir agentes de IA interativos que podem usar ferramentas. Ele controla o loop do modelo e o ciclo de vida completo do Agente admitido, lidando com mensagens canônicas, threads, turnos, execuções, ferramentas, aprovações, tarefas, artefatos, contexto, SubAgentes, recuperação, estado do provedor, cache de prompt e fatos de execução observáveis. O aplicativo host é responsável pela UI do produto, credenciais, perfis de provedor, autorização de recursos, roteamento, estado de leitura, uploads antes da admissão e diagnósticos de transporte. Floret não é um framework de fluxo de trabalho gráfico, um orquestrador de multi-agentes ou uma camada de persistência de produto.
Recursos principais incluem:
- **Gerenciamento de Ciclo de Vida Durável**: Gerencia identidades de thread, turno e execução com registro canônico como a única fonte de verdade.
- **Integração de Ferramentas**: Suporta definições de ferramentas locais, permissões, recursos, efeitos e resultados, incluindo uma ferramenta segura de busca HTTP/HTTPS de texto público (`web_fetch`).
- **Manipulação de Contexto**: Mantém mensagens canônicas, referências e itens de contexto, suportando compactação e recuperação.
- **Gateway de Provedor**: Abstrai provedores de modelo por meio de um contrato `provider.Gateway`, com construtores oficiais para provedores compatíveis com OpenAI e DeepSeek.
- **Abstração de Armazenamento**: Fornece interfaces de armazenamento opacas com implementações oficiais de memória e SQLite, suportando integração avançada de armazenamento via SPI.
- **Observabilidade**: Emite eventos de tempo de execução sanitizados e projeções voltadas para o host para monitorar a execução do agente.
- **SubAgentes**: Suporta estruturas de agentes hierárquicas com relacionamentos explícitos de thread pai-filho.
- **Aprovação e Interação**: Gerencia aprovações de usuários, solicitações de entrada e respostas de interação, incluindo o tratamento de segredos redigidos.
A fronteira do tempo de execução é definida por `runtime.Host`, que fornece serviços de ciclo de vida tipados para gerenciamento de threads, incluindo operações de criação, bifurcação, exclusão, envio, resposta, cancelamento, repetição e assinatura. Floret garante leituras consistentes por meio de visualizações canônicas e suporta inicialização coordenada de armazenamento e restauração para ambientes multi-store. Ele inclui gerenciamento de metadados de modelo por meio de um snapshot offline de models.dev e impõe validação rigorosa de entrada de modelo com oportunidades limitadas de regeneração para argumentos de ferramenta inválidos.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.