Files
java-ai-agents/README.md
T

32 lines
1.5 KiB
Markdown

# java-ai-agents
Companion code for the ankurm.com posts on agents on the JVM. Every number and transcript quoted in a post
comes from a file in a module's `output/` folder, and the tests that write those files also assert the same
facts, so the build fails when a claim stops being true.
| Module | Post | What it shows |
|---|---|---|
| `embabel` | Embabel: Goal-Oriented AI Agents on the JVM | actions, goals, conditions and cost-based planning with GOAP, compared with plain Spring AI |
| `a2a` | A2A Protocol in Java: Agents That Talk to Each Other | agent card, tasks, streaming, input-required and agent-to-agent calls with the A2A Java SDK |
## Versions (verified on Maven Central, 2026-10-11)
| Component | Version | Note |
|---|---|---|
| Embabel `embabel-agent-api` | 1.5.3 | brings Spring AI 2.0.1 and Spring Boot 4.1.1 transitively |
| A2A Java SDK `io.github.a2asdk` | 1.0.0.Alpha3 | alpha; targets A2A protocol 1.0. The newest stable release, 0.3.3.Final, targets the 0.3 protocol and its API differs |
| JDK | 25 LTS | |
| JUnit | 6.1.3 | |
## Run
```bash
export JAVA_HOME=/path/to/jdk-25
mvn test # everything
mvn test -pl a2a -am # one module
```
No API key is needed. The A2A agents contain no model call, because the protocol is the subject. The Embabel tests use `ScriptedLlmOperations`, the scripted stand-in shipped inside
`embabel-agent-api`, and the Spring AI comparison uses a small scripted `ChatModel`.
Each module writes its transcripts to `<module>/output/` when you run the tests.