{"id":28083,"library":"pydantic-ai-skills","title":"Pydantic AI Skills","description":"A lightweight agent skill implementation for Pydantic AI, providing a framework for defining, loading, and executing reusable skills (tools) for AI agents. Current version 0.10.0 supports programmatic and filesystem-based skills, Git registries, and integration with pydantic-ai agents. Released on a rapid cadence (~monthly).","status":"active","version":"0.10.0","language":"python","source_language":"en","source_url":"https://github.com/dougtrajano/pydantic-ai-skills","tags":["ai","agent","skills","pydantic","tools","llm"],"install":[{"cmd":"pip install pydantic-ai-skills","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for RunContext, ModelRetry, and agent integration","package":"pydantic-ai>=0.1.74","optional":false},{"reason":"Required for GitSkillsRegistry","package":"gitpython>=3.1","optional":true}],"imports":[{"note":"SkillsToolset is re-exported from the top-level package; the submodule path changed in v0.5.0.","wrong":"from pydantic_ai_skills.toolset import SkillsToolset","symbol":"SkillsToolset","correct":"from pydantic_ai_skills import SkillsToolset"},{"note":"Skill class moved to top-level in v0.5.0.","wrong":"from pydantic_ai_skills.models import Skill","symbol":"Skill","correct":"from pydantic_ai_skills import Skill"}],"quickstart":{"code":"from pydantic_ai import Agent\nfrom pydantic_ai_skills import SkillsToolset, Skill\n\n# Define a skill programmatically\nskill = Skill(\n    name=\"greet\",\n    description=\"Greet the user by name.\",\n    content=\"Greet the user politely.\",\n    scripts=[\n        {\n            \"language\": \"python\",\n            \"code\": \"def greet(name: str) -> str:\\n    return f'Hello, {name}!'\",\n            \"entrypoint\": \"greet\"\n        }\n    ]\n)\n\n# Create agent with skills toolset\nagent = Agent('openai:gpt-4o', tools=SkillsToolset(skills=[skill]))\n\n# Run agent\nresult = agent.run_sync('Greet Alice')\nprint(result.data)","lang":"python","description":"Quickstart: create a programmatic skill and use it with a pydantic-ai agent."},"warnings":[{"fix":"Replace `except SkillException:` with `except ModelRetry:` or appropriate stdlib exception (e.g., ValueError).","message":"In v0.10.0, SkillException hierarchy was replaced with ModelRetry and stdlib exceptions. Code catching SkillException will break.","severity":"breaking","affected_versions":"<0.10.0"},{"fix":"Upgrade pydantic-ai to >=1.74.","message":"v0.9.0 dropped compatibility with pydantic-ai versions earlier than 1.74. Older pydantic-ai versions are no longer supported.","severity":"breaking","affected_versions":"<0.9.0"},{"fix":"Remove `auto_reload=True` and call `.reload()` manually when needed.","message":"SkillsToolset auto_reload parameter (introduced in v0.6.0) is now deprecated. Use reload() method explicitly.","severity":"deprecated","affected_versions":"0.6.0 - 0.9.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Upgrade to v0.5.0+ or import from pydantic_ai_skills.models.Skill (deprecated).","cause":"Using an older version (<0.5.0) where Skill was not re-exported, or importing from wrong submodule.","error":"AttributeError: module 'pydantic_ai_skills' has no attribute 'Skill'"},{"fix":"Use ModelRetry from pydantic_ai.exceptions or stdlib exceptions instead.","cause":"SkillException was removed in v0.10.0.","error":"ImportError: cannot import name 'SkillException' from 'pydantic_ai_skills'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}