Pydantic AI Skills
为 Pydantic AI 提供渐进式技能加载、远程注册表、资源读取与脚本执行。
- Star 数
- ★ 380
- 最近更新
- 7 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 86/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 维护大型技能库的 Pydantic AI 团队,希望代理起始时只看到技能名称和描述,在任务确实需要时才加载完整说明与参考资料。
- 不适合
- 只需要指令型技能、不想引入额外依赖的团队,直接用 pydantic-ai-harness 更合适
- 使用 Pydantic AI 之外运行时的应用,需要自行编写集成
- 无法审计第三方技能来源、担心数据外泄或越权访问的团队
- 源码审查
- 86/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Pydantic AI Skills 是一个 Python 软件包,为 Pydantic AI 接入 Agent Skills 格式,并通过渐进式披露控制上下文占用。它依赖 pydantic-ai-harness 处理 SKILL.md 的解析、校验、目录和指令渲染,自身补充 Git、S3 及自定义远程注册表,以及技能筛选、前缀、重命名和合并能力。SkillsCapability 将每项技能暴露为延迟能力,模型先看到名称和描述,需要时再通过 Pydantic AI 的 load_capability 加载完整指令。加载技能后,代理可以调用 read_skill_resource 读取随包文件,或调用 run_skill_script 以具名参数执行脚本;默认情况下,这两个工具会拒绝访问尚未加载的技能。软件包还支持 Python 定义的程序化技能、${SKILL_DIR} 路径替换,以及容器或虚拟文件系统中的沙箱执行。它适合需要完整技能资源与执行链路的 Pydantic AI 项目;如果技能只有文字指令,项目文档明确建议直接使用依赖更小的 pydantic-ai-harness。
开发者把本地技能目录传给 SkillsCapability,也可以通过 GitSkillsRegistry 从 Git 仓库加载技能;文档还列出 S3 和自定义来源。pydantic-ai-harness 负责解析并校验 SKILL.md,建立技能目录并渲染指令,而该软件包把每项技能注册为 Pydantic AI 延迟能力。模型首先只接收技能的 name 和 description,确定需要后调用内置 load_capability 获取完整指令。技能被加载后,read_skill_resource(skill_name, resource_name) 可读取 references、resources 等随包文件,run_skill_script(skill_name, script_name, args) 可使用具名参数运行 scripts 中的脚本。运行时还可解析 ${SKILL_DIR},并可通过自定义执行器、容器或虚拟文件系统隔离脚本。它不直接规定业务输出;最终输出由使用该能力的 Pydantic AI Agent、模型和所加载技能共同决定。
- 维护大型技能库的 Pydantic AI 团队,希望代理起始时只看到技能名称和描述,在任务确实需要时才加载完整说明与参考资料。
- 需要复用 Git 仓库、S3 或自定义来源中技能的开发者,希望对多个注册表执行组合、筛选、加前缀、重命名或合并。
- 采用 Anthropic Agent Skills 目录结构且技能包含参考文档或可执行脚本的团队,需要在 Pydantic AI 中按原结构读取和运行这些文件。
- 多代理应用的维护者,希望共享同一技能库,同时用 include 和 exclude 为不同代理暴露不同子集。
- 需要执行第三方技能脚本的部署团队,希望通过容器、虚拟文件系统或自定义执行器降低脚本直接接触宿主机的风险。
如何安装或部署这个 Agent?
需要 Python 3.10 或更高版本。使用 uv 安装:
uv add pydantic-ai-skills也可以使用 pip:
pip install pydantic-ai-skills软件包依赖 pydantic-ai-harness,并在代码中与 Pydantic AI 配合使用。示例模型 gateway/openai:gpt-5.2 所需的网关配置、API 凭据名称及获取方式没有在给定材料中说明;运行该示例前需要按相应 Pydantic AI 模型配置补齐这些信息。远程 Git 或 S3 注册表还需要网络访问,S3 的认证配置也未在材料中给出。
如何使用这个 Agent?
将本地技能目录作为 SkillsCapability 添加到 Pydantic AI Agent。下面是材料给出的首次调用示例;它位于支持 await 的异步上下文中:
from pydantic_ai import Agent
from pydantic_ai_skills import SkillsCapability
agent = Agent(
model='gateway/openai:gpt-5.2',
instructions='You are a helpful research assistant.',
capabilities=[SkillsCapability('./skills')],
)
result = await agent.run('What are the last 3 papers on arXiv about machine learning?')
print(result.output)如需从 Git 仓库引入技能,可配置 GitSkillsRegistry:
from pydantic_ai_skills import GitSkillsRegistry, SkillsCapability
capability = SkillsCapability(
'./skills',
registries=[GitSkillsRegistry('https://github.com/anthropics/skills', path='skills')],
)每个技能目录必须包含 SKILL.md,其 YAML 前置信息至少包含与目录名一致的 name 和 description。name 最长 64 个字符,只能使用小写字母、数字和连字符;description 最长 1024 个字符。模型加载技能后,可使用 read_skill_resource 读取随包文件,并使用 run_skill_script 执行技能脚本。默认访问边界会拒绝尚未加载的技能。
这个 Agent 有哪些优点和局限?
- 渐进式披露让模型起初只接收技能名称和描述,完整说明、参考资料及脚本仅在需要时加载。
- 在 pydantic-ai-harness 基础上补充 Git、S3 和自定义远程来源,并支持筛选、前缀、重命名与合并。
- 提供 read_skill_resource 和 run_skill_script,覆盖仅解析 SKILL.md 无法处理的随包资源与脚本。
- 支持程序化 Python 技能、${SKILL_DIR} 替换以及容器、虚拟文件系统和自定义执行器。
- 它依赖 Pydantic AI 和 pydantic-ai-harness;若项目不采用该运行时,需要自行进行集成。
- 技能指令和代码可能导致数据外泄或未授权系统访问,未知来源必须在使用前审计。
- SKILL.md 中的 allowed-tools 等行为字段会被接受但不会产生限制效果,不能将其视为权限控制。
- v2 与 v1 不兼容:SkillsToolset、SkillsDirectory、reload()、list_skills 和 load_skill 已被移除,需要迁移到 harness 与 load_capability。
- 如果技能只有文字指令,项目自身建议直接使用更小的 pydantic-ai-harness,因此该软件包可能增加不必要的依赖。
这个 Agent 与同类方案有什么区别?
与 pydantic-ai-harness 相比,本项目把 harness 作为依赖,并继续由它负责 SKILL.md 解析、校验、目录和指令渲染。harness 的 Skills 能力只从本地目录读取技能并将其转换为延迟能力,不枚举、读取或执行技能随包文件,也不提供远程来源。本项目增加 Git、S3 和自定义注册表、注册表组合、read_skill_resource、run_skill_script、沙箱执行、${SKILL_DIR} 替换及程序化技能。如果只需要纯文本技能说明,文档建议直接选择 harness;需要远程技能或随包资源和脚本时,本项目覆盖范围更完整。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Pydantic AI Skills 当前 | 86 · 表现良好 | 代码库 / SDK免费 + 模型费 | ★ 380 | 7 天前 | Python | OpenAI API |
| VT Code 终端编码智能体 | 66 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 884 | 今天 | Rust | OpenAI API |
| FastAgent | 46 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.9k | 1 天前 | Python | Codex · OpenAI API · Claude API |
| AgenticX 多智能体平台 | 64 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 593 | 今天 | Python | Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:技能文件工具默认拒绝未加载的技能(测试明确验证拒绝路径)、沙箱staging跳过越界符号链接并告警、避免/tmp工作目录、 SECURITY.md 明确声明'加载不可信技能等同于运行不可信代码'的信任边界。扣分处:默认脚本执行器(LocalSkillScriptExecutor)仍在宿主机上以子进程运行脚本,沙箱为可选extra而非默认;没有面向最终用户的人工确认机制,只有加载门控;注册表同步的回滚/恢复路径无证据。最低权限与外部效应因宿主机默认执行仅得2分;用户确认仅1分;回滚1分。
证据显示:测试覆盖构造期校验错误(harness的ValueError原样透出)、include/exclude拼写错误报错并列出可用技能、缺失optional extra时ImportError指名extra名称、沙箱复用/重建/生命周期的边界情况均有钉死测试。依赖下限(pyyaml 6.0.1、pytest-asyncio 0.23.5等)在CI的test-lowest-versions作业中实测验证。一致性、依赖可用性与错误信息质量均有充分证据支持满分;未发现可指出的扣分点。
证据显示:目标受众(Pydantic AI开发者)与场景(指令型技能用harness即可、需远程注册表/捆绑文件用本包)在README中明确划分并附对比链接;能力边界诚实(allowed-tools等frontmatter字段被明确声明为'不限制任何行为');Python 3.10–3.14矩阵、按需extras(git/s3/opensandbox/localsandbox,且localsandbox对3.10/3.11有清晰降级路径)。扣分处:技能触发依赖模型自主调用load_capability,静态证据无法证明加载选择的精确度;trigger_precision计2分。
证据显示:MIT LICENSE文件与pyproject声明一致、hatch-vcs从git tag取版本并含fallback、v1→v2迁移指南与破坏性变更清单、SECURITY.md含私有漏洞报告流程与7天响应承诺、文档strict构建纳入CI。扣分处:仓库内未见CHANGELOG文件(仅版本标签与迁移指南);examples/FAQ内容主要在站外文档中,源文件内不可直接验证;单作者维护,长期维护责任有限。后两项及versioning_changelog计2分。
证据显示:输出可用性由端到端测试钉死(load_capability→read_skill_resource→run_skill_script全链路);边际价值明确——README逐条列出对harness的补充(远程注册表、捆绑文件执行、${SKILL_DIR}解析、编程式技能)并诚实建议'纯指令技能直接用harness';成本方面有长清单截断('...and 10 more')、无捆绑文件时不注册工具以节省上下文等设计。三 Criterion 均有具体文件证据支持,满分。
证据显示:README的行为声明(加载门控、占位符解析、目录不含SKILL.md不算技能、名称/目录必须匹配)几乎都能在测试文件中找到对应钉死测试,声称与代码可追溯。扣分处:外部文档站(安全模型、对比页)的内容不在审查范围内,跨源印证只能部分完成;CI徽章(SonarCloud)状态无法静态核实。cross_source_corroboration与fact_inference_separation计2分,claim_traceability满分。
- 默认脚本执行器在宿主机以子进程运行技能脚本;处理不可信注册表(Git/S3)技能时必须显式配置沙箱执行器,否则脚本直接在宿主执行。
- frontmatter中的 allowed-tools 等行为字段在本包中完全不起作用,不要据此假定技能被限制。
- 加载门控只阻止'未加载即读文件',不构成对恶意技能指令本身或其脚本副作用的防御;源文件自带'不可信技能=不可信代码'警告。
- 采用前自行核对外部文档中的安全模型页面;本次静态审查未能覆盖站外内容。
- 单作者维护且无CHANGELOG文件,升级依赖版本矩阵(尤其是pydantic-ai-slim与harness联动)时留意测试下限作业的结果。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
2.1.0 v2.1.0
发布说明摘录
<!-- Release notes generated using configuration in .github/release.yml at main --> What's Changed 🔧 Other Changes * chore: upstream watch 2026-09-11 (no changes needed) by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/86 * chore: upstream watch 2026-09-18 (no changes needed) by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/87 * chore: upstream watch 2026-09-25 (no changes needed) by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/88 …在 GitHub 查看 ↗ -
2.0.0 v2.0.0
发布说明摘录
v2.0.0 — rebuilt on pydantic-ai-harness v2 stops reimplementing Agent Skills and becomes a companion to [pydantic-ai-harness](https://github.com/pydantic/pydantic-ai-harness). harness now ships a Skills capability that covers levels 1 and 2 of the [Agent Skills spec](https://agentskills.io) — discovery, SKILL.md parsing, validation, the catalog, and instruction rendering — and Pydantic AI's own load_capability tool loads a skill on demand. v1 did all of that itself, which meant a parallel implementation guaranteed to drift from upstream. …在 GitHub 查看 ↗ -
1.4.0 v1.4.0
发布说明摘录
What's Changed * Update AGENTS.md by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/64 * chore: upstream watch 2026-08-01 (no changes needed) by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/66 * chore: upstream watch 2026-08-07 (no changes needed) by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/67 * chore: upstream watch 2026-08-14 (no changes needed) by @DougTrajano in https://github.com/DougTrajano/pydantic-ai-skills/pull/68 …在 GitHub 查看 ↗