3434from pydantic_ai .ui import SSE_CONTENT_TYPE
3535from pydantic_ai .ui .ag_ui import AGUIAdapter
3636
37- __version__ = "0.1.10 "
37+ __version__ = "0.1.11 "
3838
3939logging .basicConfig (
4040 level = logging .INFO ,
5555DEFAULT_LLM_API_KEY = os .getenv ("LLM_API_KEY" , "ollama" )
5656DEFAULT_MCP_URL = os .getenv ("MCP_URL" , None )
5757DEFAULT_MCP_CONFIG = os .getenv ("MCP_CONFIG" , get_mcp_config_path ())
58- DEFAULT_SKILLS_DIRECTORY = os .getenv ("SKILLS_DIRECTORY " , get_skills_path () )
58+ DEFAULT_CUSTOM_SKILLS_DIRECTORY = os .getenv ("CUSTOM_SKILLS_DIRECTORY " , None )
5959DEFAULT_ENABLE_WEB_UI = to_boolean (os .getenv ("ENABLE_WEB_UI" , "False" ))
6060DEFAULT_SSL_VERIFY = to_boolean (os .getenv ("SSL_VERIFY" , "True" ))
6161
@@ -98,7 +98,7 @@ def create_agent(
9898 api_key : Optional [str ] = DEFAULT_LLM_API_KEY ,
9999 mcp_url : str = DEFAULT_MCP_URL ,
100100 mcp_config : str = DEFAULT_MCP_CONFIG ,
101- skills_directory : Optional [str ] = DEFAULT_SKILLS_DIRECTORY ,
101+ custom_skills_directory : Optional [str ] = DEFAULT_CUSTOM_SKILLS_DIRECTORY ,
102102 ssl_verify : bool = DEFAULT_SSL_VERIFY ,
103103) -> Agent :
104104 agent_toolsets = []
@@ -130,11 +130,25 @@ def create_agent(
130130 agent_toolsets .extend (mcp_toolset )
131131 logger .info (f"Connected to MCP Config JSON: { mcp_toolset } " )
132132
133- if skills_directory and os .path .exists (skills_directory ):
134- logger .debug (f"Loading skills { skills_directory } " )
135- skills = SkillsToolset (directories = [str (skills_directory )])
136- agent_toolsets .append (skills )
137- logger .info (f"Loaded Skills at { skills_directory } " )
133+ # Always load default skills
134+
135+ skill_dirs = [get_skills_path ()]
136+
137+ # Load custom skills if provided
138+
139+ if custom_skills_directory and os .path .exists (custom_skills_directory ):
140+
141+ logger .debug (f"Loading custom skills { custom_skills_directory } " )
142+
143+ skill_dirs .append (str (custom_skills_directory ))
144+
145+ logger .info (f"Loaded Custom Skills at { custom_skills_directory } " )
146+
147+ skills = SkillsToolset (directories = skill_dirs )
148+
149+ agent_toolsets .append (skills )
150+
151+ logger .info (f"Loaded Default Skills at { get_skills_path ()} " )
138152
139153 model = create_model (
140154 provider = provider ,
@@ -180,7 +194,7 @@ def create_agent_server(
180194 api_key : Optional [str ] = DEFAULT_LLM_API_KEY ,
181195 mcp_url : str = DEFAULT_MCP_URL ,
182196 mcp_config : str = DEFAULT_MCP_CONFIG ,
183- skills_directory : Optional [str ] = DEFAULT_SKILLS_DIRECTORY ,
197+ custom_skills_directory : Optional [str ] = DEFAULT_CUSTOM_SKILLS_DIRECTORY ,
184198 debug : Optional [bool ] = DEFAULT_DEBUG ,
185199 host : Optional [str ] = DEFAULT_HOST ,
186200 port : Optional [int ] = DEFAULT_PORT ,
@@ -202,14 +216,30 @@ def create_agent_server(
202216 api_key = api_key ,
203217 mcp_url = mcp_url ,
204218 mcp_config = mcp_config ,
205- skills_directory = skills_directory ,
219+ custom_skills_directory = custom_skills_directory ,
206220 ssl_verify = ssl_verify ,
207221 )
208222
209- if skills_directory and os .path .exists (skills_directory ):
210- skills = load_skills_from_directory (skills_directory )
211- logger .info (f"Loaded { len (skills )} skills from { skills_directory } " )
212- else :
223+ # Always load default skills
224+
225+ skills = load_skills_from_directory (get_skills_path ())
226+
227+ logger .info (f"Loaded { len (skills )} default skills from { get_skills_path ()} " )
228+
229+ # Load custom skills if provided
230+
231+ if custom_skills_directory and os .path .exists (custom_skills_directory ):
232+
233+ custom_skills = load_skills_from_directory (custom_skills_directory )
234+
235+ skills .extend (custom_skills )
236+
237+ logger .info (
238+ f"Loaded { len (custom_skills )} custom skills from { custom_skills_directory } "
239+ )
240+
241+ if not skills :
242+
213243 skills = [
214244 Skill (
215245 id = "documentdb_agent" ,
@@ -326,9 +356,9 @@ def agent_server():
326356 "--mcp-config" , default = DEFAULT_MCP_CONFIG , help = "MCP Server Config"
327357 )
328358 parser .add_argument (
329- "--skills-directory" ,
330- default = DEFAULT_SKILLS_DIRECTORY ,
331- help = "Directory containing agent skills" ,
359+ "--custom- skills-directory" ,
360+ default = DEFAULT_CUSTOM_SKILLS_DIRECTORY ,
361+ help = "Directory containing additional custom agent skills" ,
332362 )
333363
334364 parser .add_argument (
@@ -378,7 +408,7 @@ def agent_server():
378408 api_key = args .api_key ,
379409 mcp_url = args .mcp_url ,
380410 mcp_config = args .mcp_config ,
381- skills_directory = args .skills_directory ,
411+ custom_skills_directory = args .custom_skills_directory ,
382412 debug = args .debug ,
383413 host = args .host ,
384414 port = args .port ,
@@ -401,12 +431,12 @@ def usage():
401431 "--api-key [ LLM API Key ]\n "
402432 "--mcp-url [ MCP Server URL ]\n "
403433 "--mcp-config [ MCP Server Config ]\n "
404- "--skills-directory [ Directory containing agent skills ]\n "
434+ "--custom- skills-directory [ Directory containing additional custom agent skills ]\n "
405435 "--web [ Enable Pydantic AI Web UI ]\n "
406436 "\n "
407437 "Examples:\n "
408438 " [Simple] documentdb-agent \n "
409- ' [Complex] documentdb-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 '
439+ ' [Complex] documentdb-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 '
410440 )
411441
412442
0 commit comments