[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BYX50EE88NVWFZ80M1FC5C":3,"skill-same:01M6BYX50EE88NVWFZ80M1FC5C":112},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6BYX50EE88NVWFZ80M1FC5C","migrating-claude-agent-sdk-to-pydantic-ai",null,"Migrate Python applications from the Claude Agent SDK to Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports `claude_agent_sdk` or relies on Claude Code's agent loop, sessions, built-in tools, hooks, permissions, skills, or subagents. Do not use for the Anthropic Messages SDK or Claude Managed Agents.","pydantic\u002Fpydantic-ai","pydantic","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F110818415?v=4","01M6BYVCCAN7VAVS8DFHJF4GY1","Pydantic","01M6BYVCGHJCX3C0VZF6J7BA7V",21172,"MIT","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-claude-agent-sdk-to-pydantic-ai\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,12,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"sdk","agent sdk","pydantic ai","claude agent sdk","migrating claude agent sdk to pydantic ai","when","python","managed","ai harness","for","do","hooks","only","use","migrate","loop","applications","Tools","messages","harness","permissions","code","sessions","2026-11-10 10:12:30",false,"---\nname: migrating-claude-agent-sdk-to-pydantic-ai\ndescription: Migrate Python applications from the Claude Agent SDK to Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports `claude_agent_sdk` or relies on Claude Code's agent loop, sessions, built-in tools, hooks, permissions, skills, or subagents. Do not use for the Anthropic Messages SDK or Claude Managed Agents.\n---\n\n# Migrate Claude Agent SDK to Pydantic AI\n\nPreserve observable behavior, not the Claude Code process or API shape. Migrate the smallest complete caller path and keep application infrastructure in place.\n\n## Trace the source before choosing a target\n\n1. Read repository instructions, dependencies, tests, and the runtime entrypoint. Record the installed Claude Agent SDK, bundled Claude Code CLI, Pydantic AI, and Harness versions.\n2. Trace one real request from `query()` or `ClaudeSDKClient` through prompts, tools, events, results, state, persistence, approvals, and side effects that callers use. Establish a focused baseline or characterization test.\n3. Separate these source contracts when present:\n   - fresh `query()` calls, live `ClaudeSDKClient` continuation, disk\u002Fexternal-store resume, transcript forks, and file rewind;\n   - tool availability, automatic approval, policy callbacks, and OS\u002Fcontainer isolation;\n   - completed messages, raw token deltas, lifecycle events, and terminal results;\n   - conversation history, workflow checkpoints, model-owned plans, long-term memory, and workspace state;\n   - model-directed subagents from application-owned loops, queues, retries, and schedulers.\n4. Record each observed contract, its owner, semantic difference, and executable proof. An unobserved Claude Code feature is not migration scope.\n\nRead [Research and concept mapping](references\u002FRESEARCH-AND-MAPPING.md) for the detected source features. Read [Verification and cutover](references\u002FVERIFICATION-AND-CUTOVER.md) before implementation.\n\n## Choose the smallest target\n\n- **Core:** use `pydantic_ai.Agent` for model calls, the agent loop, typed dependencies, tools, outputs, normalized messages, generic hooks, streaming, MCP, approvals, usage limits, instrumentation, and durable-runtime integrations.\n- **Harness:** add `pydantic-ai-harness` only for observed reusable policy such as coding filesystem\u002Fshell tools, repository context, planning, memory, model-directed subagents, model-agnostic context management, or Agent Skills. Harness capabilities compose through the core agent loop; Harness is not a second runtime.\n- **Application:** retain authentication, service clients, databases, queues, schedulers, deployment, product state, session lookup, tenant policy, and existing transports unless the requested slice includes them.\n- **Gap:** name behavior that no supported public seam preserves, explain its impact, and test a bounded adapter. Do not create a lookalike `ClaudeSDKClient` or emulate Claude transcript files merely to hide a difference.\n\nThe normal migration is one reusable `Agent`, application services supplied through typed dependencies, ordinary Pydantic AI tools, a typed output when the caller expects structure, and application-owned storage of `result.all_messages()` when later turns need context. Preserve the existing public request\u002Fresponse\u002Fevent boundary with a small adapter while callers migrate.\n\n## Apply high-risk gates\n\n- `allowed_tools` in the Claude Agent SDK means auto-approval, not exclusive availability and not isolation. Map availability, approval, policy, and sandboxing independently.\n- Pydantic AI `message_history` explicitly replays normalized messages. `conversation_id` correlates runs; it is not a Claude session-resume token. Prove restart and fork behavior rather than renaming IDs.\n- Pydantic AI approval defers a validated tool call. The application still owns authenticated authorization, identity, and audit, and the protected effect must not run before approval.\n- Map hooks by firing point, inputs, ordering, mutation, blocking, and error behavior. Claude hook matchers may run concurrently. Pydantic AI runs `before_*` hooks in capability order, `after_*` hooks in reverse order, and nests `wrap_*` hooks with the first capability outermost. Require a golden trace for any hook-visible contract.\n- Map consumer intent for streaming. Pydantic AI output streaming, run-event streaming, and graph iteration are different surfaces; none promises the Claude SDK message taxonomy.\n- Use Harness `SubAgents` only for model-directed delegation. Keep deterministic orchestration and verification loops in application code.\n- Harness `Skills` supplies on-demand `SKILL.md` instructions; verify resources and scripts separately instead of assuming Claude Code skill or plugin loading parity.\n- Harness command controls are best-effort policy, not an OS security boundary. For untrusted execution, use `ModalSandbox` where it fits or retain application-owned container, VM, or sandbox isolation.\n- File rewind, Claude Code prompt presets, plugin packaging, raw stream-event identity, and dynamic MCP control are gaps unless the migrated caller actually needs them and a public target seam is proven.\n\n## Implement and prove one vertical slice\n\n1. Preserve the supported caller boundary and replace only the agent-owned internals.\n2. Start core-only. Add the narrowest Harness capabilities only after a source contract requires them.\n3. Test inputs, typed outputs, errors, event order, tool arguments\u002Fresults, approval decisions, state across turns, and side effects at that boundary. Use deterministic models and fake application services for offline tests; add a focused recorded\u002Flive test only when provider behavior is the contract.\n4. For resume, durability, approvals, concurrent tools, or external effects, test interruption\u002Frestart, lineage, authorization, and idempotency at the exact boundary promised by the source.\n5. Remove `claude-agent-sdk` only after no retained path imports it, spawns Claude Code, reads its transcripts, or consumes its event\u002Fresult types.\n\nExplain any consequential semantic change before implementing it: state the source behavior, target behavior, caller impact, recommended choice, and remaining risk.\n\n## Completion\n\nApply the completion criterion in [Verification and cutover](references\u002FVERIFICATION-AND-CUTOVER.md). Label evidence from fakes, recordings, and live providers accurately.\n","# Migrate Claude Agent SDK to Pydantic AI\n\nPreserve observable behavior, not the Claude Code process or API shape. Migrate the smallest complete caller path and keep application infrastructure in place.\n\n## Trace the source before choosing a target\n\n1. Read repository instructions, dependencies, tests, and the runtime entrypoint. Record the installed Claude Agent SDK, bundled Claude Code CLI, Pydantic AI, and Harness versions.\n2. Trace one real request from `query()` or `ClaudeSDKClient` through prompts, tools, events, results, state, persistence, approvals, and side effects that callers use. Establish a focused baseline or characterization test.\n3. Separate these source contracts when present:\n   - fresh `query()` calls, live `ClaudeSDKClient` continuation, disk\u002Fexternal-store resume, transcript forks, and file rewind;\n   - tool availability, automatic approval, policy callbacks, and OS\u002Fcontainer isolation;\n   - completed messages, raw token deltas, lifecycle events, and terminal results;\n   - conversation history, workflow checkpoints, model-owned plans, long-term memory, and workspace state;\n   - model-directed subagents from application-owned loops, queues, retries, and schedulers.\n4. Record each observed contract, its owner, semantic difference, and executable proof. An unobserved Claude Code feature is not migration scope.\n\nRead [Research and concept mapping](references\u002FRESEARCH-AND-MAPPING.md) for the detected source features. Read [Verification and cutover](references\u002FVERIFICATION-AND-CUTOVER.md) before implementation.\n\n## Choose the smallest target\n\n- **Core:** use `pydantic_ai.Agent` for model calls, the agent loop, typed dependencies, tools, outputs, normalized messages, generic hooks, streaming, MCP, approvals, usage limits, instrumentation, and durable-runtime integrations.\n- **Harness:** add `pydantic-ai-harness` only for observed reusable policy such as coding filesystem\u002Fshell tools, repository context, planning, memory, model-directed subagents, model-agnostic context management, or Agent Skills. Harness capabilities compose through the core agent loop; Harness is not a second runtime.\n- **Application:** retain authentication, service clients, databases, queues, schedulers, deployment, product state, session lookup, tenant policy, and existing transports unless the requested slice includes them.\n- **Gap:** name behavior that no supported public seam preserves, explain its impact, and test a bounded adapter. Do not create a lookalike `ClaudeSDKClient` or emulate Claude transcript files merely to hide a difference.\n\nThe normal migration is one reusable `Agent`, application services supplied through typed dependencies, ordinary Pydantic AI tools, a typed output when the caller expects structure, and application-owned storage of `result.all_messages()` when later turns need context. Preserve the existing public request\u002Fresponse\u002Fevent boundary with a small adapter while callers migrate.\n\n## Apply high-risk gates\n\n- `allowed_tools` in the Claude Agent SDK means auto-approval, not exclusive availability and not isolation. Map availability, approval, policy, and sandboxing independently.\n- Pydantic AI `message_history` explicitly replays normalized messages. `conversation_id` correlates runs; it is not a Claude session-resume token. Prove restart and fork behavior rather than renaming IDs.\n- Pydantic AI approval defers a validated tool call. The application still owns authenticated authorization, identity, and audit, and the protected effect must not run before approval.\n- Map hooks by firing point, inputs, ordering, mutation, blocking, and error behavior. Claude hook matchers may run concurrently. Pydantic AI runs `before_*` hooks in capability order, `after_*` hooks in reverse order, and nests `wrap_*` hooks with the first capability outermost. Require a golden trace for any hook-visible contract.\n- Map consumer intent for streaming. Pydantic AI output streaming, run-event streaming, and graph iteration are different surfaces; none promises the Claude SDK message taxonomy.\n- Use Harness `SubAgents` only for model-directed delegation. Keep deterministic orchestration and verification loops in application code.\n- Harness `Skills` supplies on-demand `SKILL.md` instructions; verify resources and scripts separately instead of assuming Claude Code skill or plugin loading parity.\n- Harness command controls are best-effort policy, not an OS security boundary. For untrusted execution, use `ModalSandbox` where it fits or retain application-owned container, VM, or sandbox isolation.\n- File rewind, Claude Code prompt presets, plugin packaging, raw stream-event identity, and dynamic MCP control are gaps unless the migrated caller actually needs them and a public target seam is proven.\n\n## Implement and prove one vertical slice\n\n1. Preserve the supported caller boundary and replace only the agent-owned internals.\n2. Start core-only. Add the narrowest Harness capabilities only after a source contract requires them.\n3. Test inputs, typed outputs, errors, event order, tool arguments\u002Fresults, approval decisions, state across turns, and side effects at that boundary. Use deterministic models and fake application services for offline tests; add a focused recorded\u002Flive test only when provider behavior is the contract.\n4. For resume, durability, approvals, concurrent tools, or external effects, test interruption\u002Frestart, lineage, authorization, and idempotency at the exact boundary promised by the source.\n5. Remove `claude-agent-sdk` only after no retained path imports it, spawns Claude Code, reads its transcripts, or consumes its event\u002Fresult types.\n\nExplain any consequential semantic change before implementing it: state the source behavior, target behavior, caller impact, recommended choice, and remaining risk.\n\n## Completion\n\nApply the completion criterion in [Verification and cutover](references\u002FVERIFICATION-AND-CUTOVER.md). Label evidence from fakes, recordings, and live providers accurately.\n",{"name":5,"description":7},"main","133a75127f7b938567b8af7da1d59b95fe5a92fd","pydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-claude-agent-sdk-to-pydantic-ai",3158,"https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai","https:\u002F\u002Fpydantic.dev\u002Fpydantic-ai","https:\u002F\u002Fgithub.com\u002Fpydantic","https:\u002F\u002Fpydantic.dev","Pydantic, Pydantic Logfire and Pydantic AI","2026-11-13 03:27:16",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add pydantic\u002Fpydantic-ai --skill migrating-claude-agent-sdk-to-pydantic-ai",{"tool":68,"command":69},"bunx","bunx skills add pydantic\u002Fpydantic-ai --skill migrating-claude-agent-sdk-to-pydantic-ai",{"tool":71,"command":72},"pnpm","pnpm dlx skills add pydantic\u002Fpydantic-ai --skill migrating-claude-agent-sdk-to-pydantic-ai","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-claude-agent-sdk-to-pydantic-ai\u002FSKILL.md",true,[76,82,86,90,94,100,104,108],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"agents\u002Fopenai.yaml","REFERENCE","参考文档",341,"https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-claude-agent-sdk-to-pydantic-ai\u002Fagents\u002Fopenai.yaml",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fgithub-mcp-fallback.md",3401,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freceiving-pr-reviews\u002Freferences\u002Fgithub-mcp-fallback.md",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002FRESEARCH-AND-MAPPING.md",7779,"https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-claude-agent-sdk-to-pydantic-ai\u002Freferences\u002FRESEARCH-AND-MAPPING.md",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002FVERIFICATION-AND-CUTOVER.md",4546,"https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-claude-agent-sdk-to-pydantic-ai\u002Freferences\u002FVERIFICATION-AND-CUTOVER.md",{"path":95,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":98,"sourceHtmlUrl":99},"scripts\u002Fpr_review_gh.py","SCRIPT","脚本",46601,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freceiving-pr-reviews\u002Fscripts\u002Fpr_review_gh.py",{"path":101,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":102,"sourceHtmlUrl":103},"scripts\u002Fpr_review_models.py",24636,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freceiving-pr-reviews\u002Fscripts\u002Fpr_review_models.py",{"path":105,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fpr_review_threads.py",24569,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freceiving-pr-reviews\u002Fscripts\u002Fpr_review_threads.py",{"path":109,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Ftest_pr_review_threads.py",84779,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freceiving-pr-reviews\u002Fscripts\u002Ftest_pr_review_threads.py",[113,129,139,160,178,193],{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":47},"01M6BYX16NP31D2ACFSNDNNJEV","migrating-agno-to-pydantic-ai","Migrate Python Agno applications to Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports `agno` or relies on Agno agents, teams, workflows, sessions, memory, knowledge, tools, hooks, guardrails, approvals, skills, streaming, or AgentOS.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-agno-to-pydantic-ai\u002FSKILL.md",[],[26,12,120,121,43,122,40,123,30,46,124,125,126,38,41,45,127,35,36,32,37,29,128],"migrating agno to pydantic ai","agno","memory","Guardrails","teams","knowledge","workflows","streaming","pydantic ai harness",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":47},"01M6BYY08B7335R8J3EKFM2GX7","reviewer","Review changes.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fharness\u002Fskills\u002Ftemporal_workspace\u002Fskills\u002Freviewer\u002FSKILL.md",[],[131,136,137,138],"review changes","review","changes",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":149,"publishedAt":47},"01M6BYXW6FV6Z0BB3ARTAJ0VKM","pydantic-ai-harness","Extend Pydantic AI agents with capabilities from pydantic-ai-harness -- the Coder coding agent, file and shell tools in local or sandboxed workspaces (Modal, E2B, Render, Sprites, Daytona, boxd, smolvm, BoxLite), Code Mode, sub-agents and planning, memory and skills, context compaction, guardrails and spend limits, web research and browsers, hosted SaaS integrations, step persistence, and background agents on Render Workflows. Use when the user mentions pydantic-ai-harness or pydantic_ai_harness, imports a harness capability such as Coder, CodeMode, FileSystem, Shell, SubAgents, Memory, or ToolGuardrail, or wants a Pydantic AI agent that edits files, runs commands or agent-written Python, delegates, remembers, manages long context, stays within limits, or runs model and tool operations as chained Render task runs.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fsrc\u002Fpydantic_ai_harness\u002Fpydantic_ai_harness\u002F.agents\u002Fskills\u002Fpydantic-ai-harness\u002FSKILL.md",[145,148],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[43,26,128,12,32,150,122,123,151,126,45,152,153,154,155,156,157,158,159,29],"model","ai agent","e2b","workspaces","render","local","files","smolvm","render workflows","mode",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":47},"01M6BYXS3HEQYWXFJXYACRCA4H","migrating-deep-agents-to-pydantic-ai-harness","Migrate Python LangChain Deep Agents applications to Pydantic AI and Pydantic AI Harness. Use when the source uses the upstream `deepagents` package or demonstrably reproduces its middleware, backends, skills, memory, subagents, or sandbox contracts. Use `migrating-langchain-to-pydantic-ai` for plain LangChain, LangGraph, or LCEL migrations and `pydantic-ai-harness` for greenfield Harness usage.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fsrc\u002Fpydantic_ai_harness\u002Fpydantic_ai_harness\u002F.agents\u002Fskills\u002Fmigrating-deep-agents-to-pydantic-ai-harness\u002FSKILL.md",[],[43,26,12,167,168,32,169,128,122,170,40,30,171,172,173,38,174,33,175,176,177,37,29],"migrating deep agents to pydantic ai harness","deep","deep agents","langgraph","sandbox","package","langchain","usage","deepagents","middleware","upstream",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":47},"01M6BYXP4FFSW83DR07RZ789DR","migrating-vercel-ai-sdk-and-eve-to-pydantic-ai","Migrate TypeScript Vercel AI SDK or Eve applications to Python with Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports `ai`, `@ai-sdk\u002F*`, or `eve`, or relies on `generateText`, `streamText`, `ToolLoopAgent`, `useChat`, Eve agents, tools, skills, subagents, approvals, sessions, channels, schedules, or sandboxes.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-vercel-ai-sdk-and-eve-to-pydantic-ai\u002FSKILL.md",[],[26,12,24,185,186,187,188,189,43,40,30,190,46,38,41,45,191,36,32,37,192,29,128],"ai sdk","eve","migrating vercel ai sdk and eve to pydantic ai","vercel","vercel ai sdk","typescript","sandboxes","schedules",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":199,"publishedAt":47},"01M6BYXJXKEK0384TZNH0R1ZVY","migrating-pi-to-pydantic-ai","Migrate TypeScript Pi coding-agent applications, extensions, or packages to Python with Pydantic AI and Pydantic AI Harness. Use when source code imports `@earendil-works\u002Fpi-*`, calls `createAgentSession`, registers Pi extensions, or relies on Pi tools, hooks, skills, sessions, compaction, providers, TUI, RPC, or packages.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-pi-to-pydantic-ai\u002FSKILL.md",[],[26,12,200,201,43,202,40,30,190,46,203,38,41,45,204,205,35,29,206,128,207,208,209,210,211],"migrating pi to pydantic ai","pi","packages","rpc","coding","Providers","pi extensions","imports","source","Coding-Agent","source code","compaction"]