Spring Integration
Minions is built on Spring Boot, making it easy to integrate with existing Spring applications and leverage Spring's dependency injection and configuration capabilities.
Memory Configuration
Memory Subsystems
@Configuration
public class MemoryConfig {
@Bean
public Memory<MemoryContext, Message> episodicMemory() {
return new EpisodicMemory();
}
@Bean
public Memory<MemoryContext, Message> vectorMemory() {
return new VectorMemory();
}
@Bean
public MemoryManager memoryManager(
List<Memory<MemoryContext, Message>> memories,
List<MemoryQueryStrategy> strategies) {
return new MemoryManager(memories, strategies);
}
}
Query Strategies
@Configuration
public class QueryStrategyConfig {
@Bean
public MemoryQueryStrategy stepVectorQueryStrategy() {
return new StepVectorQueryStrategy();
}
@Bean
public MemoryQueryStrategy agentLongTermQueryStrategy() {
return new AgentLongTermQueryStrategy();
}
}
Persistence Configuration
@Configuration
public class PersistenceConfig {
@Bean
public PersistenceStrategy postgresPersistenceStrategy(DataSource dataSource) {
return new PostgresPersistenceStrategy(dataSource);
}
}
Auto-Configuration
Minions provides auto-configuration for common components:
@Configuration
@ConditionalOnProperty(name = "minions.memory.enabled", havingValue = "true")
public class MemoryAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public MemoryManager memoryManager() {
// Default configuration
}
}
Custom Configuration
Override default configurations using Spring properties:
minions:
memory:
enabled: true
subsystems:
episodic:
enabled: true
vector:
enabled: true
persistence:
type: postgres
schema: minions
Testing Support
Spring provides testing utilities for memory components:
@SpringBootTest
class MemoryIntegrationTest {
@Autowired
private MemoryManager memoryManager;
@Test
void testMemoryOperations() {
// Test memory operations
}
}
Minions is built around idiomatic Spring patterns:
- Use
@Component
to register custom steps, processors, tools, strategies @ConfigurationProperties
for loading recipe or agent configuration from YAML or application context- Conditional wiring using Spring Boot's auto-config features
You can fully extend Minions without modifying its internals, using standard Spring idioms.