Spring Boot auto-configuration platform for Embabel Agent Framework, enabling annotation-driven profile activation and bootstrapping of agent configurations with MCP client support
Complete setup instructions for Embabel Agent Platform Auto-Configuration.
<dependencies>
<!-- Agent Platform Auto-Configuration -->
<dependency>
<groupId>com.embabel.agent</groupId>
<artifactId>embabel-agent-platform-autoconfigure</artifactId>
<version>0.3.3</version>
</dependency>
<!-- Spring Boot Web (required) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring AI Model Provider (required - choose one) -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
</dependencies>OpenAI:
spring.ai.openai.api-key=sk-...
spring.ai.openai.chat.options.model=gpt-4Anthropic:
spring.ai.anthropic.api-key=sk-ant-...
spring.ai.anthropic.chat.options.model=claude-3-5-sonnet-20241022Ollama (local):
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=llama2Option A: Auto-Discovery (Recommended)
@SpringBootApplication
public class MyAgentApp {
public static void main(String[] args) {
SpringApplication.run(MyAgentApp.class, args);
}
}Spring Boot auto-discovers AgentPlatformAutoConfiguration.
Option B: Explicit Import
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import com.embabel.agent.autoconfigure.platform.AgentPlatformAutoConfiguration;
@SpringBootApplication
@ImportAutoConfiguration(AgentPlatformAutoConfiguration.class)
public class MyAgentApp {
public static void main(String[] args) {
SpringApplication.run(MyAgentApp.class, args);
}
}Run the application and check logs:
INFO c.e.a.a.p.AgentPlatformAutoConfiguration - AgentPlatformAutoConfiguration has been initialized.
INFO c.e.a.a.p.ScanConfiguration - ComponentConfiguration initialized: Scanning com.embabel.agent packages.Dependency:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>Configuration:
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-4
spring.ai.openai.chat.options.temperature=0.7Dependency:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-anthropic-spring-boot-starter</artifactId>
</dependency>Configuration:
spring.ai.anthropic.api-key=${ANTHROPIC_API_KEY}
spring.ai.anthropic.chat.options.model=claude-3-5-sonnet-20241022Dependency:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bedrock-spring-boot-starter</artifactId>
</dependency>Configuration:
spring.ai.bedrock.aws.region=us-east-1
spring.ai.bedrock.anthropic-claude.chat.enabled=true
spring.ai.bedrock.anthropic-claude.chat.options.model=anthropic.claude-3-5-sonnet-20240620-v1:0Dependency:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
</dependency>Configuration:
spring.ai.azure.openai.api-key=${AZURE_OPENAI_API_KEY}
spring.ai.azure.openai.endpoint=${AZURE_OPENAI_ENDPOINT}
spring.ai.azure.openai.chat.options.deployment-name=gpt-4Dependency:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai-spring-boot-starter</artifactId>
</dependency>Configuration:
spring.ai.vertex.ai.project-id=${GCP_PROJECT_ID}
spring.ai.vertex.ai.location=us-central1
spring.ai.vertex.ai.chat.options.model=gemini-proapplication-dev.yml:
spring:
ai:
ollama:
base-url: http://localhost:11434
chat:
options:
model: llama2
embabel:
agent:
logging:
personality: starwars
spring.ai.mcp.client:
enabled: true
type: SYNC
request-timeout: 30s
initialized: false # Manual init for debuggingapplication-prod.yml:
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY}
chat:
options:
model: gpt-4
embabel:
agent:
logging:
personality: "" # No theme
spring.ai.mcp.client:
enabled: true
type: ASYNC
name: prod-agent
version: 1.0.0
request-timeout: 5s
initialized: trueapplication-test.properties:
# Disable MCP clients in tests
spring.ai.mcp.client.enabled=false
# Use test model
spring.ai.openai.chat.options.model=gpt-3.5-turbodependencies {
implementation 'com.embabel.agent:embabel-agent-platform-autoconfigure:0.3.3'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter'
}Cause: No Spring AI model provider configured.
Solution: Add model provider dependency and configuration:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>spring.ai.openai.api-key=your-keyCause: Missing spring-boot-starter-web dependency.
Solution:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>Cause: Auto-configuration not on classpath or explicitly excluded.
Solution:
// Remove if present:
@SpringBootApplication(exclude = {AgentPlatformAutoConfiguration.class})Log Message:
ERROR c.e.a.a.p.QuiteMcpClientAutoConfiguration -
Failed to initialize MCP Sync Client: my-client - Application startup will continueCause: MCP server unavailable or misconfigured.
Solution:
Install with Tessl CLI
npx tessl i tessl/maven-com-embabel-agent--embabel-agent-platform-autoconfigure@0.3.0