Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/zli12321/lhtb/rewardkitnpx skills add zli12321/LHTB --skill rewardkitgit clone --depth 1 https://github.com/zli12321/LHTBWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zli12321/lhtb/rewardkit)<a href="https://agentmods.dev/skills/zli12321/lhtb/rewardkit"><img src="https://agentmods.dev/badge/skills/zli12321/lhtb/rewardkit.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.01933 |
| Opus 5 | $0.00023 | $0.00966 |
| Sonnet 5 | $0.00009 | $0.00387 |
| Haiku 4.5 | $0.00005 | $0.00193 |
Grade A, and why
rewardkit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
91% identical to rewardkit — 90 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 235 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Help the user write task verifiers with Reward Kit. Reward Kit is a lightweight Python package that turns a directory of criteria files into a reward score. Each criterion is a Python function call or a TOML judge file; folders become separate rewards.
Setup in a Harbor task
Put criteria alongside test.sh in the task's tests/ directory:
tests/
├── test.sh
├── checks.py # programmatic criteria
└── judge.toml # optional LLM/agent judge
tests/test.sh:
#!/bin/bash
uvx --from 'harbor-rewardkit==0.1.*' rewardkit /tests
This runs all criteria in /tests/ against the workspace at /app and writes
/logs/verifier/reward.json. Defaults match Harbor's conventions — no extra config needed.
If judge criteria need API keys, pass them through task.toml:
[verifier.env]
ANTHROPIC_API_KEY = "${ANTHROPIC_API_KEY}"
Ask whether Reward Kit should run in the agent's shared environment or in a separate verifier environment. Prefer a separate verifier environment when judge prompts, grading dependencies, API keys, or clean-room checks should not be available to the agent:
[verifier]
environment_mode = "separate"
[verifier.environment]
docker_image = "python:3.12-slim"
allow_internet = true
In separate mode, tests/ is the verifier image build context and must provide
/tests/test.sh at runtime; Harbor does not upload tests/ into the running
verifier container.
Programmatic criteria
Call built-ins from any .py file in tests/:
import rewardkit as rk
rk.file_exists("output.txt")
rk.file_contains("output.txt", "hello")
rk.command_succeeds("python main.py", weight=2.0)
rk.json_key_equals("result.json", "status", "ok")
All criteria accept weight (default 1.0) and isolated (default False, runs in
overlayfs so side effects don't leak).
Available built-ins
- Files:
file_exists,file_not_exists,file_contains,file_contains_regex,file_matches,files_equal,diff_ratio - Commands:
command_succeeds,command_output_contains,command_output_matches,command_output_matches_regex(30s default timeout, optionalcwd) - Data:
json_key_equals,json_path_equals,csv_cell_equals,xlsx_cell_equals(needs[office]extra),sqlite_query_equals - HTTP:
http_status_equals,http_response_contains - Images:
image_similarity,image_size_equals(needs[image]extra) - Trajectory:
trajectory_tool_used,trajectory_tool_not_used,trajectory_turn_count
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 235 lines · 46 tokens per session scan A 25299721f2ff
rewardkit is a skill published in the GitHub repository zli12321/LHTB (698 stars, last pushed 9d ago), licensed Apache-2.0. It adds 46 tokens to every session and 1,933 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 91% identical to rewardkit, differing in 90 lines, and is treated as a copy.
Other skills, from other repositories
rewardkit
Write Harbor task verifiers using Reward Kit. Use when creating or editing a task's tests/ directory, adding grading criteria, setting up LLM/agent judges, or designing verifiers that produce a reward score.
create-adapter
Scaffold a new Harbor benchmark adapter by running harbor adapter init and then guide implementation using the Adapters Agent Guide as the authoritative spec.
analyze-task
Check OSWorld tasks. Validate the evaluation function, verify that the instruction is feasible given the task setup and agent-visible files, inspect setup artifacts when needed, and produce both markdown and structured JSON reports.
create-task
Create a new Harbor task for evaluating agents. Use when the user wants to scaffold, build, or design a new task, benchmark problem, or eval. Guides through instruction writing, environment setup, verifier design (pytest vs Reward Kit vs custom), and solution scripting.
research-engineer
An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".