CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-embabel-agent--embabel-agent-platform-autoconfigure

Spring Boot auto-configuration platform for Embabel Agent Framework, enabling annotation-driven profile activation and bootstrapping of agent configurations with MCP client support

Overview
Eval results
Files

setup.mddocs/guides/

Setup Guide

Complete setup instructions for Embabel Agent Platform Auto-Configuration.

Basic Setup

Step 1: Add Dependencies

<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>

Step 2: Configure Model Provider

OpenAI:

spring.ai.openai.api-key=sk-...
spring.ai.openai.chat.options.model=gpt-4

Anthropic:

spring.ai.anthropic.api-key=sk-ant-...
spring.ai.anthropic.chat.options.model=claude-3-5-sonnet-20241022

Ollama (local):

spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=llama2

Step 3: Enable Auto-Configuration

Option 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);
    }
}

Step 4: Verify Setup

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.

Model Provider Setup

OpenAI

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.7

Anthropic Claude

Dependency:

<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-20241022

AWS Bedrock

Dependency:

<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:0

Azure OpenAI

Dependency:

<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-4

Google Vertex AI

Dependency:

<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-pro

Profile-Based Setup

Development Profile

application-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 debugging

Production Profile

application-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: true

Test Profile

application-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-turbo

Gradle Setup

dependencies {
    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'
}

Troubleshooting

Error: "No qualifying bean of type 'ModelProvider'"

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-key

Error: "NoClassDefFoundError: org/springframework/web/servlet/..."

Cause: Missing spring-boot-starter-web dependency.

Solution:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Warning: "AgentPlatformAutoConfiguration not loading"

Cause: Auto-configuration not on classpath or explicitly excluded.

Solution:

  1. Verify dependency is present
  2. Check for exclusions:
// Remove if present:
@SpringBootApplication(exclude = {AgentPlatformAutoConfiguration.class})

MCP Client Initialization Failures

Log Message:

ERROR c.e.a.a.p.QuiteMcpClientAutoConfiguration -
Failed to initialize MCP Sync Client: my-client - Application startup will continue

Cause: MCP server unavailable or misconfigured.

Solution:

  • Verify MCP server is running
  • Check transport configuration
  • Review error stack trace for specific issue
  • Application continues - client simply not available

Install with Tessl CLI

npx tessl i tessl/maven-com-embabel-agent--embabel-agent-platform-autoconfigure@0.3.0

docs

index.md

SCORING.md

tile.json