CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/maven-com-embabel-agent--embabel-agent-starter

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.

Overview
Eval results
Files

reference-configuration-properties.mddocs/

Configuration Properties Reference

Complete reference for all configuration properties in embabel-agent-starter.

Property Binding Formats

YAML Format

embabel:
  agent:
    platform:
      scanning:
        annotation: true

Properties Format

embabel.agent.platform.scanning.annotation=true

Environment Variables

export EMBABEL_AGENT_PLATFORM_SCANNING_ANNOTATION=true

Agent Platform Configuration

Prefix: embabel.agent.platform

Scanning Properties

PropertyTypeDefaultDescription
embabel.agent.platform.scanning.annotationbooleantrueEnable scanning for @Agent annotated classes
embabel.agent.platform.scanning.beanbooleanfalseEnable scanning for agent beans
embabel:
  agent:
    platform:
      scanning:
        annotation: true
        bean: false

Autonomy Properties

PropertyTypeDefaultDescription
embabel.agent.platform.autonomy.agent-confidence-cut-offdouble0.6Minimum confidence for agent selection (0.0-1.0)
embabel.agent.platform.autonomy.goal-confidence-cut-offdouble0.6Minimum confidence for goal selection (0.0-1.0)
embabel:
  agent:
    platform:
      autonomy:
        agent-confidence-cut-off: 0.6
        goal-confidence-cut-off: 0.6

Ranking Properties

PropertyTypeDefaultDescription
embabel.agent.platform.ranking.max-attemptsint5Maximum ranking attempts
embabel.agent.platform.ranking.backoff-millislong100Initial backoff delay in milliseconds
embabel.agent.platform.ranking.backoff-multiplierdouble5.0Backoff multiplier for exponential backoff
embabel.agent.platform.ranking.backoff-max-intervallong180000Maximum backoff interval in milliseconds
embabel:
  agent:
    platform:
      ranking:
        max-attempts: 5
        backoff-millis: 100
        backoff-multiplier: 5.0
        backoff-max-interval: 180000

Process ID Generation Properties

PropertyTypeDefaultDescription
embabel.agent.platform.process-id-generation.include-versionbooleanfalseInclude version in process IDs
embabel.agent.platform.process-id-generation.include-agent-namebooleanfalseInclude agent name in process IDs
embabel:
  agent:
    platform:
      process-id-generation:
        include-version: false
        include-agent-name: false

LLM Operations - Prompts

PropertyTypeDefaultDescription
embabel.agent.platform.llm-operations.prompts.maybe-prompt-templateString"maybe_prompt_contribution"Template name for maybe prompts
embabel.agent.platform.llm-operations.prompts.generate-examples-by-defaultbooleantrueGenerate examples in prompts
embabel:
  agent:
    platform:
      llm-operations:
        prompts:
          maybe-prompt-template: maybe_prompt_contribution
          generate-examples-by-default: true

LLM Operations - Data Binding

PropertyTypeDefaultDescription
embabel.agent.platform.llm-operations.data-binding.max-attemptsint10Maximum data binding attempts
embabel.agent.platform.llm-operations.data-binding.fixed-backoff-millislong30Fixed backoff delay in milliseconds
embabel:
  agent:
    platform:
      llm-operations:
        data-binding:
          max-attempts: 10
          fixed-backoff-millis: 30

SSE Properties

PropertyTypeDefaultDescription
embabel.agent.platform.sse.max-buffer-sizeint100Maximum buffer size per SSE stream
embabel.agent.platform.sse.max-process-buffersint1000Maximum number of process buffers
embabel:
  agent:
    platform:
      sse:
        max-buffer-size: 100
        max-process-buffers: 1000

Model Provider Retries - Anthropic

PropertyTypeDefaultDescription
embabel.agent.platform.models.anthropic.max-attemptsint10Maximum retry attempts
embabel.agent.platform.models.anthropic.backoff-millislong5000Initial backoff in milliseconds
embabel.agent.platform.models.anthropic.backoff-multiplierdouble5.0Backoff multiplier
embabel.agent.platform.models.anthropic.backoff-max-intervallong180000Maximum backoff interval in milliseconds
embabel:
  agent:
    platform:
      models:
        anthropic:
          max-attempts: 10
          backoff-millis: 5000
          backoff-multiplier: 5.0
          backoff-max-interval: 180000

Model Provider Retries - OpenAI

