@@ -232,6 +232,8 @@ def model_post_init(self, __context: Any) -> None:
232232
233233 self ._prepare_tracers ()
234234
235+ self ._validate_tool_dependencies ()
236+
235237 if self .knowledgebase :
236238 from veadk .tools .builtin_tools .load_knowledgebase import (
237239 LoadKnowledgebaseTool ,
@@ -510,6 +512,35 @@ def load_skills(self):
510512 else :
511513 self .before_agent_callback = check_skills
512514
515+ def _validate_tool_dependencies (self ):
516+ tool_names = set ()
517+ for tool in self .tools :
518+ if hasattr (tool , "__name__" ):
519+ tool_names .add (tool .__name__ )
520+ elif hasattr (tool , "name" ):
521+ tool_names .add (tool .name )
522+
523+ has_video_generate = "video_generate" in tool_names
524+ has_video_task_query = "video_task_query" in tool_names
525+
526+ if has_video_generate and not has_video_task_query :
527+ from veadk .tools .builtin_tools .video_generate import video_task_query
528+
529+ logger .warning (
530+ "video_generate tool is mounted but video_task_query is not. "
531+ "video_task_query is required for querying video generation status. "
532+ "Automatically adding video_task_query to tools."
533+ )
534+ self .tools .append (video_task_query )
535+ elif has_video_task_query and not has_video_generate :
536+ from veadk .tools .builtin_tools .video_generate import video_generate
537+
538+ logger .warning (
539+ "video_task_query tool is mounted but video_generate is not. "
540+ "Automatically adding video_generate to tools."
541+ )
542+ self .tools .append (video_generate )
543+
513544 def _prepare_tracers (self ):
514545 enable_apmplus_tracer = os .getenv ("ENABLE_APMPLUS" , "false" ).lower () == "true"
515546 enable_cozeloop_tracer = os .getenv ("ENABLE_COZELOOP" , "false" ).lower () == "true"
0 commit comments