Repository navigation
1.0
af4j 1.0 is the first release with a stable API. It is the runtime the last four releases were building towards: a graph engine for multi-agent workflows on the JVM where governance is part of execution, not something bolted on top.
Coming from 0.10.0, nothing changes: this release freezes the API rather than reshaping it.
What af4j gives you
- Governed execution.
ToolPolicyon every tool call,StatePolicyon every state write,ApprovalGatebefore any node,BudgetPolicycapping a run, a node or a call. The same rules hold whether youinvokeorinvokeStream. - Durable runs. Checkpoints in memory, JDBC or Redis;
resume(runId, ResumeOptions)continues a paused or crashed run, and a rerun after a rejected approval skips the nodes that already ran instead of repeating their side effects. - Parallel branches. Independent branches run concurrently with bounded concurrency, state merges deterministically, and an approval pauses only the branch it gates.
- Reason-aware resilience. A
FailureClassifiersorts failures into transient, permanent and over-budget, so retries stop being blind. - Observability. A run log of every node, transition and governance event, Micrometer metrics, and lifecycle hooks for checkpoints, tool calls, approvals and budget breaches.
- Spring AI native, provider agnostic. Any
ChatClient, MCP tools governed like any other tool, and an OpenHands node for coding tasks.
API stability from here
The public API of agentflow4j-core, agentflow4j-graph, agentflow4j-checkpoint, agentflow4j-squad and agentflow4j-test is stable: a breaking change waits for 2.0. Types marked @Experimental are the exception and may change in a minor release: AgentSquad, ParallelAgent, BudgetAwareRouter, CliAgentNode, the agentflow4j.squad.* properties, and the agentflow4j-openhands module, which tracks the OpenHands V1 API.
Cookbook
Eleven runnable recipes, from a RAG agent to a governed OpenHands workflow: agentflow4j-cookbook.
Docs
Install (JitPack)
<dependency>
<groupId>com.github.datallmhub.agentflow4j</groupId>
<artifactId>agentflow4j-starter</artifactId>
<version>v1.0.0</version>
</dependency>