Skip to main content

Version Compatibility

This page is for version assessment and pre-upgrade checks. It does not promise that every capability of every provider is fully symmetric; rather, it lays out the compatibility boundaries currently recommended by this docs site.

Baseline

ItemCurrent boundary
AI4J version2.4.2
Maven groupIdio.github.lnyo-cly
Java baselineJava 8 source / target
Build toolMaven
Test mainlineJUnit 4; live provider tests excluded by default
Docs site Node baselinedocs-site requires Node.js >=20.0

Module compatibility matrix

ArtifactCorresponding source moduleMinimal usage scenarioInternal dependencies
ai4jai4j/Core SDK capabilities: models, Tool, Skill, MCP, RAG, Memory, etc.No AI4J internal dependencies
ai4j-spring-boot-starterai4j-spring-boot-starter/Configuration-driven wiring for Spring Boot applicationsai4j
ai4j-agentai4j-agent/General-purpose Agent runtime, workflow, trace, teamai4j
ai4j-codingai4j-coding/Local codebase task runtime, workspace tools, compactionai4j, ai4j-agent
ai4j-cliai4j-cli/CLI, TUI, ACP host, session entry pointai4j-coding and its base dependencies
ai4j-flowgram-spring-boot-starterai4j-flowgram-spring-boot-starter/FlowGram.ai canvas backend execution layerai4j-agent, ai4j-spring-boot-starter
ai4j-bomai4j-bom/Multi-module version alignmentManages release artifact versions

Java 8 notes

AI4J's Java modules are still designed for Java 8 compatibility. Projects may run on a higher JDK, but the code and public API should not actively depend on Java 9+ language features unless a given task explicitly raises the baseline.

Two points to note:

  • ai4j contains runtime profiles targeting higher JDK versions, such as Nashorn / GraalPy-related profiles; these are optional runtime paths and do not change the main code baseline.
  • docs-site is a Docusaurus site whose Node.js baseline is independent of the Java SDK; it does not mean the Java modules require Node.js.

Provider capabilities are not fully symmetric

What AI4J unifies is the entry point, the request model, and the engineering mental model — not wrapping every provider into an identical capability surface. Before actual use, confirm against the Platform and Service Matrix:

  • The supported scope of Chat / Responses.
  • The supported scope of Embedding / Rerank.
  • Whether Image / Audio / Realtime are available only on specific provider paths.
  • Whether tool calling, streaming, and multimodal have provider-specific differences.

When wiring up a project, we recommend writing the provider capability matrix into your own onboarding docs rather than relying solely on default configuration.

Spring Boot compatibility

The Spring Boot starter is responsible for configuration binding, auto-configuration, and Bean lifecycle wiring. Before integrating, confirm:

  • Whether the project can adopt the current version of ai4j-spring-boot-starter.
  • Whether configuration keys fall under the ai.* namespace.
  • Whether both the single-instance configuration and the ai.platforms[] multi-instance registry need to coexist.
  • Whether you need to customize OkHttpClient, AiService, AiServiceRegistry, or business-side Beans.

We recommend starting from Spring Boot Overview and Configuration Reference.

Upgrade order

When using multiple AI4J modules at once, we recommend:

  1. Pin a single version with ai4j-bom.
  2. Upgrade ai4j and the minimal quickstart first.
  3. Then upgrade the starter, Agent, Coding Agent, or FlowGram.
  4. Cross-check against the Production Checklist to review keys, timeouts, logging, tool allowlists, MCP configuration, and regression commands.

Regression recommendations

ChangeMinimal check
Only docs-site content changednpm run build
Java API or provider support changedThe corresponding module: mvn -pl <module> -DskipTests=false test
Starter configuration changedmvn -pl ai4j-spring-boot-starter -DskipTests=false test
Agent / Coding Agent changedThe corresponding module tests + CLI or session-layer smoke
FlowGram starter changedStarter tests + demo or task API smoke
Do not commit keys to the repository

If live provider tests require real keys, run them explicitly under the live profile — do not commit keys to the repository.