PropertyTypeDefaultDescription
embabel.agent.platform.models.openai.max-attemptsint10Maximum retry attempts
embabel.agent.platform.models.openai.backoff-millislong5000Initial backoff in milliseconds
embabel.agent.platform.models.openai.backoff-multiplierdouble5.0Backoff multiplier
embabel.agent.platform.models.openai.backoff-max-intervallong180000Maximum backoff interval in milliseconds
embabel:
  agent:
    platform:
      models:
        openai:
          max-attempts: 10
          backoff-millis: 5000
          backoff-multiplier: 5.0
          backoff-max-interval: 180000

Testing Properties

PropertyTypeDefaultDescription
embabel.agent.platform.test.mock-modebooleantrueEnable mock mode for testing
embabel:
  agent:
    platform:
      test:
        mock-mode: true

Tool Groups Properties

PropertyTypeDefaultDescription
embabel.agent.platform.tools.includesMap<String, GroupConfig>{}Map of tool group names to configurations
embabel.agent.platform.tools.excludesList<String>[]Global list of tools to exclude
embabel.agent.platform.tools.versionStringnullTool groups version
embabel:
  agent:
    platform:
      tools:
        includes:
          web-tools:
            tools:
              - fetch_url
              - search_web
          github-tools:
            tools:
              - create_issue
              - list_repos
        excludes:
          - dangerous_operation
          - deprecated_tool
        version: "1.0.0"

Logging Configuration

Prefix: embabel.agent.logging

PropertyTypeDefaultDescription
embabel.agent.logging.personalityStringnullLogging theme/personality
embabel:
  agent:
    logging:
      personality: starwars

Allowed values: starwars, severance, colossus, hitchhiker, montypython

Spring AI MCP Client Configuration

Prefix: spring.ai.mcp.client

PropertyTypeDefaultDescription
spring.ai.mcp.client.enabledbooleantrueEnable MCP client
spring.ai.mcp.client.typeString"SYNC"Client type: SYNC or ASYNC
spring.ai.mcp.client.nameString"embabel"Client implementation name
spring.ai.mcp.client.versionString"1.0.0"Client implementation version
spring.ai.mcp.client.request-timeoutDuration30sRequest timeout duration
spring.ai.mcp.client.initializedbooleantrueInitialize client on creation
spring:
  ai:
    mcp:
      client:
        enabled: true
        type: SYNC
        name: embabel
        version: 1.0.0
        request-timeout: 30s
        initialized: true

MCP STDIO Connections

spring:
  ai:
    mcp:
      client:
        stdio:
          connections:
            docker-mcp:
              command: docker
              args:
                - run
                - -i
                - --rm
                - alpine/socat
                - STDIO
                - TCP:host.docker.internal:8811

Structure:

  • spring.ai.mcp.client.stdio.connections.<name>.command (String) - Command to execute
  • spring.ai.mcp.client.stdio.connections.<name>.args (List<String>) - Command arguments

Spring Boot Application Configuration

Spring Core Properties

PropertyTypeDefaultDescription
spring.application.nameString"agent-api"Application name
spring.threads.virtual.enabledbooleantrueEnable virtual threads
spring.output.ansi.enabledString"ALWAYS"ANSI output mode
spring:
  application:
    name: agent-api
  threads:
    virtual:
      enabled: true
  output:
    ansi:
      enabled: ALWAYS

Spring AI Provider Properties

Ollama

PropertyTypeDefaultDescription
spring.ai.ollama.base-urlString"http://localhost:11434"Ollama endpoint
spring:
  ai:
    ollama:
      base-url: http://localhost:11434

OpenAI

PropertyTypeDefaultDescription
spring.ai.openai.api-keyStringnullOpenAI API key
spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}

Anthropic

PropertyTypeDefaultDescription
spring.ai.anthropic.api-keyStringnullAnthropic API key
spring:
  ai:
    anthropic:
      api-key: ${ANTHROPIC_API_KEY}

Google Gemini

PropertyTypeDefaultDescription
spring.ai.gemini.api-keyStringnullGoogle API key
spring:
  ai:
    gemini:
      api-key: ${GOOGLE_STUDIO_API_KEY}

AWS Bedrock

spring:
  ai:
    bedrock:
      aws:
        region: us-east-1
        access-key: ${AWS_ACCESS_KEY_ID}
        secret-key: ${AWS_SECRET_ACCESS_KEY}

Management Properties

PropertyTypeDefaultDescription
management.tracing.enabledbooleanfalseEnable distributed tracing
management:
  tracing:
    enabled: false

Embabel Model Configuration

Prefix: embabel.models

PropertyTypeDefaultDescription
embabel.models.default-llmString"gpt-4.1-mini"Default LLM model
embabel.models.default-embedding-modelString"text-embedding-3-small"Default embedding model
embabel:
  models:
    default-llm: gpt-4.1-mini
    default-embedding-model: text-embedding-3-small

Logging Pattern Configuration

