@@ -41,7 +41,7 @@ class AgentState(BaseModel):
4141from pydantic_ai .ui import SSE_CONTENT_TYPE
4242from pydantic_ai .ui .ag_ui import AGUIAdapter
4343
44- __version__ = "1.1.14 "
44+ __version__ = "1.1.15 "
4545
4646logging .basicConfig (
4747 level = logging .INFO ,
@@ -62,7 +62,7 @@ class AgentState(BaseModel):
6262DEFAULT_LLM_API_KEY = os .getenv ("LLM_API_KEY" , "llama" )
6363DEFAULT_MCP_URL = os .getenv ("MCP_URL" , None )
6464DEFAULT_MCP_CONFIG = os .getenv ("MCP_CONFIG" , get_mcp_config_path ())
65- DEFAULT_SKILLS_DIRECTORY = os .getenv ("SKILLS_DIRECTORY " , get_skills_path () )
65+ DEFAULT_CUSTOM_SKILLS_DIRECTORY = os .getenv ("CUSTOM_SKILLS_DIRECTORY " , None )
6666DEFAULT_ENABLE_WEB_UI = to_boolean (os .getenv ("ENABLE_WEB_UI" , "False" ))
6767DEFAULT_SSL_VERIFY = to_boolean (os .getenv ("SSL_VERIFY" , "True" ))
6868
@@ -114,7 +114,7 @@ def create_agent(
114114 api_key : Optional [str ] = DEFAULT_LLM_API_KEY ,
115115 mcp_url : str = DEFAULT_MCP_URL ,
116116 mcp_config : str = DEFAULT_MCP_CONFIG ,
117- skills_directory : Optional [str ] = DEFAULT_SKILLS_DIRECTORY ,
117+ custom_skills_directory : Optional [str ] = DEFAULT_CUSTOM_SKILLS_DIRECTORY ,
118118 ssl_verify : bool = DEFAULT_SSL_VERIFY ,
119119) -> Agent :
120120 agent_toolsets = []
@@ -146,11 +146,25 @@ def create_agent(
146146 agent_toolsets .extend (mcp_toolset )
147147 logger .info (f"Connected to MCP Config JSON: { mcp_toolset } " )
148148
149- if skills_directory and os .path .exists (skills_directory ):
150- logger .debug (f"Loading skills { skills_directory } " )
151- skills = SkillsToolset (directories = [str (skills_directory )])
152- agent_toolsets .append (skills )
153- logger .info (f"Loaded Skills at { skills_directory } " )
149+ # Always load default skills
150+
151+ skill_dirs = [get_skills_path ()]
152+
153+ # Load custom skills if provided
154+
155+ if custom_skills_directory and os .path .exists (custom_skills_directory ):
156+
157+ logger .debug (f"Loading custom skills { custom_skills_directory } " )
158+
159+ skill_dirs .append (str (custom_skills_directory ))
160+
161+ logger .info (f"Loaded Custom Skills at { custom_skills_directory } " )
162+
163+ skills = SkillsToolset (directories = skill_dirs )
164+
165+ agent_toolsets .append (skills )
166+
167+ logger .info (f"Loaded Default Skills at { get_skills_path ()} " )
154168
155169 model = create_model (
156170 provider = provider ,
@@ -194,7 +208,7 @@ def create_agent_server(
194208 api_key : Optional [str ] = DEFAULT_LLM_API_KEY ,
195209 mcp_url : str = DEFAULT_MCP_URL ,
196210 mcp_config : str = DEFAULT_MCP_CONFIG ,
197- skills_directory : Optional [str ] = DEFAULT_SKILLS_DIRECTORY ,
211+ custom_skills_directory : Optional [str ] = DEFAULT_CUSTOM_SKILLS_DIRECTORY ,
198212 debug : Optional [bool ] = DEFAULT_DEBUG ,
199213 host : Optional [str ] = DEFAULT_HOST ,
200214 port : Optional [int ] = DEFAULT_PORT ,
@@ -216,14 +230,30 @@ def create_agent_server(
216230 api_key = api_key ,
217231 mcp_url = mcp_url ,
218232 mcp_config = mcp_config ,
219- skills_directory = skills_directory ,
233+ custom_skills_directory = custom_skills_directory ,
220234 ssl_verify = ssl_verify ,
221235 )
222236
223- if skills_directory and os .path .exists (skills_directory ):
224- skills = load_skills_from_directory (skills_directory )
225- logger .info (f"Loaded { len (skills )} skills from { skills_directory } " )
226- else :
237+ # Always load default skills
238+
239+ skills = load_skills_from_directory (get_skills_path ())
240+
241+ logger .info (f"Loaded { len (skills )} default skills from { get_skills_path ()} " )
242+
243+ # Load custom skills if provided
244+
245+ if custom_skills_directory and os .path .exists (custom_skills_directory ):
246+
247+ custom_skills = load_skills_from_directory (custom_skills_directory )
248+
249+ skills .extend (custom_skills )
250+
251+ logger .info (
252+ f"Loaded { len (custom_skills )} custom skills from { custom_skills_directory } "
253+ )
254+
255+ if not skills :
256+
227257 skills = [
228258 Skill (
229259 id = "vector_agent" ,
@@ -342,9 +372,9 @@ def agent_server():
342372 "--mcp-config" , default = DEFAULT_MCP_CONFIG , help = "MCP Server Config"
343373 )
344374 parser .add_argument (
345- "--skills-directory" ,
346- default = DEFAULT_SKILLS_DIRECTORY ,
347- help = "Directory containing agent skills" ,
375+ "--custom- skills-directory" ,
376+ default = DEFAULT_CUSTOM_SKILLS_DIRECTORY ,
377+ help = "Directory containing additional custom agent skills" ,
348378 )
349379
350380 parser .add_argument (
@@ -394,7 +424,7 @@ def agent_server():
394424 api_key = args .api_key ,
395425 mcp_url = args .mcp_url ,
396426 mcp_config = args .mcp_config ,
397- skills_directory = args .skills_directory ,
427+ custom_skills_directory = args .custom_skills_directory ,
398428 debug = args .debug ,
399429 host = args .host ,
400430 port = args .port ,
@@ -417,12 +447,12 @@ def usage():
417447 "--api-key [ LLM API Key ]\n "
418448 "--mcp-url [ MCP Server URL ]\n "
419449 "--mcp-config [ MCP Server Config ]\n "
420- "--skills-directory [ Directory containing agent skills ]\n "
450+ "--custom- skills-directory [ Directory containing additional custom agent skills ]\n "
421451 "--web [ Enable Pydantic AI Web UI ]\n "
422452 "\n "
423453 "Examples:\n "
424454 " [Simple] vector-agent \n "
425- ' [Complex] vector-agent --host "value" --port "value" --debug "value" --reload --provider "value" --model-id "value" --base-url "value" --api-key "value" --mcp-url "value" --mcp-config "value" --skills-directory "value" --web\n '
455+ ' [Complex] vector-agent --host "value" --port "value" --debug "value" --reload --provider "value" --model-id "value" --base-url "value" --api-key "value" --mcp-url "value" --mcp-config "value" --custom- skills-directory "value" --web\n '
426456 )
427457
428458
0 commit comments