Token导航 LogoToken导航

Agent Skill · 研究检索

evals(evals 搜索)

evals 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

evals 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证为 MIT,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 70,834。

总安装 198周安装 8GitHub Stars 公开资料未说明下载 62核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:evals(evals 搜索)
来源仓库:https://github.com/camronh/evals-skill
仓库路径:skills/evals
安装命令:
npx skills add https://github.com/camronh/evals-skill --skill evals
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/camronh/evals-skill --skill evals

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

evals 用于为 AI 代理和 LLM 应用编写、运行和分析评估,默认使用 EZVals 框架。支持自定义评估指标、A/B 测试和基准测试(如 MMLU、HumanEval)。强调任务完成度和用户目标达成,而非传统准确率衡量方式。安装前需确认项目语言和框架兼容性,避免在非 Python 环境中误用。

evals 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/evals

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/camronh/evals-skill --skill evals;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

evals 怎么安装?

在终端执行 npx skills add https://github.com/camronh/evals-skill --skill evals。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

evals 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

evals 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

evals 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

evals 用的人多吗?

公开数据是累计安装 198 次,近一周安装 8 次,下载 62 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

evals 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
evals

evals 搜索 · 本页

198—需要联网MIT有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

AI Agent Evaluation Skill

Write, run, and analyze evaluations for AI agents and LLM applications. Assume we will use EZVals as the eval framework unless you are in a non-python project or the user specifies otherwise.

What Are Evals?

Traditional ML evals measure model performance on fixed benchmarks with clear accuracy metrics. LLM/agent evals measure something fuzzier, for example: task completion, answer quality, behavioral pass, or whether the agent actually helps users accomplish their goals.

Evals answer evolving questions about your system:

  • "Does my agent work?"
  • "When does my agent fail?"
  • "Why does my agent fail and how do I fix it?"
  • "How does my agent handle long conversations?"
  • "What is the best combination of tools for my agent?"
  • "How well does my agent handle this new feature?"

Vocabulary

TermDefinition
TargetThe function or agent being evaluated. Takes input, produces output.
GraderFunction that scores the output. Returns 0-1 or pass/fail.
DatasetCollection of test cases (inputs + optional expected outputs).
TaskSingle test case: one input to evaluate.
TrialOne execution of a task. Multiple trials handle non-determinism.
TranscriptFull record of what happened during a trial (tool calls, reasoning steps, intermediate results). For the Anthropic API, this is the full messages array at the end of an eval run.
OutcomeThe final result/output from the target. A flight-booking agent might say "Your flight has been booked" in the transcript, but the outcome is whether a reservation exists in the database.
pass@kPasses if ANY of k trials succeed. Measures "can it ever work?" As k increases, pass@k rises.
pass^kPasses only if ALL k trials succeed. Measures reliability. As k increases, pass^k falls.
LLM-as-judgeUsing an LLM to grade another LLM's output. Requires calibration against human judgment.
SaturationWhen evals hit 100%—a sign you need harder test cases, not that your agent is perfect.
Error analysisSystematically reviewing traces to identify failure patterns before writing evals.

Phoenix Arize -> EZVals Migration Quick Map

If the user is migrating from Phoenix Arize, map old concepts to EZVals primitives first, then implement with normal Python tests.

Phoenix Arize PatternEZVals Equivalent
Dataset in Phoenixcases=[...], dataset=, or input_loader=
Task/experiment run@eval function execution
Span-level trace analysisctx.store(metadata=...) plus run/result inspection in ezvals serve
Evaluator templates / rubric promptsAssertions, ctx.store(scores=...), or LLM-as-judge graders in eval code
Pass/fail evaluator outputAssertion success/failure or boolean score via ctx.store(scores=[...])
Numeric evaluator scoreNumeric score.value (0-1 or arbitrary scale) via ctx.store(scores=[...])
Human annotation/correction loopsWeb UI edits to scores/annotations (correction_history tracks before/after)
Compare experimentsMultiple runs in one session + compare view/URL filters

