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 来决定流程。这允许进行 "step-by-step" 执行(在完成一个 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 动作来挂起工作流,直到外部输入被提供。
  • Human-in-the-loop: 内置 WaitForInput 动作来挂起工作工作流,直到外部输入被提供。
  • Flexible Execution: 混合了交互式逐步执行与自动化的连续链式执行。
  • State Persistence: 原生支持 PostgreSQL 存储 session 状态,并使用乐观锁(optimistic locking)支持实现对冲冲撞,防止竞态条件。
  • Parallelismism: FanOutTask 允许在单个节点内并发执行子任务。
  • Type-Safe Context: 一个序列化、类型化的状态存储器,可跨异步任务和同步边条件工作。