? Floki 正处于开发的早期阶段。作为正在进行的研究的一部分,该框架正在积极发展,我仍在探索和学习如何有效地集成 Dapr。随着框架的成熟和见解的完善,API 和核心结构预计会发生重大变化。
Floki 是一个开源框架,供研究人员和开发人员试验基于 LLM 的自主代理。它提供了创建、编排和管理代理的工具,同时无缝连接到 LLM 推理 API。 Floki 基于 Dapr 构建,利用统一的编程模型来简化微服务并支持确定性工作流程和事件驱动的交互。使用 Dapr 的 Virtual Actor 模式,Floki 使代理能够充当独立、自包含的单元,按顺序处理消息,消除并发问题,同时无缝集成到更大的工作流程中。它还通过 Dapr 的 Pub/Sub 集成促进代理协作,其中代理通过共享消息总线进行通信,从而简化了工作流程的设计,从而有效地分发任务,并且代理一起工作以实现共同目标。通过将这些功能结合在一起,Floki 提供了一种强大的方法来探索代理工作流程和组件,使多代理系统能够协作和扩展,所有这些都由 Dapr 提供支持。
Dapr 为 Floki 提供了统一的编程模型,通过为服务调用、Pub/Sub 消息传递、工作流甚至状态管理等功能提供内置 API,简化了弹性和可扩展系统的开发。这些组件对于定义代理工作流程至关重要,使开发人员能够专注于设计代理和工作流程,而不是重建基础功能。通过利用 Dapr 的 sidecar 架构和可移植的事件驱动运行时,Floki 还使代理能够有效协作、共享任务并跨云和边缘环境动态适应。这种无缝集成将确定性工作流程和基于 LLM 的决策集成到一个统一的系统中,从而更轻松地试验多代理系统和可扩展的代理工作流程。
服务到服务调用:通过内置服务发现、错误处理和分布式跟踪促进代理之间的直接通信。代理可以利用它在多代理工作流程中进行同步消息传递。
⚡️发布和订阅:通过共享消息总线支持代理之间的松散耦合协作。这使得实时、事件驱动的交互成为可能,这对于任务分配和协调至关重要。
工作流程 API :定义长期运行、持久的工作流程,将确定性流程与基于 LLM 的决策相结合。 Floki 使用它来无缝编排复杂的多步骤代理工作流程。
?状态管理:为代理提供灵活的键值存储,以保留交互中的上下文,确保工作流程期间的连续性和适应性。
? Actors :实现虚拟 Actor 模式,允许代理作为独立的、有状态的单元运行,按顺序处理消息。这消除了并发问题并增强了 Floki 代理系统的可扩展性。
确保您已经安装了 Python。 Python >=3.9
pip 安装 floki-ai
pip install git+https://github.com/Cyb3rWard0g/floki.git
poetry
的来源:git 克隆 https://github.com/Cyb3rWard0g/flokicd floki 诗歌装置
安装 Dapr CLI 来管理与 Dapr 相关的任务,例如使用 sidecar 运行应用程序、查看日志以及启动 Dapr 仪表板。它可以与自托管环境和 Kubernetes 环境无缝协作。如需完整的分步指南,请访问官方 Dapr CLI 安装页面。
通过重新启动终端/命令提示符并运行以下命令来验证 CLI 是否已安装:
达普-h
确保您已经安装了 Docker。我使用 Docker 桌面。
本地初始化Dapr,搭建自托管开发环境。此过程安装 Dapr sidecar 二进制文件,运行 Redis(状态存储和消息代理)和 Zipkin(可观察性)等基本服务,并准备默认组件文件夹。详细步骤请参见本地初始化Dapr官方指南。
要初始化 Dapr 控制平面容器并创建默认配置文件,请运行:
达普初始化
验证您是否有运行daprio/dapr
、 openzipkin/zipkin
和redis
映像的容器实例:
码头工人
Floki 的诞生源于对 Dapr 及其构建代理系统潜力的更多探索和了解的愿望。我想了解如何将代理部署为服务、管理消息通信以及有效连接各种组件。在此过程中,我参考了几个已建立的想法和指导框架,这有助于塑造我的思维和方法:
https://github.com/microsoft/autogen
https://github.com/langchain-ai/langchain
https://github.com/run-llama/llama_deploy
虽然这些框架提供了宝贵的见解,但 Floki 是我对如何利用 Dapr 实现基于代理的工作流程和系统的独特看法。它反映了我在这个令人兴奋的领域的学习历程和正在进行的研究。