This repository contains a set of small, focused Spring Boot applications that explore different multi-agent patterns using Spring AI. It is part of a personal learning journey into agentic systems, not an official framework.
The goals for each module are to be:
- Narrow in scope (one main idea per module)
- Easy to read, clone, and modify
- Explicit about orchestration and data flow
As new ideas are explored, additional modules will be added alongside 1-orchestration.
Demo that accompanies the article "Building a Multi-Agent Application with Spring AI � Part 1: Orchestration". It focuses on:
- Explicit orchestration in application code (no agent runtime or graph)
- Clear, structured contracts between agents
- Controlled context passing and Redis-backed chat memory
- A repeatable internal agent pattern (config, service, result, domain contract)
See the module README for details:
1-orchestration/README.md
Planned areas for additional demos include:
- Testability and deterministic agent behavior
- Observability and tracing across agents
- Failure handling and recoverability
Each new demo will live in its own numbered submodule (for example, 2-<name>, 3-<name>).
multi-agent-app-spring-ai/
├── build.gradle.kts # Root Gradle configuration
├── settings.gradle.kts # Multi-module declaration
├── gradle.properties # Shared versions and project metadata
├── 1-orchestration/ # Demo 1: orchestration-focused multi-agent app
└── [future demo modules]/
- Java 21
- Gradle wrapper (included in this repo)
- Docker (to run Redis via docker compose, optional but recommended)
- Redis instance (for modules that use chat memory)
- OpenAI API key and any module-specific credentials (for example, Bluesky for
1-orchestration)
From the repository root:
./gradlew buildFrom the repository root:
./gradlew :1-orchestration:bootRunThe application starts in CLI mode, runs the multi-agent pipeline, and prints the final markdown report to the console.
To start a local Redis instance using Docker Compose (recommended for demos):
docker compose up -dThis uses the docker-compose.yml file at the project root and exposes Redis on localhost:6379.
When you are ready to add another demo:
- Create the module directory (for example,
2-your-demo-name/). - Add it to
settings.gradle.kts:include("2-your-demo-name") - Create
2-your-demo-name/build.gradle.ktswith a short description and any extra dependencies. - Add a standard Spring Boot structure under
2-your-demo-name/src/. - Document the module in its own
README.md.
This repository is the code companion for the article series:
- "Building a Multi-Agent Application with Spring AI � Part 1: Orchestration" (link to be added)