Interface AgentLoader
@ThreadSafe
public interface AgentLoader
Interface for loading agents to the ADK Web Server.
Users implement this interface to register their agents with ADK Web Server.
Thread Safety: Implementation must be thread-safe as it will be used as Spring singleton beans and accessed concurrently by multiple HTTP requests.
Example usage:
public class MyAgentLoader implements AgentLoader {
@Override
public ImmutableList<String> listAgents() {
return ImmutableList.of("chat_bot", "code_assistant");
}
@Override
public BaseAgent loadAgent(String name) {
switch (name) {
case "chat_bot": return createChatBot();
case "code_assistant": return createCodeAssistant();
default: throw new java.util.NoSuchElementException("Agent not found: " + name);
}
}
}
Then use with Maven plugin:
mvn google-adk:web -Dagents=com.acme.MyAgentLoader
TODO: Add config-based agent registration in the future.-
Method Summary
Modifier and TypeMethodDescriptioncom.google.common.collect.ImmutableList<String> Returns a list of available agent names.Loads the BaseAgent instance for the specified agent name.
-
Method Details
-
listAgents
Returns a list of available agent names.- Returns:
- ImmutableList of agent names. Must not return null - return an empty list if no agents are available.
-
loadAgent
Loads the BaseAgent instance for the specified agent name.- Parameters:
name- the name of the agent to load- Returns:
- BaseAgent instance for the given name
- Throws:
NoSuchElementException- if the agent doesn't existIllegalStateException- if the agent exists but fails to load
-