getLink(), tables: $aParameters['tables'] ?? null ); break; case 'mysql_select': $o = NeuronAI\Tools\Toolkits\MySQL\MySQLSelectTool::make( pdo: BxDolDb::getInstance()->getLink(), ); break; case 'mysql_write': $o = NeuronAI\Tools\Toolkits\MySQL\MySQLWriteTool::make( pdo: BxDolDb::getInstance()->getLink(), ); break; case 'tavily_web_search': $o = NeuronAI\Tools\Toolkits\Tavily\TavilySearchTool::make( key: $aParameters['key'] ?? '' ); break; case 'tavily_extract': $o = NeuronAI\Tools\Toolkits\Tavily\TavilyExtractTool::make( key: $aParameters['key'] ?? '' ); break; case 'jina_web_search': $o = NeuronAI\Tools\Toolkits\Jina\JinaWebSearch::make( key: $aParameters['key'] ?? '' ); break; case 'jina_url_reader': $o = NeuronAI\Tools\Toolkits\Jina\JinaUrlReader::make( key: $aParameters['key'] ?? '' ); break; default: if (!empty($a['class_name'])) { if (!empty($a['class_file'])) require_once(BX_DIRECTORY_PATH_ROOT . $a['class_file']); $o = $a['class_name']::make(); } else { bx_log('sys_agents', "Tool type {$a['type']} is not supported", BX_LOG_ERR); throw new Exception("Tool type {$a['type']} is not supported"); } } $GLOBALS['bxDolClasses'][__CLASS__ . '_AiAgentTool_' . $iId] = $o; return $o; } }