Common migration approach (adapt as needed):

  1. Start by porting a representative Arize dataset slice into EZVals cases.
  2. Translate an evaluator into assertion logic to establish a baseline.
  3. Add model-based grading where code checks are not enough.
  4. Run with ezvals run... and inspect trace/metadata in ezvals serve....
  5. Recreate experiment comparison by naming runs and using compare mode.

When helping with migration, prefer direct concept translation over rebuilding Arize-style abstractions. Keep the user's eval logic explicit in Python so it stays easy to debug.

Anatomy of an Eval

┌─────────────────────────────────────────────────────┐
│                      EVAL                           │
│  ┌─────────┐    ┌─────────┐    ┌─────────┐        │
│  │ Dataset │ →  │ Target  │ →  │ Grader  │ → Score │
│  │(inputs) │    │(agent)  │    │(checker)│         │
│  └─────────┘    └─────────┘    └─────────┘        │
└─────────────────────────────────────────────────────┘

Three components you need:

  1. Target: The agent function you're testing. It takes inputs from your dataset and produces outputs.
  2. Dataset: The test cases—what inputs to feed the agent, and optionally what outputs you expect.
  3. Grader (Optional): The logic that checks if the output is correct. This can be code-based (string matching, JSON validation), model-based (LLM-as-judge), or human review.

Basic Example: RAG Agent

// evals.py
from ezvals import eval, EvalContext

# The target: a RAG agent that answers questions
def rag_agent(ctx: EvalContext):
    docs = retriever.search(ctx.input)
    ctx.store(output=llm.generate(ctx.input, context=docs))

# The eval: combines target, dataset, and grader
@eval(
    dataset="rag_qa",
    target=rag_agent,
    cases=[
        {"input": "What is the return policy?", "reference": "30 days"},
        {"input": "How do I contact support?", "reference": "support@example.com"},
        {"input": "What payment methods are accepted?", "reference": "credit card"},
    ]
)
def test_rag_accuracy(ctx: EvalContext):
    assert ctx.reference.lower() in ctx.output.lower(), \
        f"Expected '{ctx.reference}' in output"

Run with: ezvals run evals.py --session example-testing

To rerun a specific list of failing evals, use explicit path selectors instead of temporary labels: ezvals run evals.py::test_a,test_b

For specific case IDs, use @case_id selectors: ezvals run evals.py::test_a@case_id_1,test_a@case_id_2

This eval runs your RAG agent against each test case and reports which passed. The cases parameter generates three separate evals from one function. Failed assertions become failing scores with the assertion message as notes.

Eval Planning Flow

When helping a user write new evals, you're designing an experiment. In the experiment plan, you need to include all of the pieces that make a good eval experiment:

1. Consider the Question Being Asked

The user's problem statement may not always be a clear question that they want answered by the eval. Its your job to parse out the question they want answered.

One example, if the user says they want "Evals for their customer service agent", what are the actual questions they want answered? Likely they are interested in how often their agent is able to handle user queries successfully. And maybe they're interested in cost and latency analysis. So the underlying question could be "How helpful is my customer service agent for users most common queries?"

Another example could be something more complex like "I want evals comparing these 3 LLMs for powering my coding agent". The underlying question could be "How is code quality and latency effected by switching between model X,Y, and Z?"

Formulate a practical question(s) and high level problem statement for the eval. Use this as the north star for formulating the experiment. If you're not confident, feel free to clarify things with the user to get a solid understanding of intent.

Determine if this is a permanent eval or a one-off debugging exercise. Some problems ("my agent uses too many emojis", "responses are too verbose") are quick debugging tasks — not permanent regression suites. For these, don't create permanent eval files in the codebase. Instead, write a temp script (e.g., /tmp/debug_eval.py) and run it programmatically. Don't build an automated scorer for subjective "vibes" issues — no assertions, no code-based checks. The value is in capturing outputs, eyeballing them, tweaking the prompt, and comparing before/after side by side.

