[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BYXP4FFSW83DR07RZ789DR":3,"skill-same:01M6BYXP4FFSW83DR07RZ789DR":84},{"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":18,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6BYXP4FFSW83DR07RZ789DR","migrating-vercel-ai-sdk-and-eve-to-pydantic-ai",null,"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.","pydantic\u002Fpydantic-ai","pydantic","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F110818415?v=4","01M6BYVCCAN7VAVS8DFHJF4GY1","Pydantic","01M6BYVCGHJCX3C0VZF6J7BA7V",21128,"MIT","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",[],[19,20,21,12,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"sdk","ai sdk","eve","pydantic ai","vercel ai sdk","vercel","migrating vercel ai sdk and eve to pydantic ai","applications","when","schedules","ai harness","sandboxes","only","use","pydantic ai harness","migrate","typescript","Tools","harness","code","sessions","python","2026-11-10 10:12:30",false,"---\nname: migrating-vercel-ai-sdk-and-eve-to-pydantic-ai\ndescription: 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.\n---\n\n# Migrate Vercel AI SDK and Eve to Pydantic AI\n\nPreserve the application's observable behavior, not the source APIs. Vercel AI SDK Core, AI SDK UI, and Eve have different responsibilities: identify which one owns each source behavior before choosing a target.\n\n## Trace the source before choosing a target\n\n1. Read repository instructions, dependencies, lockfiles, tests, and the runtime entrypoint. Resolve `workspace:*` dependencies to concrete package versions and record the installed AI SDK, Eve, Pydantic AI, and Harness versions.\n2. Trace one real request from its public entrypoint through messages, model calls, tools, approvals, streams, persistence, side effects, and the result the caller consumes. Establish a focused baseline or characterization test.\n3. Classify every observed contract:\n   - **AI SDK Core:** model calls, step loops, tool execution, structured output, and provider routing;\n   - **AI SDK UI:** `UIMessage`, `useChat`, transports, client tools, stream chunks, and reconnect behavior;\n   - **Eve:** filesystem-defined agents, durable sessions, skills, subagents, state, connections, channels, schedules, and sandboxes;\n   - **Application\u002Fplatform:** authentication, authorization, storage, queues, deployment, credentials, product UI, and hosted Vercel services.\n4. Record each contract, its owner, semantic difference, and executable proof. An unused 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 the agent loop, typed dependencies, tools, outputs, messages, streaming, MCP clients, approvals, usage limits, instrumentation, and durable-runtime integrations.\n- **Graph:** use `pydantic_graph` only when explicit typed nodes, branches, and joins remain useful; use plain async Python for simple fixed control flow.\n- **Harness:** add `pydantic-ai-harness` only for observed reusable policy such as Agent Skills, model-directed subagents, planning, memory notebooks, coding tools, guardrails, or step persistence. Harness capabilities compose through the core agent loop; Harness is not an Eve-compatible runtime.\n- **Evals:** add the separate `pydantic-evals` package for observed datasets, cases, and evaluators.\n- **Application:** retain UI, HTTP transports, auth, persistence, reconnect state, schedulers, deployment, tenant policy, and hosted services unless the requested slice includes replacing them.\n- **Gap:** name behavior that no supported public seam preserves, explain its impact, and test a bounded adapter. Do not recreate the AI SDK or Eve object model merely to hide a difference.\n\nThe normal AI SDK migration is one reusable `Agent` behind the existing caller. Treat `@ai-sdk\u002Fworkflow` as a durable-runtime migration, not an ordinary agent loop. When a TypeScript or React client uses AI SDK UI, keep it and serve its exact installed-version protocol with `VercelAIAdapter`; do not migrate the UI unnecessarily. When the source is only an in-process TypeScript call, migrate its nearest caller in the same slice or explicitly agree on a new application-owned service boundary.\n\nThe normal Eve migration is a core agent plus only the Harness capabilities that match observed behavior. Keep Eve's durable session driver, product endpoints, schedules, channels, authentication, and hosted services in the application until each has a proved replacement.\n\n## Apply high-risk gates\n\n- `generateText()` and `streamText()` are single-step by default, `ToolLoopAgent` defaults to a longer loop, and `WorkflowAgent` has no maximum step count unless configured. Preserve the observed stop conditions, usage limits, and `prepareStep` changes to models, tools, instructions, messages, or runtime context; do not copy defaults blindly.\n- Distinguish local, provider-executed, browser\u002Fclient, and MCP tools. Preserve where execution and credentials live, input\u002Fresult schemas, error recovery, cancellation propagation, and side-effect idempotency.\n- An AI SDK async-generator tool can expose preliminary results before its final output. An ordinary Pydantic AI tool returns once; reproduce consumed intermediate UI states with explicit custom events or record an intentional change.\n- Complete structured output is validated; partially streamed output may be incomplete, and combining tools with structured output may require another step. Test the caller-visible timing and failure shape.\n- `UIMessage` is client-controlled application state, not trusted provider history or dependency context. Validate incoming messages, keep identity and services server-side, and convert only the permitted content to model messages.\n- Match the installed AI SDK wire contract. The current docs call the SSE-based UI-message wire format the Data Stream Protocol, while older implementations can use line-prefixed frames under a similar name. Request bodies, headers, frames, chunk ordering, tool states, error\u002Fabort behavior, and reconnect endpoints are not interchangeable. Configure `VercelAIAdapter` for the installed SDK version and golden-test the boundary.\n- AI SDK approval is commonly a two-request conversation; Eve can durably park a session; Pydantic AI can resolve a deferred call inline or in a later run. Persist the complete pending request, bind a decision to validated arguments and call identity, authenticate the approver, and prove the protected effect runs exactly once.\n- Pydantic AI message history cannot continue past unresolved tool calls. If Eve accepts an unrelated turn while approval remains pending, keep the pending branch separate in application state; do not append an unrelated prompt to that incomplete history.\n- Eve sessions, turns, steps, replay units, event cursors, background subagents, and NDJSON session streams are one durable protocol. Core message history and Harness `StepPersistence` do not automatically reproduce it. Retain an application-owned session adapter or mark the difference until restart and replay tests prove the promised behavior.\n- Eve `defineState` data is separate from conversation history, and durable memory has its own lifetime and sharing rules. Map each store independently and test session, user, and tenant isolation.\n- Eve skills can materialize supporting files. Harness `Skills` loads `SKILL.md` instructions only; provide required references, assets, or scripts through `FileSystem` or application tools and test them explicitly.\n- Eve subagents may be durable child sessions with background result batching and separate streams. Harness `SubAgents` runs an isolated agent and returns its result through a tool. Use it only when that narrower lifecycle preserves the observed contract; otherwise retain orchestration in the application.\n- A filesystem or shell policy is not sandbox isolation. Preserve Eve's sandbox, credential-brokering, and network boundaries with a real container, VM, or supported cloud sandbox when untrusted execution is in scope.\n- Eve channels, schedules, connections\u002FOAuth, its default HTTP API, Workflow SDK persistence backends, Vercel Agent Runs, and deployment integrations are application or platform concerns. Replace and test them deliberately rather than attributing them to Core or Harness.\n- Preserve provider routing, gateway allow-lists\u002Ffallbacks, provider options, retry semantics, telemetry correlation, and evaluation datasets only when the traced path uses them.\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 `pydantic_graph`, Harness, Pydantic Evals, or a durable runtime only after an observed contract requires it.\n3. Test inputs, outputs, errors, message history, event order, tool arguments\u002Fresults, step counts, state, and side effects at that boundary. Use deterministic models and fake application services offline; add a focused recording or live test only when provider behavior is the contract.\n4. For approvals, reconnects, durable sessions, background work, or external effects, test interruption and fresh-process restart, stable correlation, authorization, replay, cancellation, and idempotency.\n5. Remove `ai`, `@ai-sdk\u002F*`, or `eve` only after no retained UI, transport, agent, or platform path needs them.\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, live providers, and real sandboxes accurately.\n","# Migrate Vercel AI SDK and Eve to Pydantic AI\n\nPreserve the application's observable behavior, not the source APIs. Vercel AI SDK Core, AI SDK UI, and Eve have different responsibilities: identify which one owns each source behavior before choosing a target.\n\n## Trace the source before choosing a target\n\n1. Read repository instructions, dependencies, lockfiles, tests, and the runtime entrypoint. Resolve `workspace:*` dependencies to concrete package versions and record the installed AI SDK, Eve, Pydantic AI, and Harness versions.\n2. Trace one real request from its public entrypoint through messages, model calls, tools, approvals, streams, persistence, side effects, and the result the caller consumes. Establish a focused baseline or characterization test.\n3. Classify every observed contract:\n   - **AI SDK Core:** model calls, step loops, tool execution, structured output, and provider routing;\n   - **AI SDK UI:** `UIMessage`, `useChat`, transports, client tools, stream chunks, and reconnect behavior;\n   - **Eve:** filesystem-defined agents, durable sessions, skills, subagents, state, connections, channels, schedules, and sandboxes;\n   - **Application\u002Fplatform:** authentication, authorization, storage, queues, deployment, credentials, product UI, and hosted Vercel services.\n4. Record each contract, its owner, semantic difference, and executable proof. An unused 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 the agent loop, typed dependencies, tools, outputs, messages, streaming, MCP clients, approvals, usage limits, instrumentation, and durable-runtime integrations.\n- **Graph:** use `pydantic_graph` only when explicit typed nodes, branches, and joins remain useful; use plain async Python for simple fixed control flow.\n- **Harness:** add `pydantic-ai-harness` only for observed reusable policy such as Agent Skills, model-directed subagents, planning, memory notebooks, coding tools, guardrails, or step persistence. Harness capabilities compose through the core agent loop; Harness is not an Eve-compatible runtime.\n- **Evals:** add the separate `pydantic-evals` package for observed datasets, cases, and evaluators.\n- **Application:** retain UI, HTTP transports, auth, persistence, reconnect state, schedulers, deployment, tenant policy, and hosted services unless the requested slice includes replacing them.\n- **Gap:** name behavior that no supported public seam preserves, explain its impact, and test a bounded adapter. Do not recreate the AI SDK or Eve object model merely to hide a difference.\n\nThe normal AI SDK migration is one reusable `Agent` behind the existing caller. Treat `@ai-sdk\u002Fworkflow` as a durable-runtime migration, not an ordinary agent loop. When a TypeScript or React client uses AI SDK UI, keep it and serve its exact installed-version protocol with `VercelAIAdapter`; do not migrate the UI unnecessarily. When the source is only an in-process TypeScript call, migrate its nearest caller in the same slice or explicitly agree on a new application-owned service boundary.\n\nThe normal Eve migration is a core agent plus only the Harness capabilities that match observed behavior. Keep Eve's durable session driver, product endpoints, schedules, channels, authentication, and hosted services in the application until each has a proved replacement.\n\n## Apply high-risk gates\n\n- `generateText()` and `streamText()` are single-step by default, `ToolLoopAgent` defaults to a longer loop, and `WorkflowAgent` has no maximum step count unless configured. Preserve the observed stop conditions, usage limits, and `prepareStep` changes to models, tools, instructions, messages, or runtime context; do not copy defaults blindly.\n- Distinguish local, provider-executed, browser\u002Fclient, and MCP tools. Preserve where execution and credentials live, input\u002Fresult schemas, error recovery, cancellation propagation, and side-effect idempotency.\n- An AI SDK async-generator tool can expose preliminary results before its final output. An ordinary Pydantic AI tool returns once; reproduce consumed intermediate UI states with explicit custom events or record an intentional change.\n- Complete structured output is validated; partially streamed output may be incomplete, and combining tools with structured output may require another step. Test the caller-visible timing and failure shape.\n- `UIMessage` is client-controlled application state, not trusted provider history or dependency context. Validate incoming messages, keep identity and services server-side, and convert only the permitted content to model messages.\n- Match the installed AI SDK wire contract. The current docs call the SSE-based UI-message wire format the Data Stream Protocol, while older implementations can use line-prefixed frames under a similar name. Request bodies, headers, frames, chunk ordering, tool states, error\u002Fabort behavior, and reconnect endpoints are not interchangeable. Configure `VercelAIAdapter` for the installed SDK version and golden-test the boundary.\n- AI SDK approval is commonly a two-request conversation; Eve can durably park a session; Pydantic AI can resolve a deferred call inline or in a later run. Persist the complete pending request, bind a decision to validated arguments and call identity, authenticate the approver, and prove the protected effect runs exactly once.\n- Pydantic AI message history cannot continue past unresolved tool calls. If Eve accepts an unrelated turn while approval remains pending, keep the pending branch separate in application state; do not append an unrelated prompt to that incomplete history.\n- Eve sessions, turns, steps, replay units, event cursors, background subagents, and NDJSON session streams are one durable protocol. Core message history and Harness `StepPersistence` do not automatically reproduce it. Retain an application-owned session adapter or mark the difference until restart and replay tests prove the promised behavior.\n- Eve `defineState` data is separate from conversation history, and durable memory has its own lifetime and sharing rules. Map each store independently and test session, user, and tenant isolation.\n- Eve skills can materialize supporting files. Harness `Skills` loads `SKILL.md` instructions only; provide required references, assets, or scripts through `FileSystem` or application tools and test them explicitly.\n- Eve subagents may be durable child sessions with background result batching and separate streams. Harness `SubAgents` runs an isolated agent and returns its result through a tool. Use it only when that narrower lifecycle preserves the observed contract; otherwise retain orchestration in the application.\n- A filesystem or shell policy is not sandbox isolation. Preserve Eve's sandbox, credential-brokering, and network boundaries with a real container, VM, or supported cloud sandbox when untrusted execution is in scope.\n- Eve channels, schedules, connections\u002FOAuth, its default HTTP API, Workflow SDK persistence backends, Vercel Agent Runs, and deployment integrations are application or platform concerns. Replace and test them deliberately rather than attributing them to Core or Harness.\n- Preserve provider routing, gateway allow-lists\u002Ffallbacks, provider options, retry semantics, telemetry correlation, and evaluation datasets only when the traced path uses them.\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 `pydantic_graph`, Harness, Pydantic Evals, or a durable runtime only after an observed contract requires it.\n3. Test inputs, outputs, errors, message history, event order, tool arguments\u002Fresults, step counts, state, and side effects at that boundary. Use deterministic models and fake application services offline; add a focused recording or live test only when provider behavior is the contract.\n4. For approvals, reconnects, durable sessions, background work, or external effects, test interruption and fresh-process restart, stable correlation, authorization, replay, cancellation, and idempotency.\n5. Remove `ai`, `@ai-sdk\u002F*`, or `eve` only after no retained UI, transport, agent, or platform path needs them.\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, live providers, and real sandboxes accurately.\n",{"name":5,"description":7},"main","133a75127f7b938567b8af7da1d59b95fe5a92fd","pydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-vercel-ai-sdk-and-eve-to-pydantic-ai",3147,"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-11 09:14:35",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add pydantic\u002Fpydantic-ai --skill migrating-vercel-ai-sdk-and-eve-to-pydantic-ai",{"tool":62,"command":63},"bunx","bunx skills add pydantic\u002Fpydantic-ai --skill migrating-vercel-ai-sdk-and-eve-to-pydantic-ai",{"tool":65,"command":66},"pnpm","pnpm dlx skills add pydantic\u002Fpydantic-ai --skill migrating-vercel-ai-sdk-and-eve-to-pydantic-ai","安装技能，技能地址：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",true,[70,76,80],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"agents\u002Fopenai.yaml","REFERENCE","参考文档",324,"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\u002Fagents\u002Fopenai.yaml",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002FRESEARCH-AND-MAPPING.md",12434,"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\u002Freferences\u002FRESEARCH-AND-MAPPING.md",{"path":81,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002FVERIFICATION-AND-CUTOVER.md",8269,"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\u002Freferences\u002FVERIFICATION-AND-CUTOVER.md",[85,101,111,136,155,174],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":41},"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",[],[22,12,92,93,37,94,26,95,40,39,96,97,98,34,36,38,99,100,31,29,32,27,33],"migrating agno to pydantic ai","agno","memory","Guardrails","teams","knowledge","workflows","streaming","hooks",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":41},"01M6BYY08B7335R8J3EKFM2GX7","reviewer","Review changes.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fharness\u002Fskills\u002Ftemporal_workspace\u002Fskills\u002Freviewer\u002FSKILL.md",[],[103,108,109,110],"review changes","review","changes",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":125,"publishedAt":41},"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",[117,122],{"categoryNo":118,"categoryName":119,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":123,"categoryName":124,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000023","Skill与智能体开发",[37,22,33,12,29,126,94,95,127,98,38,128,129,130,131,132,133,134,135,27],"model","ai agent","e2b","workspaces","render","local","files","smolvm","render workflows","mode",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":41},"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",[],[37,22,12,143,144,29,145,33,94,146,26,40,147,148,149,34,150,151,152,153,154,32,27],"migrating deep agents to pydantic ai harness","deep","deep agents","langgraph","sandbox","package","langchain","usage","for","deepagents","middleware","upstream",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":41},"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",[],[22,12,162,163,37,164,26,40,35,39,165,34,36,38,166,167,100,27,168,33,169,170,171,172,173],"migrating pi to pydantic ai","pi","packages","rpc","coding","Providers","pi extensions","imports","source","Coding-Agent","source code","compaction",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":41},"01M6BYXG6CCTKB543QZ98B52D4","migrating-openai-agents-sdk-to-pydantic-ai","Migrate Python OpenAI Agents SDK applications to Pydantic AI and, when warranted, Pydantic AI Harness. Use for `agents.Agent`, `Runner`, function tools, handoffs, guardrails, sessions, human approval, streaming, or `SandboxAgent`. Do not use for applications built directly on the OpenAI Responses API without the Agents SDK runtime.","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Fblob\u002Fmain\u002Fpydantic_ai_slim\u002Fpydantic_ai\u002F.agents\u002Fskills\u002Fmigrating-openai-agents-sdk-to-pydantic-ai\u002FSKILL.md",[],[22,12,19,181,182,183,184,37,185,26,95,40,39,186,34,36,187,99,188,189,151,190,29,32,27],"migrating openai agents sdk to pydantic ai","openai","agents sdk","openai agents","openai responses api","responses api","api","do","runner","runtime"]