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-installation.mddocs/

Installation Reference

Complete installation reference for embabel-agent-starter.

Prerequisites

  • Java 17 or later
  • Maven 3.6+ or Gradle 7.0+
  • Spring Boot 3.x or later

Maven Installation

Basic Dependency

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter</artifactId>
    <version>0.3.3</version>
</dependency>

With Spring Boot Parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.1</version>
</parent>

<dependencies>
    <dependency>
        <groupId>com.embabel.agent</groupId>
        <artifactId>embabel-agent-starter</artifactId>
        <version>0.3.3</version>
    </dependency>
</dependencies>

Repository Configuration

Maven Central (versions 0.2.0+):

<!-- No additional repository configuration required -->

Embabel repositories (SNAPSHOT or pre-0.2.0):

<repositories>
    <repository>
        <id>embabel-releases</id>
        <url>https://repo.embabel.com/artifactory/libs-release</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>embabel-snapshots</id>
        <url>https://repo.embabel.com/artifactory/libs-snapshot</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Gradle Installation

Kotlin DSL

repositories {
    mavenCentral()
    maven {
        name = "Spring Milestones"
        url = uri("https://repo.spring.io/milestone")
    }
}

dependencies {
    implementation("com.embabel.agent:embabel-agent-starter:0.3.3")
}

Groovy DSL

repositories {
    mavenCentral()
    maven {
        name = 'Spring Milestones'
        url = 'https://repo.spring.io/milestone'
    }
}

dependencies {
    implementation 'com.embabel.agent:embabel-agent-starter:0.3.3'
}

Note: Spring Milestones repository is required for transitive mcp-bom dependencies. Gradle does not inherit repository configurations from BOMs.

Provider-Specific Starters

OpenAI

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-openai</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-openai:0.3.3")

Anthropic

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-anthropic</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-anthropic:0.3.3")

AWS Bedrock

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-bedrock</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-bedrock:0.3.3")

Ollama (Local Models)

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-ollama</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-ollama:0.3.3")

Google Gemini

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-gemini</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-gemini:0.3.3")

DeepSeek

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-deepseek</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-deepseek:0.3.3")

Mistral AI

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-mistral-ai</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-mistral-ai:0.3.3")

MCP Server

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-mcpserver</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-mcpserver:0.3.3")

Spring Shell

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-shell</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-shell:0.3.3")

A2A Protocol

Maven:

<dependency>
    <groupId>com.embabel.agent</groupId>
    <artifactId>embabel-agent-starter-a2a</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle Kotlin:

implementation("com.embabel.agent:embabel-agent-starter-a2a:0.3.3")

Dependency Tree

Direct:

  • embabel-agent-platform-autoconfigure (0.3.3)

Transitive:

  • embabel-agent-api (0.3.3)
  • spring-ai-autoconfigure
  • Spring Boot dependencies
  • Kotlin standard library

Project Structure

my-agent-project/
├── pom.xml
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myagent/
│   │   │               ├── MyAgentApplication.java
│   │   │               └── agents/
│   │   │                   └── MyAgent.java
│   │   └── resources/
│   │       ├── application.yml
│   │       └── application-dev.yml
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── myagent/
│                       └── agents/
│                           └── MyAgentTest.java

Minimal pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.1</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>my-agent-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <java.version>17</java.version>
        <kotlin.version>2.0.21</kotlin.version>
        <embabel.version>0.3.3</embabel.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.embabel.agent</groupId>
            <artifactId>embabel-agent-starter</artifactId>
            <version>${embabel.version}</version>
        </dependency>

        <dependency>
            <groupId>com.embabel.agent</groupId>
            <artifactId>embabel-agent-starter-openai</artifactId>
            <version>${embabel.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

Minimal Application Configuration

application.yml:

spring:
  application:
    name: my-agent-app

embabel:
  agent:
    logging:
      personality: starwars
  models:
    default-llm: gpt-4.1-mini

spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}

Application class:

package com.example.myagent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyAgentApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyAgentApplication.class, args);
    }
}

Environment Variables

OpenAI

export OPENAI_API_KEY=your-openai-api-key

Anthropic

export ANTHROPIC_API_KEY=your-anthropic-api-key

Google Gemini

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

Version Compatibility

embabel-agent-starterSpring BootJavaKotlin
0.3.33.4.x17+2.0.x
0.3.x3.4.x17+2.0.x
0.2.x3.3.x17+1.9.x

Build Commands

Maven

# Build
mvn clean package

# Run
mvn spring-boot:run

# Run with profile
mvn spring-boot:run -Dspring-boot.run.profiles=dev

# Run tests
mvn test

# Clean and rebuild
mvn clean install -U

# View dependency tree
mvn dependency:tree

# Purge local repository
mvn dependency:purge-local-repository

Gradle

# Build
./gradlew build

# Run
./gradlew bootRun

# Run with profile
./gradlew bootRun --args='--spring.profiles.active=dev'

# Run tests
./gradlew test

# Clean and rebuild
./gradlew clean build

# View dependency tree
./gradlew dependencies
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