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

concepts-goals.mddocs/

Goals Concept

Goals mark actions as completion points for agent execution. When a goal is achieved, the agent process completes with the goal's return value.

Definition

@AchievesGoal(
    description = "Generate analysis report",     // Required
    value = 1.0,                                  // Goal value
    tags = {"reporting", "analysis"},             // Categorization tags
    examples = {"Generate Q4 report"},            // Example scenarios
    export = @Export(remote = true, local = true) // Export configuration
)
@Action(description = "Generate report", pre = {"dataAnalyzed"})
public Report generateReport(AnalysisData data) {
    return createReport(data);
}

Export Configuration

Controls how goals are exposed:

@Export(
    name = "custom-goal-name",              // Override export name
    remote = true,                          // Expose via MCP/A2A
    local = true,                           // Available locally
    startingInputTypes = {Request.class}    // Valid starting inputs
)

Local-Only Goal

@AchievesGoal(
    description = "Internal processing",
    export = @Export(local = true, remote = false)
)

Remote-Exposed Goal

@AchievesGoal(
    description = "Public API endpoint",
    export = @Export(
        name = "processUserQuery",
        remote = true,
        local = true,
        startingInputTypes = {UserQuery.class, String.class}
    )
)

Goal Selection

Agent platform selects goals based on:

  • Input type matching
  • Tag relevance
  • Confidence scoring
  • Examples similarity

Configure selection thresholds:

embabel:
  agent:
    platform:
      autonomy:
        goal-confidence-cut-off: 0.6  # 0.0-1.0

Multiple Goals

Agents can have multiple goals:

@Agent(description = "Data processor")
public class DataAgent {

    @AchievesGoal(
        description = "Generate summary",
        tags = {"summary", "quick"},
        export = @Export(remote = true)
    )
    @Action(description = "Quick summary")
    public Summary summarize(Data data) { }

    @AchievesGoal(
        description = "Detailed analysis",
        tags = {"analysis", "detailed"},
        export = @Export(remote = true)
    )
    @Action(description = "Full analysis", pre = {"dataValidated"})
    public Analysis analyze(Data data) { }

    @AchievesGoal(
        description = "Generate visualization",
        tags = {"visualization", "chart"},
        export = @Export(remote = true)
    )
    @Action(description = "Create charts")
    public Visualization visualize(Data data) { }
}

Goal vs Action

  • Action: Intermediate step in execution
  • Goal: Terminal action that completes agent execution
@Action(description = "Load data", post = {"dataLoaded"})
public Data loadData(String source) { }  // Intermediate action

@AchievesGoal(description = "Process and return result")
@Action(description = "Process data", pre = {"dataLoaded"})
public Result processData(Data data) { }  // Terminal goal

Examples

Examples help LLM select appropriate goals:

@AchievesGoal(
    description = "Convert data format",
    tags = {"conversion", "transform"},
    examples = {
        "Convert CSV to JSON",
        "Transform XML to YAML",
        "Parse and convert data format"
    }
)

Best Practices

  1. Clear, action-oriented goal descriptions
  2. Use meaningful tags for categorization
  3. Provide realistic examples
  4. Set remote = true only for public APIs
  5. Specify startingInputTypes for routing
  6. Use appropriate confidence thresholds
  7. One clear goal per major use case

See Also: Actions | Invocation | API Reference

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