omcustom:agent-eval-framework
SkillMonitoring & opsQuantitative agent evaluation using 4-metric framework (correctness/step_ratio/tool_call_ratio/latency_ratio) with ideal trajectory annotation and capability-categorical taxonomy. Use when measuring agent efficiency, comparing agent variants, or gating new agents through correctness→efficiency phases. Complements harness-eval (SE benchmarks) and evaluator-optimizer (qualitative rubric).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the omcustom:agent-eval-framework skill
What this skill tells your AI
The instructions your AI receives, as published by baekenough/oh-my-customcode in .claude/skills/agent-eval-framework/SKILL.md and read by ahel’s review.
Purpose
Provides quantitative, trajectory-based evaluation for oh-my-customcode agents. Fills the measurement gap not covered by existing skills:
| Skill | Coverage | Gap |
|---|---|---|
| harness-eval | SE benchmark task quality (15 tasks) | No efficiency metrics |
| evaluator-optimizer | Qualitative rubric loop | No quantitative gate |
| deep-verify | Release quality (structural/correctness) | No step/latency ratios |
| multi-model-verification | Code correctness across models | No trajectory comparison |
This skill adds efficiency measurement — not just "did the agent succeed?" but "how efficiently did it succeed relative to an ideal trajectory?"
The 4-Metric Framework
Derived from LangChain's deep agent evaluation methodology.
| Metric | Formula | Direction | Use |
|---|---|---|---|
| correctness | pass / fail per task | binary | Phase 1 gate — must pass before efficiency |
| step_ratio | observed_steps / ideal_steps | lower is better | Measures unnecessary reasoning hops |
| tool_call_ratio | observed_tool_calls / ideal_tool_calls | lower is better | Measures redundant tool invocations |
| latency_ratio | observed_latency_s / ideal_latency_s | lower is better | Measures wall-clock efficiency |
Thresholds (recommended starting points):
- step_ratio ≤ 1.5 — acceptable
- tool_call_ratio ≤ 1.3 — acceptable
- latency_ratio ≤ 2.0 — acceptable (parallelism headroom)
Ideal Trajectory Annotation
Each task requires a hand-annotated ideal trajectory stored in .claude/outputs/evals/trajectories/.
task_id: example-001
capability: file_operations
ideal:
steps: 4
tool_calls: 4
latency_seconds: 8
description: "Refactor user.py — read, parse, edit, verify"
Annotation guidelines:
steps: count of distinct reasoning/action steps in an expert runtool_calls: minimum tool invocations required (no redundant reads)latency_seconds: median of 3 expert runscapability: one of the six taxonomy categories below
Capability-Categorical Taxonomy
Maps LangChain capability categories to oh-my-customcode tools and task types.
| Capability | Tools | Example Tasks |
|---|---|---|
| file_operations | Write, Edit | Refactor, create files, patch configs |
| retrieval | Glob, Grep, Read | Code search, dependency analysis, symbol lookup |
| tool_use | Agent, Skill, Bash | Multi-tool workflows, pipeline execution |
| memory | Read/Write to .claude/agent-memory*/ | Context recall, R011 patterns, cross-session refs |
| conversation | routing skills (secretary/dev-lead/de-lead/qa-lead) | Multi-turn user interaction, intent routing |
| summarization | result-aggregation skill | Multi-agent synthesis, parallel result merge |
Use this taxonomy to select representative tasks per category when building an eval suite. Aim for ≥3 tasks per capability category.
Tool: Writing artifacts under .claude/outputs/
Under mode: "bypassPermissions", direct Write/Edit/Bash on .claude/** paths is permitted (CC v2.1.121+, #1101) — no /tmp/*.sh wrapping is needed.
To write eval trajectories or result reports under .claude/outputs/evals/:
- Write the artifact body directly to
.claude/outputs/evals/{trajectories,sessions}/...with the Write tool (every Agent tool call includesmode: "bypassPermissions", R010) - Read-only Bash on
.claude/outputs/(e.g.,cat,head,wc) is allowed for verification
Reference: R006/R010 sensitive-path handling (CC v2.1.121+), #1101.
Phased Opt-in Gate Workflow
Phase 1: Correctness Gate (MUST pass before Phase 2)
- Run agent against task set
- Score each task pass/fail
- Require correctness ≥ 0.80 (80%) before proceeding
- If below threshold: diagnose failure modes, fix agent, re-run
Phase 2: Efficiency Comparison
- Compute step_ratio, tool_call_ratio, latency_ratio per task
- Aggregate by capability category
- Compare against baseline (previous agent version or reference agent)
- Flag regressions (ratio increase > 20%)
Consumers of this workflow:
- mgr-creator: candidate consumer — opt-in for new agents requiring quantitative gating before deployment
- worker-reviewer-pipeline: gate review cycles — efficiency regression = re-review trigger
- deep-verify: optional quantitative dimension for release quality checks
Tracing Infrastructure (LangSmith Alternative)
oh-my-customcode uses existing infrastructure for trajectory capture:
| Component | Role | How |
|---|---|---|
| native MEMORY.md (R011) | Persist eval metrics across sessions | Write ## Metrics section with task_id + observed metrics to agent-memory MEMORY.md |
| statusline.sh (R012) | Real-time step counter during eval runs | Extend statusline with STEPS=n segment |
.claude/outputs/evals/ | Artifact storage for eval results | Per-session eval reports in sessions/{YYYY-MM-DD}/ |
Trace capture pattern:
task start → record tool_calls[] + timestamps → task end
→ compute ratios against ideal trajectory
→ write to native MEMORY.md ## Metrics: {task_id, capability, correctness, step_ratio, tool_call_ratio, latency_ratio}
Persistent Storage (added v0.116.0, #1036)
Baseline annotations and observed trajectories can be persisted to eval-core's SQLite database (evalBaselines + agentTrajectories tables). This complements the YAML file approach for cross-session analysis. The eval-core query API for the evalBaselines/agentTrajectories tables is not yet implemented — use the YAML annotation approach meanwhile.
Integration with Existing Skills
| Skill | Integration Mode | How |
|---|---|---|
| harness-eval | Additive | After harness-eval runs 15 SE tasks, apply 4-metric layer to each result |
| evaluator-optimizer | Additive | After rubric loop converges, run efficiency gate as final check |
| deep-verify | Optional | Add --quantitative flag awareness; deep-verify can invoke this skill |
| mgr-creator | Gate | New agent creation includes Phase 1 correctness check before agent is deployed |
Usage Pattern
/omcustom:agent-eval-framework measure <agent-name> <task-id>
/omcustom:agent-eval-framework compare <variant-a> <variant-b>
/omcustom:agent-eval-framework gate <agent-name> # correctness → efficiency
measure: Runs a single agent against a single task, outputs all 4 metrics.
compare: Runs two agent variants against the same task set, produces side-by-side ratio table.
gate: Full two-phase gate — Phase 1 correctness check, then Phase 2 efficiency if Phase 1 passes. Returns PASS or FAIL with metric breakdown.
Example Output
[agent-eval-framework] gate lang-golang-expert
Phase 1: correctness = 0.87 (13/15) ✓ threshold: 0.80
Phase 2: efficiency
step_ratio: 1.12 ✓
tool_call_ratio: 1.08 ✓
latency_ratio: 1.31 ✓
Result: PASS — agent approved for deployment
R020 Linkage
Quantitative metrics provide [Done] gate evidence beyond binary completion checks (R020 MUST-completion-verification).
| R020 Task Type | 4-Metric Evidence |
|---|---|
| Implementation | correctness ≥ threshold + step_ratio ≤ 1.5 |
| Agent/Skill Creation | Phase 1 gate PASS (mgr-creator workflow) |
| Code Review | tool_call_ratio as efficiency signal for review thoroughness |
When declaring [Done] for agent creation or major workflow changes, include eval gate results as completion evidence.
See R020 "Optional: Quantitative Evidence" section for the consumer-side advisory pattern.
Signals
- GitHub stars
- 34
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
omcustom-agent-eval-framework- Source
- github.com/baekenough/oh-my-customcode