[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CC0Y0RFT7H5QJWDXWYZFJM":3,"skill-same:01M6CC0Y0RFT7H5QJWDXWYZFJM":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M6CC0Y0RFT7H5QJWDXWYZFJM","pydantic-ai-agent-creation",null,"Create PydanticAI agents with type-safe dependencies, structured outputs, and proper configuration. Use when building AI agents, creating chat systems, or integrating LLMs with Pydantic validation.","ray-manaloto\u002Fmacos-development-environment","ray-manaloto","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F227192835?v=4","01M6CBR7J13ZA01X5YB1A1QRJP","01M6CBR7P0S3NS8ZV81JYNST14",1,"MIT","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskills\u002Fpydantic-ai-agent-creation\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32],"ai agent","Pydantic","pydantic ai","pydantic ai agent creation","safe","ai agents","llms","create","validation","use","2026-11-10 10:12:30",false,"---\nname: pydantic-ai-agent-creation\ndescription: Create PydanticAI agents with type-safe dependencies, structured outputs, and proper configuration. Use when building AI agents, creating chat systems, or integrating LLMs with Pydantic validation.\n---\n\n# Creating PydanticAI Agents\n\n## Quick Start\n\n```python\nfrom pydantic_ai import Agent\n\n# Minimal agent (text output)\nagent = Agent('openai:gpt-4o')\nresult = agent.run_sync('Hello!')\nprint(result.output)  # str\n```\n\n## Model Selection\n\nModel strings follow `provider:model-name` format:\n\n```python\n# OpenAI\nagent = Agent('openai:gpt-4o')\nagent = Agent('openai:gpt-4o-mini')\n\n# Anthropic\nagent = Agent('anthropic:claude-sonnet-4-5')\nagent = Agent('anthropic:claude-haiku-4-5')\n\n# Google\nagent = Agent('google-gla:gemini-2.0-flash')\nagent = Agent('google-vertex:gemini-2.0-flash')\n\n# Others: groq:, mistral:, cohere:, bedrock:, etc.\n```\n\n## Structured Outputs\n\nUse Pydantic models for validated, typed responses:\n\n```python\nfrom pydantic import BaseModel\nfrom pydantic_ai import Agent\n\nclass CityInfo(BaseModel):\n    city: str\n    country: str\n    population: int\n\nagent = Agent('openai:gpt-4o', output_type=CityInfo)\nresult = agent.run_sync('Tell me about Paris')\nprint(result.output.city)  # \"Paris\"\nprint(result.output.population)  # int, validated\n```\n\n## Agent Configuration\n\n```python\nagent = Agent(\n    'openai:gpt-4o',\n    output_type=MyOutput,           # Structured output type\n    deps_type=MyDeps,               # Dependency injection type\n    instructions='You are helpful.',  # Static instructions\n    retries=2,                      # Retry attempts for validation\n    name='my-agent',                # For logging\u002Ftracing\n    model_settings=ModelSettings(   # Provider settings\n        temperature=0.7,\n        max_tokens=1000\n    ),\n    end_strategy='early',           # How to handle tool calls with results\n)\n```\n\n## Running Agents\n\nThree execution methods:\n\n```python\n# Async (preferred)\nresult = await agent.run('prompt', deps=my_deps)\n\n# Sync (convenience)\nresult = agent.run_sync('prompt', deps=my_deps)\n\n# Streaming\nasync with agent.run_stream('prompt') as response:\n    async for chunk in response.stream_output():\n        print(chunk, end='')\n```\n\n## Instructions vs System Prompts\n\n```python\n# Instructions: Concatenated, for agent behavior\nagent = Agent(\n    'openai:gpt-4o',\n    instructions='You are a helpful assistant. Be concise.'\n)\n\n# Dynamic instructions via decorator\n@agent.instructions\ndef add_context(ctx: RunContext[MyDeps]) -> str:\n    return f\"User ID: {ctx.deps.user_id}\"\n\n# System prompts: Static, for model context\nagent = Agent(\n    'openai:gpt-4o',\n    system_prompt=['You are an expert.', 'Always cite sources.']\n)\n```\n\n## Common Patterns\n\n### Parameterized Agent (Type-Safe)\n\n```python\nfrom dataclasses import dataclass\nfrom pydantic_ai import Agent, RunContext\n\n@dataclass\nclass Deps:\n    api_key: str\n    user_id: int\n\nagent: Agent[Deps, str] = Agent(\n    'openai:gpt-4o',\n    deps_type=Deps,\n)\n\n# deps is now required and type-checked\nresult = agent.run_sync('Hello', deps=Deps(api_key='...', user_id=123))\n```\n\n### No Dependencies (Satisfy Type Checker)\n\n```python\n# Option 1: Explicit type annotation\nagent: Agent[None, str] = Agent('openai:gpt-4o')\n\n# Option 2: Pass deps=None\nresult = agent.run_sync('Hello', deps=None)\n```\n\n## Decision Framework\n\n| Scenario | Configuration |\n|----------|--------------|\n| Simple text responses | `Agent(model)` |\n| Structured data extraction | `Agent(model, output_type=MyModel)` |\n| Need external services | Add `deps_type=MyDeps` |\n| Validation retries needed | Increase `retries=3` |\n| Debugging\u002Fmonitoring | Set `instrument=True` |\n","# Creating PydanticAI Agents\n\n## Quick Start\n\n```python\nfrom pydantic_ai import Agent\n\n# Minimal agent (text output)\nagent = Agent('openai:gpt-4o')\nresult = agent.run_sync('Hello!')\nprint(result.output)  # str\n```\n\n## Model Selection\n\nModel strings follow `provider:model-name` format:\n\n```python\n# OpenAI\nagent = Agent('openai:gpt-4o')\nagent = Agent('openai:gpt-4o-mini')\n\n# Anthropic\nagent = Agent('anthropic:claude-sonnet-4-5')\nagent = Agent('anthropic:claude-haiku-4-5')\n\n# Google\nagent = Agent('google-gla:gemini-2.0-flash')\nagent = Agent('google-vertex:gemini-2.0-flash')\n\n# Others: groq:, mistral:, cohere:, bedrock:, etc.\n```\n\n## Structured Outputs\n\nUse Pydantic models for validated, typed responses:\n\n```python\nfrom pydantic import BaseModel\nfrom pydantic_ai import Agent\n\nclass CityInfo(BaseModel):\n    city: str\n    country: str\n    population: int\n\nagent = Agent('openai:gpt-4o', output_type=CityInfo)\nresult = agent.run_sync('Tell me about Paris')\nprint(result.output.city)  # \"Paris\"\nprint(result.output.population)  # int, validated\n```\n\n## Agent Configuration\n\n```python\nagent = Agent(\n    'openai:gpt-4o',\n    output_type=MyOutput,           # Structured output type\n    deps_type=MyDeps,               # Dependency injection type\n    instructions='You are helpful.',  # Static instructions\n    retries=2,                      # Retry attempts for validation\n    name='my-agent',                # For logging\u002Ftracing\n    model_settings=ModelSettings(   # Provider settings\n        temperature=0.7,\n        max_tokens=1000\n    ),\n    end_strategy='early',           # How to handle tool calls with results\n)\n```\n\n## Running Agents\n\nThree execution methods:\n\n```python\n# Async (preferred)\nresult = await agent.run('prompt', deps=my_deps)\n\n# Sync (convenience)\nresult = agent.run_sync('prompt', deps=my_deps)\n\n# Streaming\nasync with agent.run_stream('prompt') as response:\n    async for chunk in response.stream_output():\n        print(chunk, end='')\n```\n\n## Instructions vs System Prompts\n\n```python\n# Instructions: Concatenated, for agent behavior\nagent = Agent(\n    'openai:gpt-4o',\n    instructions='You are a helpful assistant. Be concise.'\n)\n\n# Dynamic instructions via decorator\n@agent.instructions\ndef add_context(ctx: RunContext[MyDeps]) -> str:\n    return f\"User ID: {ctx.deps.user_id}\"\n\n# System prompts: Static, for model context\nagent = Agent(\n    'openai:gpt-4o',\n    system_prompt=['You are an expert.', 'Always cite sources.']\n)\n```\n\n## Common Patterns\n\n### Parameterized Agent (Type-Safe)\n\n```python\nfrom dataclasses import dataclass\nfrom pydantic_ai import Agent, RunContext\n\n@dataclass\nclass Deps:\n    api_key: str\n    user_id: int\n\nagent: Agent[Deps, str] = Agent(\n    'openai:gpt-4o',\n    deps_type=Deps,\n)\n\n# deps is now required and type-checked\nresult = agent.run_sync('Hello', deps=Deps(api_key='...', user_id=123))\n```\n\n### No Dependencies (Satisfy Type Checker)\n\n```python\n# Option 1: Explicit type annotation\nagent: Agent[None, str] = Agent('openai:gpt-4o')\n\n# Option 2: Pass deps=None\nresult = agent.run_sync('Hello', deps=None)\n```\n\n## Decision Framework\n\n| Scenario | Configuration |\n|----------|--------------|\n| Simple text responses | `Agent(model)` |\n| Structured data extraction | `Agent(model, output_type=MyModel)` |\n| Need external services | Add `deps_type=MyDeps` |\n| Validation retries needed | Increase `retries=3` |\n| Debugging\u002Fmonitoring | Set `instrument=True` |\n",{"name":5,"description":7},"main","716b17df3ef6719d88aeac180015008b7ddfff6f",".claude\u002Fskills\u002Fskills\u002Fpydantic-ai-agent-creation",0,"https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment","https:\u002F\u002Fgithub.com\u002Fray-manaloto","2026-08-03 16:55:50",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add ray-manaloto\u002Fmacos-development-environment --skill pydantic-ai-agent-creation",{"tool":51,"command":52},"bunx","bunx skills add ray-manaloto\u002Fmacos-development-environment --skill pydantic-ai-agent-creation",{"tool":54,"command":55},"pnpm","pnpm dlx skills add ray-manaloto\u002Fmacos-development-environment --skill pydantic-ai-agent-creation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskills\u002Fpydantic-ai-agent-creation\u002FSKILL.md",true,[59,65,69,73],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"agents\u002Fopenai.yaml","REFERENCE","参考文档",193,"https:\u002F\u002Fgithub.com\u002Ffernando-delosrios-sp\u002Fsailpoint-utils\u002Fblob\u002Fmain\u002FSaaS Connectivity\u002Fsaas-custom-operations\u002F.agents\u002Fskills\u002Fimprove-codebase-architecture\u002Fagents\u002Fopenai.yaml",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"LANGUAGE.md",3804,"https:\u002F\u002Fgithub.com\u002Ffernando-delosrios-sp\u002Fsailpoint-utils\u002Fblob\u002Fmain\u002FSaaS Connectivity\u002Fsaas-custom-operations\u002F.agents\u002Fskills\u002Fimprove-codebase-architecture\u002FLANGUAGE.md",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"MARKDOWN-REPORT.md",9588,"https:\u002F\u002Fgithub.com\u002Ffernando-delosrios-sp\u002Fsailpoint-utils\u002Fblob\u002Fmain\u002FSaaS Connectivity\u002Fsaas-custom-operations\u002F.agents\u002Fskills\u002Fimprove-codebase-architecture\u002FMARKDOWN-REPORT.md",{"path":74,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":75,"sourceHtmlUrl":76},"OPENSPEC-CHANGE.md",1216,"https:\u002F\u002Fgithub.com\u002Ffernando-delosrios-sp\u002Fsailpoint-utils\u002Fblob\u002Fmain\u002FSaaS Connectivity\u002Fsaas-custom-operations\u002F.agents\u002Fskills\u002Fimprove-codebase-architecture\u002FOPENSPEC-CHANGE.md",[78,96,114,132,152,166],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":85,"publishedAt":33},"01M6CC8DXNJ39YWERYTWCGGCGG","next-workflow-step","Use this skill when the user wants to transition to the next workflow step, wrap up a session cleanly, prepare a handoff, or says things like \"next step\", \"continue the workflow\", \"wrap up\", \"hand off\", \"move to the next phase\", \"what's next in embrace\", or \"prepare for \u002Fclear\". Also triggers when the current octo:embrace phase appears complete and no explicit next action is set.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fworkflow-toolkit\u002Fskills\u002Fnext-workflow-step\u002FSKILL.md",[84],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[86,87,88,32,89,90,91,92,93,94,95],"next workflow step","workflow","up","session","user","wrap up","continue","handoff","prepare","SET",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":33},"01M6CC8BRZBQHEBXGMKPDM422P","source-discovery","This skill should be used when the user asks to \"find sources\", \"discover URLs\", \"catalog a source\", \"classify a URL\", \"search for libraries\", \"check what exists\", or mentions source discovery, URL cataloging, source classification, or research source management.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fsource-discovery\u002FSKILL.md",[],[103,104,105,106,107,108,109,110,111,90,112,113],"discovery","source discovery","research","libraries","search","classification","find","check","management","catalog","find sources",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":33},"01M6CC89CGJP69A0PS22G2H1FV","review-synthesis","This skill should be used when the user asks to \"summarize review findings\", \"prioritize fixes\", \"rank review issues\", \"combine reviewer feedback\", \"create action items from review\", or mentions review synthesis, finding prioritization, severity ranking, or review result summarization.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Freview-synthesis\u002FSKILL.md",[],[121,122,123,124,125,126,127,90,128,129,30,130,131],"review","review synthesis","Synthesis","prioritize","create action","feedback","reviewer","summarize","prioritization","issues","severity",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":141,"publishedAt":33},"01M6CC872EZ9GRJY0HRCG0RT2M","research-scoring","This skill should be used when the user asks to \"score research\", \"check research quality\", \"evaluate coverage\", \"measure improvement\", \"assess research completeness\", or mentions research scoring, quality metrics, coverage gaps, improvement baseline, or research pipeline status.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fresearch-scoring\u002FSKILL.md",[138],{"categoryNo":139,"categoryName":140,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[142,105,143,144,145,146,147,148,110,90,149,150,151],"research scoring","status","coverage gaps","metrics","pipeline","baseline","quality","coverage","pipeline status","research quality",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":33},"01M6CC852HSDS1FE4EJAT0RHGR","notebooklm-integration","This skill should be used when the user asks to \"ingest into NotebookLM\", \"query NotebookLM\", \"add sources to notebook\", \"cross-source synthesis\", \"check stale sources\", or mentions NotebookLM, notebook integration, source ingestion, or knowledge consolidation.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fnotebooklm-integration\u002FSKILL.md",[],[159,160,161,162,110,90,163,164,165,123],"notebooklm integration","notebooklm","integration","knowledge","ingestion","ingest","stale",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":33},"01M6CC82Z4V3205KCJWQZPS2VG","evidence-synthesis","This skill should be used when the user asks to \"synthesize findings\", \"combine research\", \"cross-reference sources\", \"summarize evidence\", \"write a deep review\", or mentions evidence synthesis, finding consolidation, cross-source analysis, or research summarization.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fevidence-synthesis\u002FSKILL.md",[172],{"categoryNo":139,"categoryName":140,"taxonomyType":20,"taxonomyTypeDesc":21},[174,123,175,128,105,176,177,178,90,179,121],"evidence synthesis","evidence","deep review","analysis","write","reference"]