diff --git a/.gitignore b/.gitignore
index 6e8a53f..2c3982b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ effective-pom.xml
db.mv.db
akka-context/
+.claude/settings.local.json
diff --git a/pom.xml b/pom.xml
index 4cf8a2a..7b360f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
io.akka
akka-javasdk-parent
- 3.5.4
+ 3.5.5
io.akka.ai
diff --git a/src/main/java/demo/multiagent/application/ActivityAgent.java b/src/main/java/demo/multiagent/application/ActivityAgent.java
index 596a1c3..2eabff6 100644
--- a/src/main/java/demo/multiagent/application/ActivityAgent.java
+++ b/src/main/java/demo/multiagent/application/ActivityAgent.java
@@ -1,22 +1,22 @@
package demo.multiagent.application;
import akka.javasdk.agent.Agent;
-import akka.javasdk.annotations.AgentDescription;
+import akka.javasdk.annotations.AgentRole;
import akka.javasdk.annotations.Component;
import akka.javasdk.client.ComponentClient;
import demo.multiagent.domain.AgentRequest;
import java.util.stream.Collectors;
-@Component(id = "activity-agent")
-@AgentDescription(
+@Component(
+ id = "activity-agent",
name = "Activity Agent",
description = """
An agent that suggests activities in the real world. Like for example,
a team building activity, sports, an indoor or outdoor game,
board games, a city trip, etc.
- """,
- role = "worker"
+ """
)
+@AgentRole("worker")
public class ActivityAgent extends Agent {
diff --git a/src/main/java/demo/multiagent/application/AgentTeamEvaluatorConsumer.java b/src/main/java/demo/multiagent/application/AgentTeamEvaluatorConsumer.java
index f6f7e70..8378230 100644
--- a/src/main/java/demo/multiagent/application/AgentTeamEvaluatorConsumer.java
+++ b/src/main/java/demo/multiagent/application/AgentTeamEvaluatorConsumer.java
@@ -2,14 +2,14 @@
import akka.javasdk.agent.evaluator.SummarizationEvaluator;
import akka.javasdk.agent.evaluator.ToxicityEvaluator;
-import akka.javasdk.annotations.ComponentId;
+import akka.javasdk.annotations.Component;
import akka.javasdk.annotations.Consume;
import akka.javasdk.client.ComponentClient;
import akka.javasdk.consumer.Consumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@ComponentId("agent-team-eval-consumer")
+@Component(id = "agent-team-eval-consumer")
@Consume.FromWorkflow(AgentTeamWorkflow.class)
public class AgentTeamEvaluatorConsumer extends Consumer { // <1>
diff --git a/src/main/java/demo/multiagent/application/EvaluatorAgent.java b/src/main/java/demo/multiagent/application/EvaluatorAgent.java
index 7e7e091..ff367c1 100644
--- a/src/main/java/demo/multiagent/application/EvaluatorAgent.java
+++ b/src/main/java/demo/multiagent/application/EvaluatorAgent.java
@@ -1,16 +1,16 @@
package demo.multiagent.application;
+
import akka.javasdk.agent.Agent;
import akka.javasdk.agent.EvaluationResult;
-import akka.javasdk.annotations.AgentDescription;
import akka.javasdk.annotations.Component;
import akka.javasdk.client.ComponentClient;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
-@Component(id = "evaluator-agent")
-@AgentDescription(
+@Component(
+ id = "evaluator-agent",
name = "Evaluator Agent",
description = """
An agent that acts as an LLM judge to evaluate the quality of AI responses.
diff --git a/src/main/java/demo/multiagent/application/PlannerAgent.java b/src/main/java/demo/multiagent/application/PlannerAgent.java
index cc93e3d..053e7eb 100644
--- a/src/main/java/demo/multiagent/application/PlannerAgent.java
+++ b/src/main/java/demo/multiagent/application/PlannerAgent.java
@@ -3,15 +3,14 @@
import akka.javasdk.JsonSupport;
import akka.javasdk.agent.Agent;
import akka.javasdk.agent.AgentRegistry;
-import akka.javasdk.annotations.AgentDescription;
import akka.javasdk.annotations.Component;
import demo.multiagent.domain.AgentSelection;
import demo.multiagent.domain.Plan;
import demo.multiagent.domain.PlanStep;
import java.util.List;
-@Component(id = "planner-agent")
-@AgentDescription(
+@Component(
+ id = "planner-agent",
name = "Planner",
description = """
An agent that analyzes the user request and available agents to plan the tasks
diff --git a/src/main/java/demo/multiagent/application/SelectorAgent.java b/src/main/java/demo/multiagent/application/SelectorAgent.java
index ffeeb39..dfbd4cb 100644
--- a/src/main/java/demo/multiagent/application/SelectorAgent.java
+++ b/src/main/java/demo/multiagent/application/SelectorAgent.java
@@ -3,12 +3,11 @@
import akka.javasdk.JsonSupport;
import akka.javasdk.agent.Agent;
import akka.javasdk.agent.AgentRegistry;
-import akka.javasdk.annotations.AgentDescription;
import akka.javasdk.annotations.Component;
import demo.multiagent.domain.AgentSelection;
-@Component(id = "selector-agent")
-@AgentDescription(
+@Component(
+ id = "selector-agent",
name = "Selector Agent",
description = """
An agent that analyses the user request and selects useful agents for
diff --git a/src/main/java/demo/multiagent/application/SummarizerAgent.java b/src/main/java/demo/multiagent/application/SummarizerAgent.java
index a6cbe9e..6330374 100644
--- a/src/main/java/demo/multiagent/application/SummarizerAgent.java
+++ b/src/main/java/demo/multiagent/application/SummarizerAgent.java
@@ -1,13 +1,12 @@
package demo.multiagent.application;
import akka.javasdk.agent.Agent;
-import akka.javasdk.annotations.AgentDescription;
import akka.javasdk.annotations.Component;
import java.util.Collection;
import java.util.stream.Collectors;
-@Component(id = "summarizer-agent")
-@AgentDescription(
+@Component(
+ id = "summarizer-agent",
name = "Summarizer",
description = "An agent that creates a summary from responses provided by other agents"
)
diff --git a/src/main/java/demo/multiagent/application/WeatherAgent.java b/src/main/java/demo/multiagent/application/WeatherAgent.java
index 25b97a3..9694e1a 100644
--- a/src/main/java/demo/multiagent/application/WeatherAgent.java
+++ b/src/main/java/demo/multiagent/application/WeatherAgent.java
@@ -1,22 +1,22 @@
package demo.multiagent.application;
import akka.javasdk.agent.Agent;
-import akka.javasdk.annotations.AgentDescription;
+import akka.javasdk.annotations.AgentRole;
import akka.javasdk.annotations.Component;
import akka.javasdk.annotations.FunctionTool;
import demo.multiagent.domain.AgentRequest;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-@Component(id = "weather-agent")
-@AgentDescription(
+@Component(
+ id = "weather-agent",
name = "Weather Agent",
description = """
An agent that provides weather information. It can provide current weather,
forecasts, and other related information.
- """,
- role = "worker"
+ """
)
+@AgentRole("worker")
public class WeatherAgent extends Agent {