langgraph4j/langgraph4j

🚀 LangGraph for Java. A library for develop AI Agentic Architectures in the Java ecosystem. Designed to work seamlessly with both Langchain4j and Spring AI.

What it solves

LangGraph4j 提供了一種在 Java 中構建複雜、有狀態、多代理 AI 應用的方法。它解決了傳統線性工作流程的限制,允許開發者建立循環圖形,使代理、工具與自訂邏輯能夠回環、重試任務或協作,同時在整個過程中維持共享記憶(狀態)。

How it works

此函式庫使用圖形架構,將應用邏輯拆分為:

  • StateGraph:定義節點與邊的主要結構。
  • AgentState:在節點之間傳遞的共享類似映射的物件。它使用「reducers」決定如何將新資料(如聊天訊息)合併到現有狀態中。
  • Nodes:執行個別工作(函式或類別)的單位,接收當前狀態、執行動作(例如呼叫 LLM),並回傳對狀態的更新。
  • Edges:定義流程的連接器。「Normal edges」為無條件轉換,而「Conditional edges」則根據當前狀態的邏輯動態決定下一個要訪問的節點。
  • Compilation:圖形會被驗證並編譯成不可變的 CompiledGraph 以供執行。

Who it’s for

適合使用 Java 開發 AI 代理或多代理系統的開發者,想要以結構化方式管理狀態與控制流程,尤其是已經使用 LangChain4j 或 Spring AI 等框架的使用者。

Highlights

  • Cyclical Workflows:支援迴圈,對於代理行為(如自我校正或迭代精煉)至關重要。
  • Ckeckpointing:能在任意時點保存與還原圖形的狀態,以便除錯或恢復長時間執行的程序。
  • Persistence:內建支援 MySQL、PostgreSQL、Redis、OracleDB、DynamoDB、CockroachDB 與 Hazelcast 的儲存器。
  • Visual Debugging:包含「LangGraph4j Studio」——一個用於視覺化檢查與執行圖形的 Web UI。
  • Framework Integration:原生支援 LangChain4j 與 Spring AI。