跳到正文
cccskills
免费在 GitHub 公开

benchmark

Use when choosing between engines or models for an agent pipeline and the answer must come from measurement on your own data, not from marketing pages: speech recognition for meeting recordings, the model that turns a transcript into notes, the critic model that checks it. Runs every variant in an isolated container, measures time, cost per hour of input (USD and RUB, with price source and date) and quality (WER/CER and course terms for ASR; code checks plus a judge of a different model for LLM steps), writes results.json/csv and one static analytics page. Triggers on "бенчмарк", "сравни движки", "сколько стоит час записи", "какую модель взять для пайплайна", "benchmark the pipeline", "compare ASR engines".

中文简介正在准备中。当前显示原文说明。

集成工具ElevenLabs
查看安装方法

包含的文件(12)

  • SKILL.md7.3 KB
  • examples/adapter_example.py4.9 KB
  • prices.example.json3.3 KB
  • README.md2.2 KB
  • README.ru.md3.2 KB
  • scripts/asr.py10.8 KB
  • scripts/claude_step.py5.8 KB
  • scripts/common.py2.1 KB
  • scripts/llm.py4.0 KB
  • scripts/report.py10.4 KB
  • scripts/score.py14.6 KB
  • task.example.json1.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Benchmark

Measure a pipeline on your own input before you pick an engine. One task file lists the variants; the scripts run them one by one in an isolated container and write numbers you can defend: time, cost per hour of input with a dated price source, quality against a reference.

Shape of a pipeline this skill knows:

input (recording) → ASR engine → transcript → author model (notes, chapters) → code checks → judge model

Each arrow is a slot. A variant fills one slot and keeps the rest fixed.

When to use

  • «ElevenLabs, Whisper or a Russian engine: what does an hour of our meetings cost and who makes fewer mistakes»;
  • «move the notes step from Claude to GLM: does quality hold»;
  • before a pipeline goes unattended: pick the critic that finds the most real problems.

Not for: load testing, latency SLOs of a live service, model evals on public datasets.

Rules

  1. Isolation. Run in a dedicated container (LXC/VM), not on a laptop and not next to production: the timing is clean and the keys live only there. Egress: provider APIs; private network closed except the services the task needs (for example a self-hosted ASR).
  2. Keys only from env. The container gets a root-only env file; scripts read variable names from the task and never print values. Error bodies are redacted (some providers echo the key back).
  3. Same harness for every model. LLM steps run through claude -p (Claude Code headless) against Anthropic-compatible endpoints; only the model changes. Tools, prompt, permissions stay the same.
  4. Judge is never the author's model. llm.py refuses such a variant.
  5. No answer leaks. The author must not see the published result of the same input (a «form reference» that is the answer itself). Give it a sibling of the same kind.
  6. Prices carry source and date. prices.json: every item has source and checked; FX from the central bank of the day. A number without a source does not go into the report.
  7. What was not run is a row too. Missing key, no balance, provider closed to new clients: write the reason and the list price, do not drop the row.
  8. Private input stays private. Transcripts and recordings go to a private repo; the analytics page shows only aggregate numbers.

Steps

  1. Task file (task.example.json): input audio, language, terms list, reference transcript, ASR variants, LLM variants with judges, not_run rows with reasons.
  2. Container. Create it by your infra rules (the section «Container» below). Install ffmpeg, Python venv with httpx jiwer faster-whisper, Node and @anthropic-ai/claude-code. Put keys into /etc/bench.env (root 600) through a pipe from your secret store.
  3. ASR: python3 scripts/asr.py --task task.json --out runs/<name> (engines run sequentially; ElevenLabs credits are read before and after).
  4. LLM: write an adapter for your pipeline (contract in scripts/llm.py), then python3 scripts/llm.py --task task.json --out runs/<name> --stage author on the container and --stage judge where the judge's key lives (a subscription login on another machine is fine: the judge only reads files).
  5. Score: python3 scripts/score.py --task task.json --out runs/<name> --prices prices.json.
  6. Page: python3 scripts/report.py --results runs/<name>/results.json --out report.html --notes notes.md.
  7. Method note next to the results: input, reference origin, what was not run and why, known biases.

Engines and providers

SlotEngine keyTestedNeeds
ASRelevenlabs (Scribe, optional keyterms)yesELEVENLABS_API_KEY
ASRopenai_compat (/v1/audio/transcriptions: self-hosted GigaAM, speaches, cloud)yesserver URL, optional key
ASRfaster_whisper (CPU, int8)yesmodel download once
ASRopenrouter_audio (chat with input_audio, chunked)request path onlyOPENROUTER_API_KEY with balance
LLMzai (GLM via api.z.ai/api/anthropic)yesZAI_API_KEY
LLManthropic-local (the login on this machine)yesClaude Code logged in
LLMopenrouter, deepseek, anthropic-api, anthropic-oauthnot yetkey with balance

