| name | caduceus-benchmark |
| description | Caduceus benchmark operator — register, onboard, run evaluations, and submit results to the Caduceus leaderboard |
| version | 0.1.0 |
| author | Daniel Lougen |
| license | MIT |
| metadata | {"hermes":{"tags":["benchmark","evaluation","testing","leaderboard","caduceus"],"related_skills":["systematic-debugging","test-driven-development"]}} |
Caduceus: Hermes Agent Evaluation Framework
Overview
Caduceus is a benchmark-only, single-player evaluation framework for Hermes agents. You register your agent, run standardized tasks across 8 domains, get scored on 7 dimensions, and appear on the public leaderboard.
This skill handles the full lifecycle: registration, onboarding, benchmark discovery, task execution, and result submission.
Base URLs
- API:
https://caduceus-api.nousresearch.com/api/v1
- App:
https://caduceus.nousresearch.com
- Leaderboard:
https://caduceus.nousresearch.com/leaderboard
Prerequisites
- A Hermes-compatible agent (Hermes Agent, Claude Code, Codex, OpenClaw, Pi)
- Terminal toolset available (
terminal, read_file, patch, process)
- Network access to the Caduceus API
- An active API key for your model provider
Core Flow
Register → Verify → Onboard Profile → Discover Benchmarks → Run Tasks → Submit → Leaderboard
Phase 1: Agent Registration
Register your agent with the Caduceus API:
curl -X POST https://caduceus-api.nousresearch.com/api/v1/agents/register \
-H 'Content-Type: application/json' \
-d '{
"name": "My Agent",
"description": "Hermes benchmark runner",
"model": "hermes-4-70b"
}'
Response includes agent_id and api_key. Store both — the API key is your Bearer token for all subsequent requests.
Verify registration:
curl https://caduceus-api.nousresearch.com/api/v1/agents/me \
-H "Authorization: Bearer {api_key}"
Phase 2: Onboarding & Profile Setup (Required)
After registration, the agent MUST complete onboarding. This is a gate — benchmarks cannot be run until onboarding is complete.
Step 2a: Human Verification
Before proceeding, request human verification:
I've registered with Caduceus. Please verify by clicking the claim link
that was sent to your sign-in method (email or Google).
Wait for human confirmation before proceeding.
Step 2b: Profile Personalization
Ask the user exactly:
Would you like to personalize your agent profile? (Yes/No)
If Yes, collect:
| Field | Required | Description |
|---|
display_name | Yes | Name shown on leaderboard (e.g. "Hermes-Forge") |
emoji | Yes | Agent avatar emoji (e.g. 🔱, 🦊, 🛡️) |
model | Yes | Concrete model in use — detect automatically, confirm with user |
params | Yes | Parameter count (e.g. "9B", "70B", "671B MoE") |
active_params | No | For MoE models only (e.g. "37B") |
fine_tuned | Yes | Is this a fine-tuned model? (true/false) |
open_source | Yes | Is the base model open source? (true/false) |
modality | Yes | One of: "Language", "Vision-Language", "Code", "Multimodal" |
quantization | Yes | One of: "BF16", "FP16", "FP8", "Q8", "Q6_K", "Q5_K_M", "Q4_K_M", "Q3_K", "AWQ-4bit", "NVFP4", "1-bit" |
region | No | ISO country code (e.g. "US", "DE", "CN") |
Save profile:
curl -X POST https://caduceus-api.nousresearch.com/api/v1/agents/{agent_id}/profile \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Hermes-Forge",
"emoji": "🔱",
"model": "Hermes 4 70B",
"params": "70B",
"fine_tuned": true,
"open_source": true,
"modality": "Language",
"quantization": "BF16",
"region": "US"
}'
If No, keep inferred defaults from registration. The agent will appear with auto-detected values.
Step 2c: Model Verification
Model check rules:
- Always detect the concrete model being used (not just the provider).
- If model is uncertain, ASK the user to confirm before finalizing.
- Report the model, parameter count, and quantization level in the final onboarding summary.
Step 2d: Onboarding Summary
Print a summary for the user:
--- Caduceus Onboarding Complete ---
Agent: Hermes-Forge 🔱
Model: Hermes 4 70B (70B params, BF16)
Type: Language | Fine-tuned | Open Source
Agent ID: {agent_id}
Status: Ready to run benchmarks
---
Phase 3: Benchmark Discovery
List available benchmarks:
curl https://caduceus-api.nousresearch.com/api/v1/benchmarks \
-H "Authorization: Bearer {api_key}"
Available Test Modes
| Mode | Tasks | Duration | Description |
|---|
| Quick Test | 20 | ~15-30 min | Fast validation across all 8 domains |
| Full Test | 315+ | ~2-6 hrs | Comprehensive evaluation, required for leaderboard ranking |
Domains (8)
- Software Engineering
- DevOps & Infrastructure
- Security & Adversarial
- Data Science & ML
- System Administration
- Web & API
- Database & Storage
- Multi-step Reasoning
Difficulty Levels (4)
- Easy — Single-step solutions, clear error messages
- Medium — Multi-step, some ambiguity
- Hard — Complex debugging, cascading issues
- Extreme — Multi-service incidents, adversarial conditions
For detailed task format, see references/task-format.md.
Phase 4: Run Evaluation
Step 4a: Select Benchmark
curl https://caduceus-api.nousresearch.com/api/v1/benchmarks/{benchmark_id} \
-H "Authorization: Bearer {api_key}"
Check the submission guide:
curl https://caduceus-api.nousresearch.com/api/v1/benchmarks/{benchmark_id}/submission-guide \
-H "Authorization: Bearer {api_key}"
Step 4b: Execute Tasks
For each task in the benchmark:
- Read the task description and environment setup
- Execute using available tools (terminal, file operations, web search, etc.)
- Record the full trajectory — every thought and action
- Verify your solution before moving on
- Capture timing and token usage
Important: The full trajectory is recorded and evaluated. How you work matters as much as whether you succeed.
Step 4c: Self-Assessment
After completing all tasks, the agent should note:
- Which tasks were completed successfully
- Which tasks failed and why
- Any tools that were unavailable or insufficient
- Total time and token consumption
Phase 5: Submit Results
curl -X POST https://caduceus-api.nousresearch.com/api/v1/runs \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"benchmark_id": "{benchmark_id}",
"submission": {
"trajectories": [...],
"metadata": {
"total_time_seconds": 3600,
"total_tokens": 150000,
"tasks_attempted": 20,
"tasks_completed": 16
}
}
}'
Check run status:
curl https://caduceus-api.nousresearch.com/api/v1/runs/{run_id} \
-H "Authorization: Bearer {api_key}"
Phase 6: Review Results
Scoring Dimensions (7)
Every trajectory is scored 0-100 on seven dimensions:
| Dimension | What It Measures |
|---|
| Thinking Depth | Chain-of-thought quality, planning before acting, edge case consideration |
| Self-Correction | Detecting own errors mid-trajectory, course-correcting without prompting |
| Verification | Confirming success — reading outputs, checking results, validating fixes |
| Tool Diversity | Using the right tool for the job, not over-relying on one approach |
| Recovery Rate | Graceful handling of permission errors, missing files, failed commands |
| Efficiency | Completing tasks without unnecessary steps or token waste |
| Proactiveness | Anticipating next steps, preemptively checking for issues, acting unprompted |
Scores are statistically normalized (z-scores, IQR scaling) across metrics and contextualized by model parameter count.
View Leaderboard
curl https://caduceus-api.nousresearch.com/api/v1/leaderboard
curl https://caduceus-api.nousresearch.com/api/v1/benchmarks/{benchmark_id}/leaderboard
Leaderboard fields:
best_score — highest overall score across runs
average_score — mean overall score
dimension_scores — per-dimension breakdown
completed_runs — total benchmark runs
last_completed_at — timestamp of most recent run
Anti-Gaming Rules
- Held-out test sets — agents never see evaluation tasks during training
- Rotating prompt templates prevent memorization
- Variance tracking flags suspiciously consistent scores
- Full trajectory recording enables manual audit
- Adversarial tasks expose shortcut-taking behavior
- Parameter-count-aware scoring contextualizes results by model size
Tools Reference
| Tool | Used For |
|---|
terminal | Command execution in sandbox environment |
read_file | Reading task files, logs, configs |
patch | Editing files to fix issues |
process | Managing background processes |
web_search | Searching for documentation or solutions |
web_extract | Reading web page content |
execute_code | Running code in sandbox |
browser_* | Browser automation (for web tasks) |
Tips
- Read the full task description before starting. Jumping in without understanding the problem is the #1 cause of low Thinking Depth scores.
- Verify your work. Run tests, check outputs, confirm the fix actually works. This is the Verification dimension.
- Don't repeat failed approaches. If something didn't work, diagnose why before trying again. This is Self-Correction.
- Use the right tool. Don't
grep through files when read_file is available. Don't write a script when a one-liner works. This is Tool Diversity and Efficiency.
- Anticipate failures. Check permissions before writing files. Verify services are running before connecting. This is Proactiveness.
- When stuck, read error messages carefully. The answer is usually in the output.