这个项目能做什么
Floret 是一个专门为构建交互式 AI 代理而设计的 Go 引擎,这些代理能够使用工具。它拥有模型循环和完整的已准入代理生命周期,处理规范消息、线程、回合、运行、工具、审批、待办事项、工件、上下文、子代理、恢复、提供商状态、提示缓存和可观察的执行事实。主机应用程序负责产品 UI、凭证、提供商配置文件、资源授权、路由、读取状态、准入前的上传以及传输诊断。Floret 明确不是一个图表工作流框架、一个多代理协调器,也不是一个产品持久层。
主要特性包括:
- **持久的生命周期管理**:管理线程、回合和运行的身份,并以规范日志作为单一事实来源。
- **工具集成**:支持本地工具定义、权限、资源、效果和结果,包括一个用于公共文本 HTTP/HTTPS 获取的安全工具(`web_fetch`)。
- **上下文处理**:维护规范消息、引用和上下文项,支持压缩和恢复。
- **提供商网关**:通过 `provider.Gateway` 合约抽象化模型提供商,并为 OpenAI 兼容和 DeepSeek 提供商提供官方构造函数。
- **存储抽象**:提供不透明的存储接口,并附带官方的内存和 SQLite 实现,支持通过 SPI 进行高级存储集成。
- **可观察性**:发出经过消毒的运行时事件和面向主机的投影,用于监控代理执行。
- **子代理**:支持具有明确父子线程关系的层次化代理结构。
- **审批与交互**:管理用户审批、输入请求和交互响应,包括对秘密的红线处理。
运行时边界由 `runtime.Host` 定义,它为线程管理提供类型化的生命周期服务,包括创建、分叉、删除、发送、响应、取消、重试和订阅操作。Floret 通过规范视图确保一致的读取,并支持多存储环境中的协调存储启动和恢复。它包括通过离线 models.dev 快照进行的模型元数据管理,并对模型输入进行严格验证,对无效的工具参数提供有限的再生机会。
评论
0 评分人数达到10人后显示
登录后参与讨论。