Yandex SpeechKit and SaluteSpeech have no adapter yet: add one to ENGINES in asr.py (input: audio path, output: text, raw response, usage) when you have a key.

Metrics

ASR (against the reference, after lower case, ё→е, punctuation and speaker tags removed):

  • wer, cer: word and character error rate;
  • wer_termnorm: WER after known term distortions are fixed in both texts;
  • term_accuracy: share of term mentions written canonically, canon / (canon + known distortions), no reference needed;
  • term_recall: canonical term mentions vs. the reference;
  • asr_pairwise_wer: engines against each other, independent of the reference;
  • rtf: wall time / audio time.

LLM: code checks before and after the fix round, fix rounds, judges' verdicts with critical / major / minor counts, tokens, turns, wall time.

Cost per hour of input: list price (api_price), tokens × list price (tokens), provider-reported cost (reported), or the CPU-seconds share of your server's month (server_share) for self-hosted engines.

Bias checklist (write it into the method note)

  • Where the reference came from. A reference made by engine X favours X in WER; say so and read term_accuracy and pairwise WER next to it.
  • Numbers: engines write «65» or «шестьдесят пять»; WER counts both as errors.
  • Self-hosted time depends on the host's load at run time; note CPU threads and neighbours.
  • One recording is one sample. Treat differences under a couple of WER points as noise.

Container

The skill does not create infrastructure. Follow your infra rules; minimum:

  • a separate container for benchmarks, not a production or user container;
  • no inbound exposure; no SSH if the host can exec into it;
  • outbound: internet for APIs; private networks closed except named services;
  • keys in a root-only env file, services started with EnvironmentFile=, run as an unprivileged user;
  • CPU weight below production neighbours (for example cpuunits lower than default).

Files

  • scripts/asr.py, scripts/llm.py, scripts/claude_step.py, scripts/score.py, scripts/report.py, scripts/common.py
  • task.example.json: a task with every engine type
  • prices.example.json: price table with sources, checked 2026-09-30
  • examples/adapter_example.py: a minimal LLM adapter (author → checks → one fix → judge); run end to end with GLM-5.3-Flash as author and GLM-5.3 as judge

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Orchestrate iterative visual style searches with branch prompts, decision graphs, feedback loops, and final direction selection.

中文简介正在准备中。当前显示原文说明。

serejaris/personal-corp-os2312026年10月21日 更新

Audits the agent rules in the current folder (AGENTS.md, nested AGENTS.md files) and the skill descriptions the agent sees at start, then reports what to cut, move or rewrite and edits only after the user says yes. Use on «аудит правил», «проверь AGENTS.md», «почему агент не слушается правил», «проверь скиллы».

中文简介正在准备中。当前显示原文说明。

serejaris/personal-corp-os2312026年10月21日 更新

avatar

免费

Робот агента Personal Corp. Агент делает себе голову робота из набора деталей, хранит её в штабе в stack/avatars.json и кладёт в штаб страницу avatar/robot.html, где робот стоит за партой своего штаба и вокруг видны отделы, без сервера и интернета. На уроке по ссылке входа с экрана урока робот входит в живой класс и горит маячком, пока агент работает. Триггеры /avatar, /avatar <ссылка входа>, сделай себе аватар, покажи своего робота, приди на урок.

中文简介正在准备中。当前显示原文说明。

serejaris/personal-corp-os2312026年10月21日 更新

Use when user asks for Claude Code usage stats, weekly analytics, project activity summary, or wants to see what projects were worked on. Triggers on "аналитика", "статистика claude", "cc stats", "weekly report", "что делал"

中文简介正在准备中。当前显示原文说明。

serejaris/personal-corp-os2312026年10月21日 更新

Use when needing strategic project analysis from multiple independent expert perspectives. Triggers on business decisions, growth strategy, product direction, competitive analysis, or any situation where diverse C-level opinions reduce blind spots

中文简介正在准备中。当前显示原文说明。

serejaris/personal-corp-os2312026年10月21日 更新

Use when creating or refactoring CLAUDE.md files - enforces best practices for size, structure, and content organization

中文简介正在准备中。当前显示原文说明。

serejaris/personal-corp-os2312026年10月21日 更新

查看 serejaris 的全部技能

报告此技能的问题