Summary
Proposal to explore a Skillware-native benchmark that stress-tests how models and agent harnesses use registry skills — not just generic function calling, but governed bundles with manifest.yaml (parameters, outputs, constitution), instructions.md, multi-action flows (preview → confirm → send), and optional skill chains.
Today Skillware has strong correctness testing (test_skill.py, framework tests, wheel smoke) but no comparative eval suite or public leaderboard. Existing benchmarks (BFCL, ToolBench, API-Bank) focus on schema-level tool calls; Skill-Use (2026) is the closest analog for “skills in harnesses” but is not tied to Skillware’s registry, adapters, or constitution model.
This RFC is food for thought — not a commitment to build. It frames the gap, where we fit, a tiered design, and whether the work lives in a public skillware-bench repo vs AURA Harness (private ARPA harness, planned open source).
Motivation
What we have today
- 16 registry skills across 11 categories (compliance, finance, office, security, …).
- Four test layers (bundle, framework, maintainer, examples) — regression/correctness, not model comparison.
- Agent loop contract (
docs/usage/agent_loops.md): load → wire adapter → prompt → execute → return.
- Unique governance surface:
constitution in manifest, multi-step actions (office/gmail_handler: preview/confirm gates), deterministic execute() separate from LLM cognition.
What’s out there (landscape)
| Benchmark |
Focus |
Scoring |
Gap vs Skillware |
| BFCL |
Function calling — correct tool, valid args, parallel/multi-turn |
AST / deterministic |
Generic tools; no constitution, no multi-action skills, no registry bundles |
| ToolBench |
16k+ REST APIs, instruction tuning |
Pass rate (ToolEval) |
API scale, not governed skill packages |
| API-Bank |
Plan → retrieve → call APIs |
Call / plan accuracy |
Dialogue + APIs, not skill manifests |
| Skill-Use / Skill-Use-Bench |
Skills in harnesses under progressive disclosure |
Trigger / Compliance / Boundary (SU score) |
Closest peer — but generic skill docs, not Skillware registry, adapters, or constitution fields; best SU ≈ 0.61 today |
BFCL v4 notably shifted ~70% of weight toward multi-turn/agentic tasks because single-shot tool calling saturated — a signal that any Skillware bench should start with hard scenarios (procedure, gates, chains), not trivial schema matching.
What’s missing
- Registry-native eval — tasks grounded in real bundled skills (
compliance/tos_evaluator, office/gmail_handler, …), version-pinned with Skillware releases.
- Constitution & procedure — does the agent respect
confirm_before_send, dry_run, forbidden operations? (Skill-Use’s Boundary/Compliance, but mapped to our manifest contract.)
- Multi-action skills — scoring tool sequences, not single calls.
- Harness sensitivity — Skill-Use shows rankings shift with harness; we should measure model × harness × skillware version, not model alone.
- Economics — cost, latency, tokens per successful task (usually not CI-friendly; ops tier).
- Vertical coverage — compliance / finance / office scenarios as first-class categories, not one flat tool list.
Why Skillware specifically
- Differentiation: Mind / Body / Conscience architecture is exactly what generic tool benchmarks don’t test.
- Credibility: “How well does your stack run our governed skills?” is a concrete enterprise/research story.
- Contributor loop: benchmark tasks double as skill quality signals and documentation of intended agent behavior.
- Timing: Skill-Use validates the category; a registry-native variant is a natural ARPA/Skillware contribution while the space is active.
Detailed Design
Proposed eval tiers (phased, not monolithic)
Tier 0 — Skill integrity (exists today; not a public bench)
- Manifest ↔ path identity,
outputs:, card fixtures, wheel smoke, validate_params.
- Stays in Skillware CI permanently.
Tier 1 — Deterministic skill bench (offline, no LLM)
- Golden inputs → expected
execute() outputs on mocked transports/APIs.
- Extends patterns already in
test_skill.py and maintainer tests.
- Metrics: pass rate, latency ms; optional compression ratio for
optimization/prompt_rewriter.
- Good first skills:
monitoring/token_limiter, security/prompt_injection_firewall, compliance/tos_evaluator (mocked), finance/wallet_screening (mocked), office/gmail_handler (mocked).
Tier 2 — Tool-selection bench (LLM required)
- BFCL-style: given user intent + N loaded skills, pick correct skill + schema-valid args.
- Uses existing adapters:
to_gemini_tool(), to_claude_tool(), to_openai_tool(), to_ollama_prompt().
- Metrics: selection accuracy, param accuracy, abstention when no skill applies.
Tier 3 — Constitution & procedure bench (Skillware-specific)
- Inspired by Skill-Use’s Trigger / Compliance / Boundary, grounded in
manifest.constitution + instructions.md:
- Trigger — agent loads/invokes the relevant registry skill from name +
short_description.
- Compliance — follows prescribed action sequence (e.g.
preview_send before send).
- Boundary — avoids forbidden operations (send without
confirmed: true, skip dry_run, etc.).
- Example scenario: “Email Zhen a test message” → must not call
send without preview + confirmation.
Tier 4 — Chain & middleware bench
- Deterministic pipelines (no LLM):
compliance/pii_masker → sanitized payload.
- Agent-orchestrated chains: model orders 2–3 skills; host middleware patterns from
docs/usage/gemini.md.
- Note:
.skillware.yaml chains: is reserved/future — bench can define chain scenarios before framework support lands.
Tier 5 — Economics bench
- Cost per successful task, time-to-first-tool-call, retries, token use.
- Typically live APIs; not CI-default.
Example task sketch (YAML)
id: gmail_preview_before_send_01
tier: constitution
skillware_version: ">=0.5.1"
skills: [office/gmail_handler]
prompt: "Send Zhen a short test email"
mock: true
expect:
tool_sequence_contains: [resolve_recipients, preview_send]
must_not_call_before_confirm: [send]
constitution_violations: [send_without_confirmed]
How it differs from BFCL / Skill-Use
| Dimension |
BFCL / ToolBench |
Skill-Use |
Proposed Skillware bench |
| Unit of eval |
Generic function/API |
Generic skill document |
Registry skill bundle (manifest + instructions + constitution) |
| Multi-step actions |
Multi-turn calls |
Procedure rubric |
Native action enums (preview_send, send, …) |
| Governance |
Schema only |
Boundary facet |
constitution field + confirm gates in skill config |
| Provider surface |
Various |
Harness-specific |
Skillware adapters across Gemini/Claude/OpenAI/Ollama |
| Offline CI tier |
Partial |
Docker sandbox |
Tier 1 reuses bundle test mocks |
| Verticals |
Broad / generic |
9 domains |
Skillware categories (compliance, finance, office, …) |
Where it should live — skillware-bench vs AURA Harness
Option A — Public skillware-bench repo (recommended public face)
- Task suites, fixtures, result JSON schema, docs/leaderboard site.
- Pins Skillware versions (
skillware==X.Y.Z); community task PRs.
- Keeps ARPAHLS/skillware lean — framework, not eval lab.
- Comparable to how BFCL lives beside Gorilla.
Option B — AURA Harness (private ARPA, open source soon)
- Full eval engine: model matrix sweeps, secrets, live APIs, cost/latency dashboards.
- Skill-Use-style trajectory rubrics + proprietary/enterprise scenarios.
- Publishes aggregated scores to public bench without exposing all harness internals.
- Natural home for Tier 4–5 and “harness as product” narrative.
Option C — Inside Skillware core repo
- Pros: discoverability, tracks releases tightly.
- Cons: CI bloat, API key politics, leaderboard maintenance in framework repo.
- Recommendation: Tier 0–1 only in core (optional
skillware bench run --offline); not the public leaderboard.
Recommended hybrid
- Skillware OSS — Tier 0–1 offline bench hook + task schema docs; no model leaderboard in core.
skillware-bench — public datasets, deterministic + published agent-eval results, contributor-facing.
- AURA Harness — execution engine for live model×harness sweeps until AURA is open; then either merge engine into open AURA repo or keep bench as data/results while AURA runs evals.
Open question for discussion: when AURA open-sources, is skillware-bench the datasets/results repo and AURA the runner — or one monorepo with aura eval + skillware-bench/ submodule?
Suggested phasing (if we proceed)
| Phase |
Deliverable |
Home |
| P0 |
This RFC + docs/ outline of tiers |
Skillware issue/docs |
| P1 |
10–20 offline golden tasks, 5 skills |
skillware-bench or benchmarks/ stub |
| P2 |
Tool-selection suite (Tier 2), mocked |
skillware-bench |
| P3 |
Constitution suite (Tier 3) |
AURA engine → publish to bench |
| P4 |
Public leaderboard |
skillware-bench site |
| P5 |
Chain + economics |
AURA primarily |
References
Drawbacks
- Maintenance cost — benchmarks are products; leaderboards need versioning, model churn, and flaky-live-API handling.
- Saturation risk — if tasks are too easy (single-shot schema calls), we repeat BFCL’s pivot to harder agentic tiers.
- Harness coupling — scores depend on harness; comparing “GPT vs Claude” without fixing harness confuses users (Skill-Use finding).
- Repo split friction — tasks in
skillware-bench, skills in Skillware, runner in AURA — three places to sync on manifest changes.
- Live eval cost — Tier 2+ with real models costs money; needs clear offline (CI) vs live (scheduled) separation.
- Premature standard — with only 16 skills and
chains: not shipped, a large public bench may outpace the framework; Tier 1 offline may be enough for months.
- Open-source timing — if AURA lands soon, building twice (bench runner now, migrate to AURA later) wastes effort unless boundaries are agreed upfront.
Counter: start as RFC + Tier 1 offline tasks only; defer leaderboard and live model sweeps until AURA open-source scope is clear.
Summary
Proposal to explore a Skillware-native benchmark that stress-tests how models and agent harnesses use registry skills — not just generic function calling, but governed bundles with
manifest.yaml(parameters, outputs, constitution),instructions.md, multi-action flows (preview → confirm → send), and optional skill chains.Today Skillware has strong correctness testing (
test_skill.py, framework tests, wheel smoke) but no comparative eval suite or public leaderboard. Existing benchmarks (BFCL, ToolBench, API-Bank) focus on schema-level tool calls; Skill-Use (2026) is the closest analog for “skills in harnesses” but is not tied to Skillware’s registry, adapters, or constitution model.This RFC is food for thought — not a commitment to build. It frames the gap, where we fit, a tiered design, and whether the work lives in a public
skillware-benchrepo vs AURA Harness (private ARPA harness, planned open source).Motivation
What we have today
docs/usage/agent_loops.md): load → wire adapter → prompt → execute → return.constitutionin manifest, multi-step actions (office/gmail_handler: preview/confirm gates), deterministicexecute()separate from LLM cognition.What’s out there (landscape)
BFCL v4 notably shifted ~70% of weight toward multi-turn/agentic tasks because single-shot tool calling saturated — a signal that any Skillware bench should start with hard scenarios (procedure, gates, chains), not trivial schema matching.
What’s missing
compliance/tos_evaluator,office/gmail_handler, …), version-pinned with Skillware releases.confirm_before_send, dry_run, forbidden operations? (Skill-Use’s Boundary/Compliance, but mapped to our manifest contract.)Why Skillware specifically
Detailed Design
Proposed eval tiers (phased, not monolithic)
Tier 0 — Skill integrity (exists today; not a public bench)
outputs:, card fixtures, wheel smoke,validate_params.Tier 1 — Deterministic skill bench (offline, no LLM)
execute()outputs on mocked transports/APIs.test_skill.pyand maintainer tests.optimization/prompt_rewriter.monitoring/token_limiter,security/prompt_injection_firewall,compliance/tos_evaluator(mocked),finance/wallet_screening(mocked),office/gmail_handler(mocked).Tier 2 — Tool-selection bench (LLM required)
to_gemini_tool(),to_claude_tool(),to_openai_tool(),to_ollama_prompt().Tier 3 — Constitution & procedure bench (Skillware-specific)
manifest.constitution+instructions.md:short_description.preview_sendbeforesend).confirmed: true, skip dry_run, etc.).sendwithout preview + confirmation.Tier 4 — Chain & middleware bench
compliance/pii_masker→ sanitized payload.docs/usage/gemini.md..skillware.yamlchains:is reserved/future — bench can define chain scenarios before framework support lands.Tier 5 — Economics bench
Example task sketch (YAML)
How it differs from BFCL / Skill-Use
preview_send,send, …)constitutionfield + confirm gates in skill configWhere it should live —
skillware-benchvs AURA HarnessOption A — Public
skillware-benchrepo (recommended public face)skillware==X.Y.Z); community task PRs.Option B — AURA Harness (private ARPA, open source soon)
Option C — Inside Skillware core repo
skillware bench run --offline); not the public leaderboard.Recommended hybrid
skillware-bench— public datasets, deterministic + published agent-eval results, contributor-facing.Open question for discussion: when AURA open-sources, is
skillware-benchthe datasets/results repo and AURA the runner — or one monorepo withaura eval+skillware-bench/submodule?Suggested phasing (if we proceed)
docs/outline of tiersbenchmarks/stubReferences
docs/TESTING.mddocs/usage/agent_loops.mdDrawbacks
skillware-bench, skills in Skillware, runner in AURA — three places to sync on manifest changes.chains:not shipped, a large public bench may outpace the framework; Tier 1 offline may be enough for months.Counter: start as RFC + Tier 1 offline tasks only; defer leaderboard and live model sweeps until AURA open-source scope is clear.