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。