关于 migrating-deep-agents-to-pydantic-ai-harness
此 Agent Skill 指导将 Deep Agents 迁移到 Pydantic AI Harness,同时保留已观察到的应用行为与边界。它采用以契约为先的流程,检查源行为、组合目标能力,并在切换前验证一致性。
主要功能
- 01追踪请求生命周期中的源契约
- 02将已观察行为映射到 Pydantic AI 原语
- 03仅为必要行为添加 Harness 能力
- 04通过边界适配器保留公共接口
- 05切换前验证行为一致性
适用场景
- 01规划现有代码库的 Deep Agents 迁移
- 02识别目标框架缺少直接对应项的行为
- 03以垂直切片迁移一个代表性请求
- 04通过回归检查评估迁移准备情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pydantic/ skills --skill migrating-deep-agents-to-pydantic-ai-harness安装后在 Claude Code 中输入/migrating-deep-agents-to-pydantic-ai-harness确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/CONTEXT-AND-EXECUTION.mdCORE-MIGRATION.mdHOSTS-AND-PROTOCOLS.mdORCHESTRATION-AND-RECOVERY.mdTESTED-COMPOSITION.mdVALIDATION.md详细介绍
将 Deep Agents 迁移到 Pydantic AI Harness
保留应用已观察到的契约,而不是照搬 create_deep_agent 的形式。组合 Pydantic AI 原语与 Harness 功能;基础设施应由原本负责它的应用管理。
明确源契约
- 应用以下映射前,先确认
deepagents的导入来源。只有当本地模块或项目自有的create_deep_agent实现遵循普通 LangChain 或 LangGraph 语义时,才将其归入常规 LangChain 迁移;复现 Deep Agents 契约的供应商实现仍在范围内。阅读仓库说明、清单、锁文件、测试、运行时入口和已解析的源代码。记录 Deep Agents、LangChain、LangGraph、Pydantic AI 和 Harness 的确切版本。 如果无法获取锁定的源代码,就在不更改目标锁文件的前提下复现其环境。如果无法做到,则将受影响的行为标记为未经验证,不得声称实现了功能对等。 - 沿着提示词和模型配置、工具与集成、中间件与权限、后端与执行、技能与记忆、委派、状态、检查点与审批、重试与限制、事件、副作用以及公共边界,追踪一个有代表性的请求。检查该边界的每个调用方。
- 运行成本最低的确定性基线。将证据与结果分开记录:
source-inspected、probe-observed或regression-tested。 - 仅加载与检测到的源功能相关的映射:
构建 Pydantic AI 目标方案
- 从一个可复用的
Agent开始。Pydantic AI 负责模型/提供方边界、规范化消息、Agent 循环、类型化依赖项和输出、工具与工具集、运行 API、用量限制以及通用钩子。 - 将经过身份验证的身份、服务客户端和配置放入
deps_type和RunContext;只通过类型化工具公开由模型选择的输入。根据所需的历史记录行为,在instructions和system_prompt之间作出选择,并使用result.output,不要让框架消息泄漏到应用边界之外。 - 针对已观察到的可选行为,逐项添加 Harness 功能。某项功能会将指令、工具集、钩子和模型设置组合到 Agent 上;它不会取代应用基础设施或 Pydantic AI 的运行时语义。
- 根据调用方的实际生命周期选择
run_sync、run、run_stream、run_stream_events、iter、延迟结果和消息历史。迁移调用方期间,通过边界适配器保留原有线上的数据结构。 - 编写代码前,检查锁定版本中
pydantic_ai和pydantic_ai_harness的公共导出、文档以及所选提供方、Agent、工具/工具集、功能、运行与延迟 API、持久化集成的源代码签名。从其所属的公共子模块导入功能,拒绝弃用警告,并在确切的目标环境中运行导入与构造冒烟测试。记录解释器以及解析出的pydantic_ai和pydantic_ai_harness模块路径,并附上测试结果。只添加必需的额外依赖;不要传递 LangChain 对象,也不要照搬凭记忆写出的示例。 - 将队列、租户管理、制品存储、远程沙箱生命周期、持久化领域状态、部署和外部副作用恢复保留在应用服务中。
- 选择
SubAgents或DynamicWorkflow之前,先将编排归类为模型控制的委派、固定的应用工作流或后台工作进程;固定顺序和工作进程队列应保留在应用代码中。 - 如果公共 Pydantic AI 基元无法正确实现所需的通用运行时语义,应提出核心基元方案,而不是在 Harness 中重建运行时。
如果没有直接对应项,不要只说“暂不支持”。说明源契约及其影响,然后建议采用现有组合、精简适配器或应用服务、基于公共基元构建的新 Harness 功能,或 Pydantic AI 核心变更。推荐一个方案并指出其剩余风险;如果不同选项会实质性改变行为、架构、公共 API 或范围,请先询问再作选择。
迁移与验证
- 在现有应用边界后移植一个纵向切片:类型化依赖项、一组工具、输出和一个有代表性的请求。
- 迁移调用方期间,通过一个小型适配器保留源请求、结果、错误、事件和续接的数据结构。
- 扩展到下一个功能之前,将原有测试套件与聚焦的特征描述、对等性及评估检查一并运行。在目标将使用的同一解释器和已安装检出版本中测试受支持的
Agent边界;不得接受来自其他环境的结果。仅当本地编码 Agent 组合有用时,才阅读 已测试的组合。 - 发布示例或宣称完成切换前,阅读 验证与切换;对于简单切片,只执行适用的检查。
- 只有当每项范围内契约都经过回归测试、已协商同意作出变更,或明确标记为不适用时,才能切换。其他情况一律报告为未经验证。
根据已观察到的契约匹配验证方式。对于无状态切片,聚焦的特征描述和对等性测试已足够;持久化、审批、并发、流式处理和外部副作用则需要账本,以及适用的重启和幂等性检查。
评论
支持 Markdown