This covers the decorator patterns for registering tools in PydanticAI agents. The key thing to remember is that @agent.tool requires RunContext as the first parameter while @agent.tool_plain doesn't allow it at all. Mix them up and your tools won't work. The skill walks through docstring requirements (the LLM reads these to understand what your tools do), return type handling, and some useful patterns like prepare_tools for filtering capabilities based on user permissions. It's straightforward once you internalize the decorator rules, but the context parameter requirement trips people up initially. Worth referencing when you're adding function calling to agents.
npx skills add https://github.com/existential-birds/beagle --skill pydantic-ai-tool-system