? 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 實現基於代理商的工作流程和系統的獨特看法。它反映了我在這個令人興奮的領域的學習歷程和正在進行的研究。