# /tmp/debug_eval.py — throwaway, not added to the project
from ezvals import eval, EvalContext, run

@eval(cases=[
    {"input": "What is the return policy?"},
    {"input": "Tell me about your products"},
])
def test_vibes(ctx: EvalContext):
    ctx.store(output=my_agent(ctx.input))
    # No assertions, no scores — just capture outputs to eyeball

if __name__ == "__main__":
    run(path=__file__, session="debug-vibes", run_name="before", verbose=True)

The workflow: run it, eyeball outputs in ezvals serve, tweak the agent's prompt, rerun with run_name="after", then serve and compare before/after side by side:

python /tmp/debug_eval.py  # captures "before" outputs
# ... tweak the agent's prompt ...
# change run_name to "after" and rerun
python /tmp/debug_eval.py
# compare visually
ezvals serve /tmp/debug_eval.py --session debug-vibes

2. High-Level Planning

Next, you want to plan out at a high level how you can answer the north star questions. You should assume you have access to dataset, or can generate them synthetically. You should assume you have targets available or can build them. And you should assume you have graders available if you need them or you can build them too.

Read through the other documentation available in this skill to make sure you're following best practices, but they are just guides and can/should be deviated from to fit the user's needs and current setup.

Plan an experiment at a high level that, if ran, would answer the north star questions. Read up on best practices and narrow down your experiment to the most robust methodology you can. Include in the plan a high level description of the target, how/where you will get the dataset, and the evaluation logic if you plan on using an automated grader.

Common planning pitfalls to avoid:

  • Dataset too narrow — Always cover the full range of a dimension: if the user says "angry customers", also include neutral/confused/polite. If testing guardrails with refuse cases, also include in-scope "should answer" cases to catch over-refusal. See datasets.md.
  • Wrong grader type — Hallucination, accuracy, tone, and refusal checks need LLM judges, not code-based string matching. For hallucination specifically, the grader must be an LLM judge that compares the response against retrieved source documents — see use-cases/rag-agents.md.
  • Permanent files for throwaway work — One-off debugging tasks (emoji, verbosity, style) should use temp scripts, not permanent eval files. No assertions or automated scoring — just capture outputs, eyeball, tweak prompt, rerun, and compare before/after in ezvals serve. See the guidance above.

If the user is testing prompt/config changes (CLAUDE.md, system prompts, agent instructions), read use-cases/testing-agent-skills.md — it covers headless CLI agents as targets, plan-only mode, and before/after comparison with session/run naming. This applies to any scenario where the user is iterating on the configuration that drives their agent.

3. Take Inventory

Next, you want to see what the current codebase has for evals to see if theres anything you can reuse or expand. If they already have evals, you may find targets, graders, and maybe even datasets you can reuse. If they don't have evals, look around core functionality of the project and make decisions on what a good target may be.

Put together an inventory with a description of what and why you chose: Target(s), Dataset, and optionally Graders

4. Check Environment and Dependencies

First, verify EZVals is available:

pip show ezvals

If not, include installation in the plan. Are there any external dependencies you may need to get started? Like API keys, Public Datasets, or libs to install. Include those in the plan.

5. Produce Plan

You should have everything you need to plan a good eval from here.

Guides

targets.md

When to read: Writing or wrapping your agent/function as an eval target

  • Target function pattern with EZVals
  • Test outputs, not paths
  • Capturing metadata (sources, tool calls)
  • Common target patterns

datasets.md

When to read: Building test cases, sourcing data

  • Error analysis first principle
  • Dataset sizing (iteration vs analysis vs regression)
  • Sourcing test cases (manual, production, failure analysis)
  • Using EZVals cases= and input_loader
  • Building balanced datasets
  • Avoiding saturation

synthetic-data.md

When to read: Generating synthetic test cases for the user

  • When to generate directly vs. suggest a script
  • Dimension-based generation for variety
  • Validation and mixing with real data

graders.md

When to read: Scoring outputs, choosing grader types, calibrating LLM judges

  • Code vs model vs human graders
  • Assertions and ctx.store(scores=...)
  • LLM-as-judge patterns and calibration
  • Combining graders
  • Reducing flakiness

