Skip to main content

Module 24: Spring Boot Client

Use the autoconfigured ACP client in a Spring Boot application. Connect to agents with just properties — no manual transport or client construction.

Prerequisites

What You’ll Learn

  • Injecting AcpSyncClient from autoconfiguration
  • Configuring the client transport via application.properties
  • Property-driven transport selection (stdio vs WebSocket)

Dependencies

Same starter as the agent side:
As of 0.80.0, the starter is a module of the ACP Java SDK itself (com.agentclientprotocol, replacing org.springaicommunity); see the 0.80.0 migration guide. The downloadable module builds against the released starter (SDK 0.18.0) by default; build with -Psdk-candidate to use the SDK’s own starter at the coordinates shown above.

The Client

The autoconfigured AcpSyncClient is injected like any Spring bean:

Configuration

application.properties:
The autoconfiguration detects the stdio.command property and creates a StdioAcpClientTransport that launches the agent as a subprocess. The explicit request-timeout=60s above now just restates the default (it used to raise it from 30s); it’s harmless to leave in, and makes the intent explicit regardless of what the default happens to be.

What the Autoconfiguration Does

  1. Detects transport properties: stdio.command triggers stdio transport; websocket.uri triggers WebSocket; http.uri triggers Streamable HTTP
  2. Creates AcpSyncClient and AcpAsyncClient: configured with timeout and client capabilities
  3. Manages shutdown: the client, transport, and agent beans are closed once by the autoconfiguration’s own lifecycle, not left to Spring’s inferred close()

Transport Selection

The autoconfiguration picks the transport based on which properties are set:

Build & Run

Client Configuration Properties

View on GitHub