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。