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: 一個序列化且具備類型的狀態儲存器,可跨非同步任務與同步邊條件運作。