Cisco AI Defense skill scanner: evaluation results

What changes when the LLM judge and the System One model are switched on.

Experiment programme

The goal of this half is to find out what works, not to ship a subsystem. Each experiment states a question and a decision rule, and a negative result is a result.

Answers so far

E1

What fraction of deterministic findings are actually real?

Two adjudicators from different vendors differ by roughly fivefold with non-overlapping intervals, and chance-corrected agreement is near zero, so no single model can serve as the arbiter.

Primary judged real3.7%
Independent judged real17.1%
Raw agreement84.1%
Chance-corrected agreement0.186
Findings adjudicated82

The corpus is unlabeled real-world content, so this estimates a rate rather than establishing truth.

E3

Does one batched request per skill match one request per finding?

The batched form reproduces the aggregate rate at a third of the requests, but agrees with the per-finding arm no better than chance on which findings are real. Sound for an estimate, unsound for a per-finding suppression decision.

Requests30 against 82
Fewer requests63.4%
Batched real rate3.7%
Agreement with per-finding-0.038
E4

Which links in the cascade earn their cost?

The full chain of rules, System One model and judge scores highest on both lenses, but the judge buys its recall with an order-of-magnitude rise in false positives. Stopping after the System One model retains almost all of the quality at a fraction of the false-positive rate, which is the better trade when most content is legitimate. The System One model also absorbs some of the judge's calls.

Rules alone, any-intervention F148.9%
Rules then System One model, F177.1%
Full three-tier chain, F181.5%
Rules then System One model, false-positive rate2.0%
Full three-tier chain, false-positive rate22.2%
Quality retained by stopping early95%
False-positive rate retained9%

Scored on 400 malicious and 400 benign packages drawn from the whole snapshot, so these are not directly comparable to the published test-partition figures.

E7

Can false positives be removed by gating on the model's own confidence?

No. The disposition format already produces no false positives, so there is nothing to gate, and on the eight-probe format no confidence floor removes a false positive without also losing a true detection. The model's confidence does not separate its own mistakes.

Best zero-loss floor0.00
False positives removed0
Eight-probe false-positive rate22.4%
E8

Does telling the model to judge by detected content type beat a generic prompt?

Yes. Naming the instruction surface explicitly and directing the model to judge each file by its detected content type rather than its name gave the best any-intervention F1 and the highest recall, at no cost to precision.

Any-intervention F1, I065.7%
Any-intervention F1, I364.4%
Any-intervention F1, I4_type_aware69.7%
Best variantI4_type_aware
Its recall53.5%
Its false-positive rate0.0%

The generic variant still wins on the block-only lens, because it blocks where the others confirm.

E9

Does the self-hosted System One model match the hosted one?

Not answered, and the reason is infrastructure rather than the model. The self-hosted model does speak the same protocol, and on a clear case it agreed with the hosted one at lower confidence. But a full sweep returned usable answers for only a sixth of requests, and a single real request later timed out entirely at two minutes. The serving process was also replaced partway through by a different one on the same ports. Every usable answer was 'allow', which does not match the hosted model's behaviour on the same packages and is a further sign the deployment rather than the model was being measured. Publishing any figure from that would describe the machine, so none is published.

Requests attempted800
Usable answers134 (17%)
Provider failures666 (83%)
Median latency of a usable answer8.6 seconds
A single 13 KB request, latertimed out at 120 seconds
Hosted model on a clear caseblock at 0.91 confidence
Self-hosted model on the same caseblock at 0.58 confidence

Needs an uncontended machine, or coordination with whoever owns the work on that box. Nothing there was stopped or reconfigured to make room.

E10

Does remembering a decision save work on a re-scan?

excluding the line number reuses 6.8 times more decisions than the existing identity, but still loses a substantial minority of decisions, so memory reduces judge calls without eliminating re-adjudication

Existing identity reuse after edits8.8%
Drift-tolerant fingerprint reuse59.5%
Identical re-scan reuse100.0%
Skills compared27

a five-line header inserted in every text file plus re-indentation of every line, which is more aggressive than typical churn

E11

Can a dismissal be generalised into a safe suppression rule?

Rarely, at this granularity. Most candidates would have silenced real detections: replaying them over a labelled population rejected the large majority for suppressing findings on malicious packages at HIGH or CRITICAL severity. Only a small fraction of benign findings can be suppressed safely by rule and file role, so useful generalisation needs finer typed facts than that.

Candidates considered35
Accepted1
Rejected for touching protected findings24
Benign findings safely suppressible0.8%
Protected findings suppressed0

Shadow-mode proposals only. Nothing is applied; every entry goes to human review.

E12

Can an organisation express a policy the generic rules cannot?

Yes. Every other domain control is an allowlist that demotes; a denied-destination section was added that promotes instead, matching on the registrable domain at label boundaries so a lookalike domain is not flagged. Asked to generalise one observed host, the model widened it to the wildcard form, named the owning entity, and identified a sibling domain the same entity owns that a naive registrable-domain extraction would have missed.

Observed hostapi.paloalto.com
Generalised entry*.paloalto.com
Sibling domain foundpaloaltonetworks.com

Inert unless an organisation configures it, so the default scan is unchanged. Proposals go to review, never applied silently.

E13

Which model decisions deserve to become deterministic rules?

A large share of what the model confidently blocks has no matching rule, so the same judgement is re-derived on every call. On the disposition format every single such case is genuinely malicious, which makes it a clean rule-authoring queue.

Confident blocks considered80
Blocks the rules allowed33
Share the rules missed41.2%
Malicious share of the queue100.0%

Candidates and evidence only. Rules stay human-authored.

