run-eval

Run the LangSmith evaluation suite and display pass/fail results

14 stars

Best use case

run-eval is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Run the LangSmith evaluation suite and display pass/fail results

Teams using run-eval should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/run-eval/SKILL.md --create-dirs "https://raw.githubusercontent.com/spideystreet/medox/main/.claude/skills/run-eval/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/run-eval/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How run-eval Compares

Feature / Agentrun-evalStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Run the LangSmith evaluation suite and display pass/fail results

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# /run-eval

## Steps

1. **Ensure Docker is running**
   ```bash
   docker compose ps
   ```
   If PostgreSQL or ChromaDB is not up:
   ```bash
   docker compose up -d
   ```

2. **Run the evaluation suite**
   ```bash
   uv run dotenv -f .env run -- python scripts/run_eval.py
   ```
   Note the experiment name printed (e.g. `medox-<hash>`).

3. **Fetch and display results**
   Write the following script to `/tmp/check_eval.py` then run it:

   ```python
   from langsmith import Client

   client = Client()
   runs = list(client.list_runs(project_name='<experiment_name>', is_root=True))
   print(f'Eval cases: {len(runs)}')
   print()

   passed, failed = 0, 0
   for run in runs:
       fb = list(client.list_feedback(run_ids=[str(run.id)]))
       score = fb[0].score if fb else None
       comment = fb[0].comment if fb else ''
       prompt = (run.inputs or {}).get('prompt', '').strip()[:75]
       status = 'PASS' if score == 1 else 'FAIL'
       if score == 1:
           passed += 1
       else:
           failed += 1
       print(f'[{status}] {prompt}')
       if comment and comment != 'OK':
           print(f'       -> {comment}')

   print()
   print(f'Result: {passed} passed, {failed} failed out of {len(runs)}')
   ```

   Replace `<experiment_name>` with the value printed in step 2, then:
   ```bash
   uv run dotenv -f .env run -- python3 /tmp/check_eval.py
   ```

4. **Investigate failures**
   For any `[FAIL]`, read the comment and:
   - Check the relevant node/tool in `src/medox/agent/`
   - Check the evaluator logic in `scripts/run_eval.py`
   - Use `/add-eval-case` to add a regression case if a new edge case was found

5. **Report summary**
   Print the final `Result: N passed, M failed out of X` line to the user.

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.