a-agmon/rs-graph-llm
High-performance framework for building interactive workflow systems in Rust. Designed for complex workflows and multi-agent systems
What it solves
graph-flow 提供了一種在 Rust 中建立複雜、有狀態 AI Agent 工作流的方法。它解決了管理長期運行的 Agent 程序時的困難,例如需要暫停以等待人類輸入、根據 LLM 決策進行分支,或是在系統重啟後恢復,同時還能保持類型安全性與高效能。
How it works
該框架使用基於圖形的執行引擎,其中工作流由 Tasks(節點)和 Edges(連接)組成。
- State Management: 一個執行緒安全的
Context會儲存具備類型的鍵值對數據與對話歷史,這些數據會被序列化並持久化到Session中。 - Execution Control: Tasks 會回傳
NextAction來決定流程。這允許「逐步」執行(在一個 Task 之後將控制權交還給呼叫者)或「發射後不管」(fire-and-forget)執行(在遇到暫停之前,以鏈式方式運行多個 Tasks)。 - Routing: 引擎支援標準邊(edges)、條件邊(根據上下文數據進行分支)以及用於同時運行多個子任務的
FanOutTask。 - Persistence: 它包含儲存後端(In-memory 與 PostgreSQL),以確保 Session 狀態在程序重啟後依然存在。
- LLM Integration: 透過與
Rig函式庫的可選整合,簡化了對話歷史的管理與與 LLM 提供商的互動。
Who it’s for
需要在 Rust 中建立生產級別的 AI Agent,且需要類似於 LangGraph 但具備 Rust 的效能與類型保證的工作流引擎的開發者。
Highlights
- Human-in-the-loop: 內建
WaitForInput動作來暫停工作流,直到外部輸入被提供。 - Flexible Execution: 混合了互動式的逐步執行與自動化的連續鏈式執行。
- State Persistence: 原生支援 PostgreSQL 以進行 Session 儲存,並使用樂觀鎖(optimistic locking)來防止競態條件。
- Parallelism:
FanOutTask允許在單個節點內同時執行子任務。 - Type-Safe Context: 一個序列化且具備類型的狀態儲存器,可跨非同步任務與同步邊條件運作。