PropertyTypeDefaultDescription
logging.pattern.consoleStringSee belowConsole 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"

Environment Variable Mappings

# OpenAI
export OPENAI_API_KEY=your-openai-api-key

# Anthropic
export ANTHROPIC_API_KEY=your-anthropic-api-key

# Google
export GOOGLE_STUDIO_API_KEY=your-google-api-key

# AWS Bedrock
export AWS_ACCESS_KEY_ID=your-aws-key
export AWS_SECRET_ACCESS_KEY=your-aws-secret
export AWS_REGION=us-east-1

# Ollama
export OLLAMA_BASE_URL=http://localhost:11434

# Spring Profiles
export SPRING_PROFILES_ACTIVE=dev

# Property overrides (examples)
export EMBABEL_AGENT_PLATFORM_SCANNING_ANNOTATION=true
export EMBABEL_AGENT_PLATFORM_AUTONOMY_AGENT_CONFIDENCE_CUT_OFF=0.7
export EMBABEL_AGENT_LOGGING_PERSONALITY=starwars
export EMBABEL_MODELS_DEFAULT_LLM=gpt-4

Complete Configuration Example

# application.yml
spring:
  application:
    name: my-agent-app
  threads:
    virtual:
      enabled: true
  output:
    ansi:
      enabled: ALWAYS
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
    anthropic:
      api-key: ${ANTHROPIC_API_KEY}
    ollama:
      base-url: http://localhost:11434
    mcp:
      client:
        enabled: true
        type: SYNC
        request-timeout: 30s
        stdio:
          connections:
            github-mcp:
              command: npx
              args:
                - -y
                - "@modelcontextprotocol/server-github"

embabel:
  agent:
    platform:
      scanning:
        annotation: true
        bean: false
      autonomy:
        agent-confidence-cut-off: 0.6
        goal-confidence-cut-off: 0.6
      ranking:
        max-attempts: 5
        backoff-millis: 100
        backoff-multiplier: 5.0
        backoff-max-interval: 180000
      llm-operations:
        prompts:
          maybe-prompt-template: maybe_prompt_contribution
          generate-examples-by-default: true
        data-binding:
          max-attempts: 10
          fixed-backoff-millis: 30
      sse:
        max-buffer-size: 100
        max-process-buffers: 1000
      models:
        anthropic:
          max-attempts: 10
          backoff-millis: 5000
          backoff-multiplier: 5.0
          backoff-max-interval: 180000
        openai:
          max-attempts: 10
          backoff-millis: 5000
          backoff-multiplier: 5.0
          backoff-max-interval: 180000
      test:
        mock-mode: false
      tools:
        includes:
          web-tools:
            tools:
              - fetch_url
              - search_web
        excludes:
          - dangerous_tool
    logging:
      personality: starwars
  models:
    default-llm: gpt-4.1-mini
    default-embedding-model: text-embedding-3-small

management:
  tracing:
    enabled: false

logging:
  pattern:
    console: "%clr(%d{HH:mm:ss.SSS}){faint} %clr([%t]){magenta} %clr(%-5level) %clr(%logger{0}){cyan} %clr(-){faint} %msg%n"
  level:
    com.embabel.agent: INFO

Profile-Based Configuration

Development Profile (application-dev.yml)

embabel:
  agent:
    platform:
      test:
        mock-mode: true
      models:
        anthropic:
          max-attempts: 3
          backoff-millis: 1000
    logging:
      personality: montypython

logging:
  level:
    com.embabel.agent: DEBUG

Production Profile (application-prod.yml)

embabel:
  agent:
    platform:
      test:
        mock-mode: false
      models:
        anthropic:
          max-attempts: 15
          backoff-millis: 10000
          backoff-max-interval: 300000
    logging:
      personality: colossus

logging:
  level:
    com.embabel.agent: INFO

Activate with:

export SPRING_PROFILES_ACTIVE=dev
# or
java -jar app.jar --spring.profiles.active=prod
tessl i tessl/maven-com-embabel-agent--embabel-agent-starter@0.3.1

docs

api-annotations.md

api-domain-model.md

api-invocation.md

api-tools.md

concepts-actions.md

concepts-agents.md

concepts-goals.md

concepts-invocation.md

concepts-tools.md

guides-creating-agents.md

guides-creating-tools.md

guides-defining-actions.md

guides-goal-achievement.md

guides-human-in-loop.md

guides-multimodal.md

index.md

integration-mcp.md

integration-model-providers.md

integration-spring-boot.md

LlmTool.md

quickstart.md

reference-component-scanning.md

reference-configuration-properties.md

reference-installation.md

reference-logging.md

reference-resilience.md

reference-streaming.md

tile.json