E14

Can the policy be fitted automatically without losing a detection?

Barely. Only one single-rule change both improved F1 and left every package caught on a HIGH or CRITICAL malicious finding still caught, and the gain was within rounding. Meanwhile a large share of the tempting changes would have dropped a real detection, which is exactly the trade a tuner optimising F1 alone would have made.

Baseline F156.5%
Tuned F156.7%
Change in F1+0.1 points
Changes examined70
Changes accepted1
Rejected for losing a detection28

Proposed diff only. Nothing is applied, and every line carries its measured effect.

E15

Does a stateful scanner work, and is it safe?

It works, and the first version was unsafe. A drift-tolerant fingerprint means one dismissal generalises across the corpus, which is the point of it: a bounded set of model dismissals hid most findings on a re-scan. But unrestricted, that generalisation also silenced dozens of HIGH and CRITICAL detections on malicious packages. Adding a ceiling, so a model dismissal can never suppress a high-severity finding while a human review still can, keeps almost all of the saving and loses none of those detections.

Findings before958
Findings after reuse215
Decision reuse rate100%
Findings suppressed743
High-severity detections lost, before the ceiling56
High-severity detections lost, after the ceiling0
Empty store leaves output unchangedyes

Adjudications are model-made and labelled as such; none is ground truth.

E16

How far must two judged arms differ before the difference is real?

Further than most of the differences worth arguing about. Repeating one configuration over the same packages changed the package verdict on a substantial minority of them, almost always between allowing and asking for review. The deterministic core did not move at all, so the variation is the model rather than the harness. Any gap between two judged arms smaller than this cannot be distinguished from run-to-run noise, which is what makes the meta-judge's apparent effect indistinguishable from nothing.

Deterministic core, verdicts changed0/200
Core plus judge, verdicts changed28/200
Noise floor14.0%
Repeats5
Most common changeallow to confirm

Temperature zero is not determinism. A difference between two judged arms smaller than the flip rate here cannot be distinguished from run-to-run variation.

OpenSkillRisk

What does the judge do on a corpus built to separate clear risk from contextual risk?

It closes almost the whole gap on the clear cases and behaves as it should on the ambiguous ones. On skills the corpus authors labelled obviously malicious, the rules caught under a third and the judge caught every one. On skills labelled contextually risky, where the right answer genuinely depends on context, it caught a large majority but not all, which is the discrimination you would want rather than a flat improvement.

Obviously malicious skills160
Rules alone30.0%
Rules plus judge100.0%
Contextually risky skills214
Rules alone, contextual32.7%
Rules plus judge, contextual77.1%

Both groups are positive-risk, so this corpus supports a detection rate and not a false-positive rate. Its licence permits exactly that use.

HarmfulSkillBench

What does the judge do on a corpus the rules almost entirely miss?

It finds most of what the rules cannot see. The deterministic core flagged a few percent of these skills, matching the figure published for it, and adding the judge raised detection more than tenfold. This corpus is the clearest case for the judge earning its cost, because the rules have almost no purchase on it at all.

Skills200
Rules alone, detection4.0%
Rules plus judge, detection56.0%
Rules alone, block rate3.5%
Rules plus judge, block rate38.0%

Its licence permits a positive-risk detection diagnostic only; no F1 or false-positive claim.

E1: what fraction of deterministic findings are actually real?

This runs first because every later number is read against it. Findings from real-world skills are stratified by rule and severity, then adjudicated by two models from different vendors. The corpus is unlabeled, so this estimates a rate and reports its own uncertainty rather than claiming ground truth, and agreement between two models bounds trust rather than establishing accuracy.

n/a
Deterministic findings collected
n/a
Findings adjudicated
n/a
Rule and severity strata
0.000
Agreement, chance-corrected
AdjudicatorUsableErrorsUncertainJudged real95% interval
primaryn/an/an/an/an/a
independentn/an/an/an/an/a

The two adjudicators disagreed on 0 findings. Those form the ranked backlog for human review; no model verdict is treated as truth.

E3: does one batched request per skill match one per finding?

Sending every finding for a skill in a single request trades cross-finding context, which should help, against attention dilution, which should hurt. It also turns N requests per skill into one, so the answer decides the cost of the whole tier.

The E3 report is not present in this build, so nothing is shown for it.

Every experiment and where it stands

ExperimentQuestionStatus
E1 finding realityWhat fraction of deterministic findings are actually real?answered above
E2 packing ladderWhole record, priority ordered, or candidate centric?reported on the cascade page
E3 all findings in one callIs one batched request per skill as good as one per finding?answered above
E4 cascade compositionWhich links in the chain earn their cost?answered above
E5 context ablationWhat is context actually worth?reported on the cascade page
E6 question formatDisposition and risk, or eight threat probes?reported on the cascade page
E7 conservatism calibrationCan false positives be removed by gating on confidence?answered above
E8 file-type promptingDoes judging by detected content type beat a generic prompt?answered above
E9 hosted against self-hostedDoes the self-hosted System One model match the hosted one?answered above
E10 statefulnessDoes a stored decision survive ordinary churn?answered above
E11 dismissal generalisationCan a dismissal become a safe suppression rule?answered above
E12 organisation contextCan an organisation express a policy the rules cannot?answered above
E13 rule miningWhich model decisions deserve to become rules?answered above
E14 policy auto-tuningCan the policy be fitted without losing a detection?answered above
E15 stateful prototypeDoes a stateful scanner work, and is it safe?answered above
E16 stabilityHow far must two arms differ before the difference is real?answered above

The packing, context and question-format experiments are reported on the System One cascade page, because their results are the cascade tables themselves.