@@ -7,12 +7,12 @@ This Maven plugin provides a convenient way to start the ADK Web Server with you
77### Basic Usage
88
99``` bash
10- mvn google-adk:web -Dagents=com.example.MyAgentProvider .INSTANCE
10+ mvn google-adk:web -Dagents=com.example.MyAgentLoader .INSTANCE
1111```
1212
1313### Parameters
1414
15- - ** ` agents ` ** (required): Full class path to your AgentProvider implementation
15+ - ** ` agents ` ** (required): Full class path to your AgentLoader implementation
1616- ** ` port ` ** (optional, default: 8000): Port for the web server
1717- ** ` host ` ** (optional, default: localhost): Host address to bind to
1818- ** ` hotReloading ` ** (optional, default: true): Whether to enable hot reloading
@@ -21,36 +21,43 @@ mvn google-adk:web -Dagents=com.example.MyAgentProvider.INSTANCE
2121
2222``` bash
2323mvn google-adk:web \
24- -Dagents=com.example.MyAgentProvider .INSTANCE \
24+ -Dagents=com.example.MyAgentLoader .INSTANCE \
2525 -Dhost=0.0.0.0 \
2626 -Dport=9090 \
2727 -DhotReloading=false
2828```
2929
30- ## Creating an AgentProvider
30+ ## Creating an AgentLoader
3131
32- ### 1. Implement the AgentProvider Interface
32+ ### 1. Implement the AgentLoader Interface
3333
34- Create a class that implements ` com.google.adk.maven.AgentProvider ` :
34+ Create a class that implements ` com.google.adk.maven.AgentLoader ` :
3535
3636``` java
3737package com.example ;
3838
3939import com.google.adk.agents.BaseAgent ;
4040import com.google.adk.agents.LlmAgent ;
41- import com.google.adk.maven.AgentProvider ;
42- import java.util.Map ;
41+ import com.google.adk.maven.AgentLoader ;
42+ import com.google.common.collect.ImmutableList ;
43+ import java.util.NoSuchElementException ;
4344
44- public class MyAgentProvider implements AgentProvider {
45+ public class MyAgentLoader implements AgentLoader {
4546
46- public static final MyAgentProvider INSTANCE = new MyAgentProvider ();
47+ public static final MyAgentLoader INSTANCE = new MyAgentLoader ();
4748
4849 @Override
49- public Map<String , BaseAgent > getAgents () {
50- return Map . of(
51- " chat_bot" , createChatBot(),
52- " code_assistant" , createCodeAssistant()
53- );
50+ public ImmutableList<String > listAgents () {
51+ return ImmutableList . of(" chat_bot" , " code_assistant" );
52+ }
53+
54+ @Override
55+ public BaseAgent loadAgent (String name ) {
56+ switch (name) {
57+ case " chat_bot" : return createChatBot();
58+ case " code_assistant" : return createCodeAssistant();
59+ default : throw new NoSuchElementException (" Agent not found: " + name);
60+ }
5461 }
5562
5663 private BaseAgent createChatBot () {
@@ -92,19 +99,27 @@ Add the plugin to your `pom.xml`:
9299### 3. Run the Web Server
93100
94101``` bash
95- mvn google-adk:web -Dagents=com.example.MyAgentProvider .INSTANCE
102+ mvn google-adk:web -Dagents=com.example.MyAgentLoader .INSTANCE
96103```
97104
98- ## Alternative AgentProvider Patterns
105+ ## Alternative AgentLoader Patterns
99106
100107### Using Default Constructor
101108
102109``` java
103- public class SimpleAgentProvider implements AgentProvider {
110+ public class SimpleAgentLoader implements AgentLoader {
104111 // No static field needed, uses default constructor
105112 @Override
106- public Map<String , BaseAgent > getAgents () {
107- return Map . of(" simple_agent" , createSimpleAgent());
113+ public ImmutableList<String > listAgents () {
114+ return ImmutableList . of(" simple_agent" );
115+ }
116+
117+ @Override
118+ public BaseAgent loadAgent (String name ) {
119+ if (" simple_agent" . equals(name)) {
120+ return createSimpleAgent();
121+ }
122+ throw new NoSuchElementException (" Agent not found: " + name);
108123 }
109124
110125 private BaseAgent createSimpleAgent () {
@@ -119,28 +134,39 @@ public class SimpleAgentProvider implements AgentProvider {
119134```
120135
121136Usage:
137+
122138``` bash
123- mvn google-adk:web -Dagents=com.example.SimpleAgentProvider
139+ mvn google-adk:web -Dagents=com.example.SimpleAgentLoader
124140```
125141
126142### Using Other Static Fields
127143
128144``` java
129- public class MultipleProviders implements AgentProvider {
130- public static final MultipleProviders DEFAULT = new MultipleProviders ();
131- public static final MultipleProviders ADVANCED = new MultipleProviders (true );
145+ public class MultipleLoaders implements AgentLoader {
146+ public static final MultipleLoaders DEFAULT = new MultipleLoaders ();
147+ public static final MultipleLoaders ADVANCED = new MultipleLoaders (true );
132148
133149 private final boolean advanced;
134150
135- public MultipleProviders () { this (false ); }
136- public MultipleProviders (boolean advanced ) { this . advanced = advanced; }
151+ public MultipleLoaders () { this (false ); }
152+ public MultipleLoaders (boolean advanced ) { this . advanced = advanced; }
137153
138154 @Override
139- public Map <String , BaseAgent > getAgents () {
155+ public ImmutableList <String > listAgents () {
140156 if (advanced) {
141- return Map . of(" advanced_agent" , createAdvancedAgent());
157+ return ImmutableList . of(" advanced_agent" );
158+ }
159+ return ImmutableList . of(" basic_agent" );
160+ }
161+
162+ @Override
163+ public BaseAgent loadAgent (String name ) {
164+ if (advanced && " advanced_agent" . equals(name)) {
165+ return createAdvancedAgent();
166+ } else if (! advanced && " basic_agent" . equals(name)) {
167+ return createBasicAgent();
142168 }
143- return Map . of( " basic_agent " , createBasicAgent() );
169+ throw new NoSuchElementException ( " Agent not found: " + name );
144170 }
145171
146172 private BaseAgent createBasicAgent () {
@@ -164,8 +190,9 @@ public class MultipleProviders implements AgentProvider {
164190```
165191
166192Usage:
193+
167194``` bash
168- mvn google-adk:web -Dagents=com.example.MultipleProviders .ADVANCED
195+ mvn google-adk:web -Dagents=com.example.MultipleLoaders .ADVANCED
169196```
170197
171198## Web UI
@@ -194,7 +221,7 @@ Make sure your project has the necessary ADK dependencies:
194221 <version >0.2.1-SNAPSHOT</version >
195222 </dependency >
196223
197- <!-- Maven plugin dependency for AgentProvider interface -->
224+ <!-- Maven plugin dependency for AgentLoader interface -->
198225 <dependency >
199226 <groupId >com.google.adk</groupId >
200227 <artifactId >google-adk-maven-plugin</artifactId >
@@ -223,15 +250,17 @@ Add the plugin to your `pom.xml` for convenience:
223250```
224251
225252Then use the short command:
253+
226254``` bash
227- mvn google-adk:web -Dagents=com.example.MyAgentProvider .INSTANCE
255+ mvn google-adk:web -Dagents=com.example.MyAgentLoader .INSTANCE
228256```
229257
230258** Option 2: Without plugin declaration (no pom.xml changes)**
231259
232260Use the full coordinates directly:
261+
233262``` bash
234- mvn com.google.adk:google-adk-maven-plugin:web -Dagents=com.example.MyAgentProvider .INSTANCE
263+ mvn com.google.adk:google-adk-maven-plugin:web -Dagents=com.example.MyAgentLoader .INSTANCE
235264```
236265
237266## Stopping the Server
0 commit comments