# -*- coding: utf-8 -*- """ Tools package for data-agent. This module provides a unified entry point for all agent tools, organized by agent type for easy access and management. """ from typing import List from agentscope.agent import AgentBase from agentscope.tool import ( view_text_file, write_text_file, ) from agentscope.tool import Toolkit from .dj_helpers import execute_safe_command from .router_helpers import agent_to_tool from .dj_helpers import query_dj_operators from .dj_dev_helpers import ( get_basic_files, get_operator_example, configure_data_juicer_path, ) from .mcp_helpers import get_mcp_toolkit def create_toolkit(tools: List[AgentBase]): # Create toolkit and register tools toolkit = Toolkit() for tool in tools: toolkit.register_tool_function(tool) return toolkit # DJ Agent tools dj_tools = [ execute_safe_command, view_text_file, write_text_file, query_dj_operators, ] # DJ Development Agent tools - for developing DataJuicer operators dj_dev_tools = [ view_text_file, write_text_file, get_basic_files, get_operator_example, configure_data_juicer_path, ] # MCP Agent tools - for advanced data processing with Recipe Flow MCP mcp_tools = [ view_text_file, write_text_file, ] def agents2toolkit(agents: List[AgentBase]): tools = [agent_to_tool(agent) for agent in agents] return create_toolkit(tools) dj_toolkit = create_toolkit(dj_tools) dj_dev_toolkit = create_toolkit(dj_dev_tools) # All available tools all_toolkit = { "dj": dj_toolkit, "dj_dev": dj_dev_toolkit, "dj_mcp": get_mcp_toolkit, "router": agents2toolkit, } # Public API __all__ = [ "dj_tools", "dj_dev_tools", "mcp_tools", "agents2toolkit", "dj_toolkit", "dj_dev_toolkit", "get_mcp_toolkit", # Individual tools for direct import "execute_safe_command", "view_text_file", "write_text_file", "agent_to_tool", "query_dj_operators", "get_basic_files", "get_operator_example", "configure_data_juicer_path", ]