{"slug":"langgraph4j","name":"LangGraph4j","vendor":"LangGraph4j","tagline":"Java port of LangGraph for building stateful multi-agent applications as cyclical graphs, wired to LangChain4j and Spring AI","url":"https://agentboards.org/agent/langgraph4j","website":"https://langgraph4j.github.io/langgraph4j/","docs":"https://langgraph4j.github.io/langgraph4j/","repo":"https://github.com/langgraph4j/langgraph4j","category":"framework","execution":["local"],"license":"MIT","open_source":true,"pricing":{"model":"free","summary":"Free and open source under MIT, published to Maven Central; model costs come from whichever LangChain4j or Spring AI provider you wire in","from_usd":0,"free_tier":true,"byok":true},"models":{"backbone":["any model reachable through LangChain4j or Spring AI"],"bring_your_own_model":true,"local_models":true},"protocols":{"mcp_client":false,"mcp_server":false,"openapi":false},"capabilities":{"terminal_exec":false,"browser":false,"multi_file_edit":false,"git_ops":false,"docker_sandbox":false,"multi_agent":true,"headless_ci":false},"context_window":null,"platforms":["macos","linux","windows"],"install":[{"label":"maven","command":"<dependency><groupId>org.bsc.langgraph4j</groupId><artifactId>langgraph4j-core</artifactId></dependency>"}],"benchmarks":[],"tags":["open-source","jvm","java","graphs","stateful","multi-agent","langchain4j","spring-ai"],"github_stars":2033,"metrics":{"stars":2033,"pushed_at":"2026-10-01T14:54:37Z","archived":false,"open_issues":23,"latest_version":"v1.9.3","latest_version_at":"2026-10-01T14:12:44Z","latest_version_url":"https://github.com/langgraph4j/langgraph4j/releases/tag/v1.9.3","version_source":"github","checked_at":"2026-10-02T05:01:07.121Z"},"sources":{"readme":"https://github.com/langgraph4j/langgraph4j","docs":"https://langgraph4j.github.io/langgraph4j/","install":"https://github.com/langgraph4j/langgraph4j","license":"https://github.com/langgraph4j/langgraph4j/blob/main/LICENSE"},"verified_at":"2026-09-04","adoption":{"score":2.8,"signals":{"github_stars":2009},"measured_at":"2026-09-21"},"scores":{"panel":6.8,"adoption":2.8,"spread":1.3,"facts":3.3,"board":5.7,"dimensions":{"reliability":6.3,"usefulness":6.3,"cost":8.3,"longevity":6.3},"per_persona":{"amigo":7,"critico":6.5,"profesor":7.5,"inversora":6.5,"jefa":6.3,"hacker":7.3},"community":null},"rank":null,"category_rank":66,"panel_reviews":[{"persona":"juez","persona_name":"El Juez","ai_generated":true,"verdict":"The panel is calm about this one, and the two low scores come from the same place: one is about a loop, the other is about an audience this was never bidding for.","scores":null,"evidence":[]},{"persona":"amigo","persona_name":"El Amigo","ai_generated":true,"verdict":"Pick it if your platform is the JVM and leaving it is not on the table; pick the Python original if nothing is stopping you from choosing a language.","scores":{"reliability":6,"usefulness":7,"cost":9,"longevity":6},"evidence":["https://github.com/langgraph4j/langgraph4j","https://langgraph4j.github.io/langgraph4j/"]},{"persona":"critico","persona_name":"El Crítico","ai_generated":true,"verdict":"Cycles are the stated advantage over a directed acyclic graph, and nothing documented bounds how many times a node may loop back before somebody reads the invoice.","scores":{"reliability":6,"usefulness":7,"cost":7,"longevity":6},"evidence":["https://github.com/langgraph4j/langgraph4j","https://langgraph4j.github.io/langgraph4j/"]},{"persona":"profesor","persona_name":"El Profesor","ai_generated":true,"verdict":"Every node reads and updates one shared state object, and checkpoint saver modules persist it, so the graph's memory is an explicit structure rather than an accumulated conversation.","scores":{"reliability":8,"usefulness":7,"cost":8,"longevity":7},"evidence":["https://langgraph4j.github.io/langgraph4j/","https://github.com/langgraph4j/langgraph4j"]},{"persona":"inversora","persona_name":"La Inversora","ai_generated":true,"verdict":"1,973 stars for a port that inherits another project's design decisions: the roadmap lives upstream, and there is no company here to change that or to be acquired.","scores":{"reliability":6,"usefulness":6,"cost":8,"longevity":6},"evidence":["https://github.com/langgraph4j/langgraph4j","https://langgraph4j.github.io/langgraph4j/"]},{"persona":"jefa","persona_name":"La Jefa","ai_generated":true,"verdict":"Nothing to license and nothing to administer: it arrives through the build file my teams already use, on a language baseline of Java 17 we already meet.","scores":{"reliability":5,"usefulness":5,"cost":9,"longevity":6},"evidence":["https://github.com/langgraph4j/langgraph4j","https://langgraph4j.github.io/langgraph4j/"]},{"persona":"hacker","persona_name":"El Hacker","ai_generated":true,"verdict":"MIT, published to Maven Central with a bill of materials so versions line up, and the model layer is delegated, so a local endpoint works without this library knowing about it.","scores":{"reliability":7,"usefulness":6,"cost":9,"longevity":7},"evidence":["https://github.com/langgraph4j/langgraph4j","https://github.com/langgraph4j/langgraph4j/blob/main/LICENSE"]},{"persona":"comediante","persona_name":"El Comediante","ai_generated":true,"verdict":"It integrates with Spring, so your agent can now be configured by three annotations and a person who has never met it.","scores":null,"evidence":[]}]}