Об этом проекте
Floret — это многоразовый движок на Go, предназначенный для создания интерактивных агентов ИИ, которые могут использовать инструменты. Он владеет модельным циклом и полным жизненным циклом допущенного агента, обрабатывая канонические сообщения, потоки, ходы, запуски, инструменты, одобрения, задачи, артефакты, контекст, субагентов, восстановление, состояние провайдера, кэш подсказок и наблюдаемые факты выполнения. Хост-приложение отвечает за пользовательский интерфейс продукта, учетные данные, профили провайдеров, авторизацию ресурсов, маршрутизацию, состояние чтения, загрузки до допуска и диагностику транспорта. Floret явно не является фреймворком графового рабочего процесса, оркестратором многоагентных систем или слоем сохранения продукта.
Ключевые особенности включают:
- **Управление устойчивым жизненным циклом**: Управляет идентификаторами потоков, ходов и запусков с каноническим журналированием как единственным источником истины.
- **Интеграция инструментов**: Поддерживает локальные определения инструментов, разрешения, ресурсы, эффекты и результаты, включая безопасный инструмент для получения публичного текста по HTTP/HTTPS (`web_fetch`).
- **Обработка контекста**: Поддерживает канонические сообщения, ссылки и элементы контекста, поддерживая уплотнение и восстановление.
- **Шлюз провайдера**: Абстрагирует провайдеров моделей через контракт `provider.Gateway` с официальными конструкторами для совместимых с OpenAI и DeepSeek провайдеров.
- **Абстракция хранения**: Предоставляет непрозрачные интерфейсы хранения с официальными реализациями в памяти и SQLite, поддерживая расширенную интеграцию хранения через SPI.
- **Наблюдаемость**: Генерирует санитизированные события выполнения и проекции для хоста для мониторинга выполнения агента.
- **Субагенты**: Поддерживает иерархические структуры агентов с явными отношениями родитель-потомок.
- **Одобрение и взаимодействие**: Управляет одобрениями пользователей, запросами на ввод и ответами на взаимодействие, включая обработку скрытых секретов.
Граница выполнения определяется `runtime.Host`, который предоставляет типизированные сервисы жизненного цикла для управления потоками, включая создание, разветвление, удаление, отправку, ответ, отмену, повтор и подписку. Floret обеспечивает согласованное чтение через канонические представления и поддерживает скоординированный запуск и восстановление хранения для сред с несколькими хранилищами. Он включает управление метаданными модели через офлайн-снимок models.dev и накладывает строгую валидацию ввода модели с ограниченными возможностями регенерации для неверных аргументов инструментов.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.