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 工具)

工作原理

  1. 测试加载:框架读取 pytest 测试文件中的 CopilotEval 实例,加载 skill_directories 指定的 Skill 包
  2. Copilot 会话启动:通过 GitHub CLI 启动真实的 Copilot 编程 Agent 会话,将测试提示词作为用户输入
  3. 工具调用拦截:框架拦截 Copilot 的工具调用请求,记录实际调用的工具名称和参数
  4. 断言判断:用 assert 语句验证 result.success、tool_was_called 等条件,判断 AI 是否按预期工作
  5. AI 分析:若测试失败,框架将失败上下文发送给 AI 分析模型,生成结构化修复建议

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论