Install any skill in seconds. Free to start, no credit card required.
Get Started Free →majiayu000/pydantic-ai-tool-system
Register and implement PydanticAI tools with proper context handling, type annotations, and docstrings.
Passed 22 of 22 test cases with the skill, and 16 of 22 without it.
and 7 more in the full report
6 fixed16 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
I prefer Sphinx-style docstrings (`:param ...`) over Google style for my PydanticAI agent tools. How do I configure a plain tool function to use Sphinx format?
| Checked | Without skill | With skill |
|---|---|---|
| Passes docstring_format='sphinx' to the tool_plain decorator. | Missed | Passed |
| Uses :param annotations in the docstring to describe parameters. | Passed | Passed |
The instructions your model reads when the skill loads.
Two decorators based on whether you need context:
from pydantic_ai import Agent, RunContext
agent = Agent('openai:gpt-4o')
# @agent.tool - First param MUST be RunContext
@agent.tool
async def get_user_data(ctx: RunContext[MyDeps], user_id: int) -> str:
"""Get user data from database.
Args:
ctx: The run context with dependencies.
user_id: The user's ID.
"""
return await ctx.deps.db.get_user(user_id)
# @agent.tool_plain - NO context parameter allowed
@agent.tool_plain
def calculate_total(prices: list[float]) -> float:
"""Calculate total price.
Args:
prices: List of prices to sum.
"""
return sum(prices)
RunContext[DepsType]RunContext parametertest cases passed, vs 16 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.