# 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 | ## 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 | | JDK | 25 LTS | | | JUnit | 6.1.3 | | ## Run ```bash export JAVA_HOME=/path/to/jdk-25 mvn test # everything mvn test -pl embabel -am # one module ``` No API key is needed. 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 `/output/` when you run the tests.