8787 validate_workflow_references ,
8888)
8989from fast_agent .mcp .prompts .prompt_load import load_prompt
90- from fast_agent .skills import SkillManifest , SkillRegistry
90+ from fast_agent .skills import SKILLS_DEFAULT , SkillManifest , SkillRegistry , SkillsDefault
9191from fast_agent .ui .console import configure_console_stream
9292from fast_agent .ui .usage_display import display_usage_report
9393
103103F = TypeVar ("F" , bound = Callable [..., Any ]) # For decorated functions
104104logger = get_logger (__name__ )
105105SkillEntry : TypeAlias = SkillManifest | SkillRegistry | Path | str
106+ SkillConfig : TypeAlias = SkillEntry | list [SkillEntry | None ] | None | SkillsDefault
106107
107108
108109class FastAgent :
@@ -370,12 +371,7 @@ def agent(
370371 tools : dict [str , list [str ]] | None = None ,
371372 resources : dict [str , list [str ]] | None = None ,
372373 prompts : dict [str , list [str ]] | None = None ,
373- skills : SkillManifest
374- | SkillRegistry
375- | Path
376- | str
377- | list [SkillManifest | SkillRegistry | Path | str | None ]
378- | None = None ,
374+ skills : SkillConfig = SKILLS_DEFAULT ,
379375 model : str | None = None ,
380376 use_history : bool = True ,
381377 request_params : RequestParams | None = None ,
@@ -402,12 +398,7 @@ def custom(
402398 tools : dict [str , list [str ]] | None = None ,
403399 resources : dict [str , list [str ]] | None = None ,
404400 prompts : dict [str , list [str ]] | None = None ,
405- skills : SkillManifest
406- | SkillRegistry
407- | Path
408- | str
409- | list [SkillManifest | SkillRegistry | Path | str | None ]
410- | None = None ,
401+ skills : SkillConfig = SKILLS_DEFAULT ,
411402 model : str | None = None ,
412403 use_history : bool = True ,
413404 request_params : RequestParams | None = None ,
@@ -944,21 +935,22 @@ def _apply_skills_to_agent_configs(self, default_skills: list[SkillManifest]) ->
944935 if not config_obj :
945936 continue
946937
947- resolved = self ._resolve_skills (config_obj .skills )
948- if config_obj .skills is None :
949- if not resolved :
950- resolved = list (default_skills )
951- else :
952- resolved = self ._deduplicate_skills (resolved )
938+ if config_obj .skills is SKILLS_DEFAULT :
939+ resolved = list (default_skills )
940+ elif config_obj .skills is None :
941+ resolved = []
953942 else :
943+ resolved = self ._resolve_skills (config_obj .skills )
954944 resolved = self ._deduplicate_skills (resolved )
955945
956946 config_obj .skill_manifests = resolved
957947
958948 def _resolve_skills (
959949 self ,
960- entry : SkillEntry | list [ SkillEntry | None ] | None ,
950+ entry : SkillConfig ,
961951 ) -> list [SkillManifest ]:
952+ if entry is SKILLS_DEFAULT :
953+ return []
962954 if entry is None :
963955 return []
964956 if isinstance (entry , list ):
0 commit comments