Spring Boot auto-configuration platform for Embabel Agent Framework, enabling annotation-driven profile activation and bootstrapping of agent configurations with MCP client support
/**
* 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 resilienceCommonPlatformPropertiesLoader - Platform properties (from embabel-agent-api)ScanConfiguration - Component scanningAgentPlatformConfiguration - 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)/**
* 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:
@Component, @Service, @Repository, @Controller beans@ConfigurationProperties classesNote: Requires spring-boot-starter-web for com.embabel.agent.web package
/**
* 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.McpClientAutoConfigurationPurpose: 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// 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