Class TaskToolsBuilder

java.lang.Object
com.alibaba.cloud.ai.graph.agent.tools.task.TaskToolsBuilder

public final class TaskToolsBuilder extends Object
Convenience builder for configuring both TaskTool and TaskOutputTool with a shared TaskRepository.

Supports two modes:

  1. Programmatic: Pass ReactAgent instances via subAgents(Map) or subAgent(String, ReactAgent).
  2. File-based: Load agent specs from Markdown files via addAgentDirectory(String) or addAgentResource(Resource). Specs are converted to ReactAgents using AgentSpecReactAgentFactory.

 // Programmatic mode
 List<ToolCallback> taskTools = TaskToolsBuilder.builder()
     .taskRepository(repo)
     .subAgents(Map.of("Explore", exploreAgent))
     .build();

 // File-based mode
 List<ToolCallback> taskTools = TaskToolsBuilder.builder()
     .taskRepository(repo)
     .chatModel(chatModel)
     .defaultTools(grepTool, globTool, readTool)
     .addAgentDirectory(".claude/agents")
     .build();
 
Author:
Spring AI Alibaba
  • Method Details

    • builder

      public static TaskToolsBuilder builder()
      Create a new builder.
    • taskRepository

      public TaskToolsBuilder taskRepository(TaskRepository taskRepository)
      Set the task repository (required for background execution).
    • subAgents

      public TaskToolsBuilder subAgents(Map<String,ReactAgent> subAgents)
      Set the map of sub-agent types to ReactAgent instances (programmatic mode).
    • subAgent

      public TaskToolsBuilder subAgent(String type, ReactAgent agent)
      Add a single sub-agent (programmatic mode).
    • addAgentDirectory

      public TaskToolsBuilder addAgentDirectory(String directoryPath)
      Add a directory to load agent specs from (file-based mode). Scans for .md files recursively. Requires chatModel(ChatModel) or chatClient(ChatClient) and defaultTools(ToolCallback...).
    • addAgentResource

      public TaskToolsBuilder addAgentResource(org.springframework.core.io.Resource resource)
      Add a Spring Resource to load agent specs from (file-based mode). For classpath resources, use resourceLoader.getResource("classpath:.claude/agents").
    • agentSpecFactory

      public TaskToolsBuilder agentSpecFactory(AgentSpecReactAgentFactory factory)
      Set the factory for converting specs to ReactAgents (file-based mode). If not set, one is built from chatModel/chatClient and defaultTools in build().
    • chatModel

      public TaskToolsBuilder chatModel(org.springframework.ai.chat.model.ChatModel chatModel)
      Set ChatModel for file-based mode (used to build ReactAgents from specs).
    • chatClient

      public TaskToolsBuilder chatClient(org.springframework.ai.chat.client.ChatClient chatClient)
      Set ChatClient for file-based mode (used to build ReactAgents from specs).
    • defaultTools

      public TaskToolsBuilder defaultTools(org.springframework.ai.tool.ToolCallback... tools)
      Set default tools for sub-agents (file-based mode).
    • build

      public List<org.springframework.ai.tool.ToolCallback> build()
      Build both TaskTool and TaskOutputTool as a list of ToolCallbacks.