p
pytest-skill-engineering Skill 技能
GitHub Copilot 的 MCP/Agent Skill 测试框架
技能简介
pytest-skill-engineering 是一款面向 MCP 服务器和 Agent Skill 开发者的测试框架,核心思路是「用真实的 GitHub Copilot 编程 Agent 来测试你的 AI 接口」。传统单元测试只能验证代码逻辑,而它验证的是 AI 是否真正理解并能正确调用你的 MCP 工具、Agent Skill 和自定义 Agent 指令。开发者将测试用例写成自然语言提示词,框架驱动真实 Copilot 会话执行,最后用断言判断 AI 是否按预期工作。
核心能力
- AI 接口测试:验证 MCP 服务器工具、Agent Skills(agentskills.io 规范)、自定义 Agent 指令(.agent.md)和 CLI 工具的可用性,测试对象是 AI 看到的接口而非代码实现
- 自然语言测试用例:测试即提示词——用用户会说的话编写测试,Copilot 自主解析并调用工具,无需硬编码预期调用链
- Agent Skills 一等支持:原生加载 agentskills.io 规范兼容的 Skill 包,验证 domain knowledge 是否真正提升 AI 表现
- A/B 测试能力:对比不同工具描述、不同 Skill 配置下的 AI 行为差异,找到最优接口设计
- 多步骤工作流测试:支持带明确上下文的多轮对话场景,验证 AI 在复杂任务中的工具调用链路
- AI 分析报告:测试失败时,AI 自动分析原因并给出具体改进建议(工具描述、Skill 指令、系统提示词等)
安装配置
环境要求
- Python 3.11 或更高版本
- uv 包管理器
- GitHub CLI
- GitHub 账号并开通 Copilot 访问权限
安装步骤
方式一:在已有项目中添加
uv add pytest-skill-engineering
方式二:初始化独立测试项目
gh auth login --hostname github.com
uv run pytest-skill-engineering init
uv run pytest-skill-engineering doctor
认证配置
首次使用需进行 GitHub CLI 认证:
gh auth login --hostname github.com
使用步骤
第 1 步:准备测试 Skill 目录
在项目中创建 skills/ 目录,放入待测的 Agent Skill 配置(遵循 agentskills.io 规范)或 MCP 服务器配置。
第 2 步:编写测试用例(提示词)
from pytest_skill_engineering.copilot import CopilotEval
async def test_balance_query(copilot_eval):
agent = CopilotEval(
skill_directories=["skills/banking-advisor"],
max_turns=10,
)
result = await copilot_eval(agent, "What's my checking balance?")
assert result.success
assert result.tool_was_called("get_balance")
第 3 步:运行测试
uv run pytest-skill-engineering init
gh auth login --hostname github.com
uv run pytest-skill-engineering doctor
uv run pytest -k test_balance_query
第 4 步:查看 AI 分析报告
测试失败时,框架输出 AI 自动生成的修复建议,包括:
- 哪个工具描述容易让 Copilot 选错
- 系统提示词哪里需要优化
- 成本优化方向
适用场景
- MCP 服务器发布前质量验证:在正式发布 MCP 服务器前,用真实 Copilot 验证工具是否被正确发现和调用
- Agent Skill 开发迭代:快速 A/B 测试不同 Skill 指令对 AI 行为的影响,找到最优配置
- 回归测试:在 MCP 服务器更新后,自动运行 Skill Engineering 测试套件,确保工具描述改动未破坏 AI 接口
- 团队共享测试标准:将测试用例作为 Skill 的验收标准,团队成员均可运行并验证质量
适用人群
- MCP 服务器开发者
- Agent Skill 包作者
- AI 工程团队(DevRel/Platform)
- 使用 GitHub Copilot 的开发者(测试自己的 MCP 工具)
工作原理
- 测试加载:框架读取 pytest 测试文件中的 CopilotEval 实例,加载 skill_directories 指定的 Skill 包
- Copilot 会话启动:通过 GitHub CLI 启动真实的 Copilot 编程 Agent 会话,将测试提示词作为用户输入
- 工具调用拦截:框架拦截 Copilot 的工具调用请求,记录实际调用的工具名称和参数
- 断言判断:用 assert 语句验证 result.success、tool_was_called 等条件,判断 AI 是否按预期工作
- AI 分析:若测试失败,框架将失败上下文发送给 AI 分析模型,生成结构化修复建议
官方链接
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议