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

auto-configuration.mddocs/api/

Auto-Configuration API Reference

AgentPlatformAutoConfiguration

/**
 * Main auto-configuration bootstrapping Agent Platform, Tools, and MCP clients.
 * Auto-discovered via META-INF/spring/...AutoConfiguration.imports
 */
@AutoConfiguration
@ImportAutoConfiguration({QuiteMcpClientAutoConfiguration.class})
@Import({CommonPlatformPropertiesLoader.class, ScanConfiguration.class,
         AgentPlatformConfiguration.class, ToolGroupsConfiguration.class})
public class AgentPlatformAutoConfiguration {
}

Imports:

  • QuiteMcpClientAutoConfiguration - MCP client with resilience
  • CommonPlatformPropertiesLoader - Platform properties (from embabel-agent-api)
  • ScanConfiguration - Component scanning
  • AgentPlatformConfiguration - Agent platform (from embabel-agent-api)
  • ToolGroupsConfiguration - Tools config (from embabel-agent-api)

Usage:

// Explicit import
@ImportAutoConfiguration(AgentPlatformAutoConfiguration.class)

// Exclude
@SpringBootApplication(exclude = {AgentPlatformAutoConfiguration.class})

// Or let Spring Boot auto-discover (recommended)

ScanConfiguration

/**
 * Component and configuration properties scanning for agent packages.
 */
@Configuration
@ComponentScan(basePackages = {
    "com.embabel.agent.api",
    "com.embabel.agent.core",
    "com.embabel.agent.experimental",
    "com.embabel.agent.prompt",
    "com.embabel.agent.spi",
    "com.embabel.agent.test",
    "com.embabel.agent.tools",
    "com.embabel.agent.web"
})
@ConfigurationPropertiesScan(basePackages = {
    "com.embabel.agent.api",
    "com.embabel.agent.core",
    "com.embabel.agent.experimental",
    "com.embabel.agent.prompt",
    "com.embabel.agent.spi",
    "com.embabel.agent.test",
    "com.embabel.agent.tools",
    "com.embabel.agent.web"
})
public class ScanConfiguration {
}

Effect:

  • Registers all @Component, @Service, @Repository, @Controller beans
  • Binds all @ConfigurationProperties classes
  • Enables dependency injection for discovered components

Note: Requires spring-boot-starter-web for com.embabel.agent.web package

AgentPlatformAutoConfigurationFilter

/**
 * Filters out Spring AI default MCP client configuration.
 * Registered via META-INF/spring.factories
 */
public class AgentPlatformAutoConfigurationFilter
    implements AutoConfigurationImportFilter {

    /**
     * @param autoConfigurationClasses Array of auto-config class names (may contain nulls)
     * @param metadata Auto-configuration metadata (unused)
     * @return boolean[] where true=include, false=exclude
     */
    boolean[] match(String[] autoConfigurationClasses,
                    AutoConfigurationMetadata metadata);
}

Excludes:

  • org.springframework.ai.mcp.client.common.autoconfigure.McpClientAutoConfiguration

Purpose: Prevents Spring AI default MCP config from loading, allowing QuiteMcpClientAutoConfiguration to provide resilient version.

Registration: META-INF/spring.factories:

org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\
  com.embabel.agent.autoconfigure.platform.AgentPlatformAutoConfigurationFilter

Core Types

// Spring Boot auto-configuration types
interface AutoConfigurationImportFilter {
    boolean[] match(String[] autoConfigurationClasses,
                    AutoConfigurationMetadata metadata);
}

interface AutoConfigurationMetadata {
    // Metadata about auto-configurations
}

Install with Tessl CLI

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

docs

api

annotations.md

auto-configuration.md

environment-post-processor.md

mcp-client.md

properties.md

index.md

SCORING.md

tile.json