running.md

When to read: Running evals, managing sessions, serving results for review

  • ezvals run vs ezvals serve
  • Session and run naming best practices
  • Serving results for user review
  • Comparing runs and exporting results

Use Cases

use-cases/rag-agents.md

When to read: Evaluating RAG systems, checking groundedness and retrieval quality. Also read this for any hallucination or groundedness eval, even if the agent isn't a traditional RAG system — the grading principles (LLM judge comparing response against sources) apply to any agent with a knowledge base.

  • Hallucination detection (LLM judge, not code checks)
  • Pass and coverage verification
  • Source quality checks
  • Full RAG eval example

use-cases/coding-agents.md

When to read: Evaluating agents that write or modify code

  • Unit tests on generated code
  • Fail-to-pass tests for bug fixes
  • Static analysis (linting, types, security)
  • Handling non-determinism (pass@k, pass^k)

use-cases/testing-agent-skills.md

When to read: Evaluating agent skills, CLAUDE.md/AGENTS.md configs, MCP servers, or comparing coding agents (Claude Code, Codex, Cursor, etc.)

  • Plan-only evals for testing skills without file mutations
  • Headless CLI agents as targets (claude -p, codex exec)
  • CLI agent as LLM judge (subscription-powered, no API key)
  • Dataset/target/evaluator reference structure
  • Judge alignment and iteration workflow

use-cases/testing-internals.md

When to read: Testing tools, multi-agents, workflow nodes

  • When to test internals (and when not to)
  • Tool call verification
  • Multi-agent coordination
  • State verification
  • Environment isolation

Reference

ezvals-docs/

When to read: EZVals API reference—decorators, scoring, CLI, web UI

  • quickstart.mdx - Getting started
  • decorators.mdx - The @eval decorator options
  • eval-context.mdx - EvalContext API
  • scoring.mdx - Scoring with assertions and ctx.store()
  • patterns.mdx - Common eval patterns
  • cli.mdx - Command line interface
  • web-ui.mdx - Interactive results exploration

Running Evals

# Run evals headlessly
ezvals run evals/ --session my-experiment --run-name baseline

# Serve results for user to review in browser
ezvals serve evals/ --session my-experiment

# Start serve without launching a browser window
ezvals serve evals/ --session my-experiment --no-open

Sharing Results via URL (Agent Guidance)

When the user is already serving the UI, prefer sharing a focused URL instead of asking them to rerun serve with extra flags.

Use the running base URL (for example http://127.0.0.1:8000) plus query params to open exactly what they should see:

  • run_id=<id> (single-run views)
  • compare_run_id=<id> (repeatable)
  • search=<text>
  • annotation=any|yes|no
  • has_error=1|0
  • has_url=1|0
  • has_messages=1|0
  • dataset_in, dataset_out, label_in, label_out (repeatable)
  • score_value=<key,op,value>, score_passed=<key,true|false>

Example response to user:

You can see the passing results for the two final runs here:
http://127.0.0.1:8000/?compare_run_id=1826bc4c&compare_run_id=58741756&score_passed=pass,true

See running.md for session management and URL construction examples.

Human Corrections Guidance (Agent)

If the user says anything like "leaving notes", "making corrections", "manual edits", or "edited scores/annotations", inspect each row's result.correction_history first.

Use it to answer:

  • What changed (field)
  • What the judge had before (before)
  • What the human set after (after)
  • When the correction happened (timestamp)

Treat correction_history as the source of truth for manual override context before proposing judge prompt changes or grader fixes.

Feedback

If the user mentions something about EZVals that isn't working well, seems confusing, or could be better, suggest they file a GitHub issue at https://github.com/camronh/EZVals/issues. Offer to help them draft the issue or file it directly using gh.

Resources

平台分布

Claude Code

86.93%
按下载量换算54

安全审计

Gen Agent Trust Hub

可疑

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。

继续浏览同类 Skills