Base starter module for the Embabel Agent Framework providing core dependencies for building agentic flows on the JVM with Spring Boot integration and GOAP-based intelligent path finding.
Complete reference for logging themes, personalities, and configuration.
| Property | Type | Default | Description |
|---|---|---|---|
embabel.agent.logging.personality | String | null | Logging theme/personality |
embabel:
agent:
logging:
personality: starwarsEnvironment variable:
export EMBABEL_AGENT_LOGGING_PERSONALITY=starwars| Value | Description | Constant |
|---|---|---|
starwars | Star Wars themed logging | LoggingThemes.STAR_WARS |
severance | Severance (TV show) themed logging | LoggingThemes.SEVERANCE |
colossus | The Forbin Project themed logging | LoggingThemes.COLOSSUS |
hitchhiker | Hitchhiker's Guide to the Galaxy themed logging | LoggingThemes.HITCHHIKERS_GUIDE |
montypython | Monty Python themed logging | LoggingThemes.MONTYPYTHON |
embabel:
agent:
logging:
personality: starwarsexport EMBABEL_AGENT_LOGGING_PERSONALITY=starwarsimport com.embabel.agent.config.annotation.EnableAgents;
import com.embabel.agent.config.annotation.LoggingThemes;
@SpringBootApplication
@EnableAgents(loggingTheme = LoggingThemes.STAR_WARS)
public class MyAgentApplication {
// Application code
}Note: @EnableAgents annotation is deprecated since 0.3.1.
package com.embabel.agent.config.annotation;
public class LoggingThemes {
public static final String STAR_WARS = "starwars";
public static final String SEVERANCE = "severance";
public static final String COLOSSUS = "colossus";
public static final String HITCHHIKERS_GUIDE = "hitchhiker";
public static final String MONTYPYTHON = "montypython";
}# application-dev.yml
embabel:
agent:
logging:
personality: montypython# application-prod.yml
embabel:
agent:
logging:
personality: colossusActivate with:
export SPRING_PROFILES_ACTIVE=dev
# or
java -jar app.jar --spring.profiles.active=prod| Property | Type | Default | Description |
|---|---|---|---|
logging.pattern.console | String | See below | Console log pattern with ANSI colors |
logging:
pattern:
console: "%clr(%d{HH:mm:ss.SSS}){faint} %clr([%t]){magenta} %clr(%-5level) %clr(%logger{0}){cyan} %clr(-){faint} %msg%n"| Property | Type | Default | Description |
|---|---|---|---|
spring.output.ansi.enabled | String | "ALWAYS" | ANSI output mode |
spring:
output:
ansi:
enabled: ALWAYSValues:
ALWAYS - Always use ANSI colorsDETECT - Auto-detect terminal capabilitiesNEVER - Disable ANSI colorslogging:
level:
com.embabel.agent: INFO
com.embabel.agent.core: DEBUG
com.embabel.agent.api: TRACELog levels: TRACE, DEBUG, INFO, WARN, ERROR, OFF
@SpringBootApplication
public class MyAgentApplication {
public static void main(String[] args) {
SpringApplication.run(MyAgentApplication.class, args);
}
}application.yml:
embabel:
agent:
logging:
personality: starwars@SpringBootApplication
class MyAgentApplication
fun main(args: Array<String>) {
runApplication<MyAgentApplication>(*args)
}application.yml:
embabel:
agent:
logging:
personality: severanceSet personality to empty string or omit property:
embabel:
agent:
logging:
personality: ""Or:
embabel:
agent:
logging: {}IDE autocomplete support through Spring Boot configuration metadata:
{
"properties": [
{
"name": "embabel.agent.logging.personality",
"type": "java.lang.String",
"description": "Logging personality theme for agent operations"
}
],
"hints": [
{
"name": "embabel.agent.logging.personality",
"values": [
{"value": "starwars", "description": "Star Wars themed logging"},
{"value": "severance", "description": "Severance themed logging"},
{"value": "colossus", "description": "Colossus themed logging"},
{"value": "hitchhiker", "description": "Hitchhiker's Guide themed logging"},
{"value": "montypython", "description": "Monty Python themed logging"}
]
}
]
}# application.yml
spring:
output:
ansi:
enabled: ALWAYS
embabel:
agent:
logging:
personality: starwars
logging:
pattern:
console: "%clr(%d{HH:mm:ss.SSS}){faint} %clr([%t]){magenta} %clr(%-5level) %clr(%logger{0}){cyan} %clr(-){faint} %msg%n"
level:
root: INFO
com.embabel.agent: INFO
com.embabel.agent.core: DEBUG# application-dev.yml
embabel:
agent:
logging:
personality: montypython
logging:
level:
com.embabel.agent: DEBUG# application-staging.yml
embabel:
agent:
logging:
personality: hitchhiker
logging:
level:
com.embabel.agent: INFO# application-prod.yml
embabel:
agent:
logging:
personality: colossus
logging:
level:
com.embabel.agent: WARNlogging:
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"logging:
pattern:
console: "%msg%n"logging:
pattern:
console: '{"time":"%d{ISO8601}","level":"%level","logger":"%logger","message":"%message"}%n'logging:
file:
name: logs/agent.log
max-size: 10MB
max-history: 30
pattern:
file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"public class EnvironmentPostProcessor
implements org.springframework.boot.env.EnvironmentPostProcessor {
@Override
public void postProcessEnvironment(
ConfigurableEnvironment environment,
SpringApplication application) {
// Sets embabel.agent.logging.personality property
}
}Registration: META-INF/spring.factories
org.springframework.boot.env.EnvironmentPostProcessor=\
com.embabel.agent.config.annotation.spi.EnvironmentPostProcessorFrom agent-application.properties:
spring.output.ansi.enabled=ALWAYS
logging.pattern.console=%clr(%d{HH:mm:ss.SSS}){faint} %clr([%t]){magenta} %clr(%-5level) %clr(%logger{0}){cyan} %clr(-){faint} %msg%ntessl i tessl/maven-com-embabel-agent--embabel-agent-starter@0.3.1docs