feat(benchmarks): add pinned external evaluation runner - #73
Open
VibhorGautam wants to merge 6 commits into
Open
feat(benchmarks): add pinned external evaluation runner#73VibhorGautam wants to merge 6 commits into
VibhorGautam wants to merge 6 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
what
adds a benchmark runner that sends pinned external payloads through the Python
Firewalland a live Go sidecarthe current runnable set is InjecAgent base and Lakera's public 8-case PINT format sample. InjecAgent tool outputs use
on_contextbecause v1 has noon_tool_result, PINT useson_prompt. each dataset runs scanner OFF, TF-IDF ON and MiniLM ONthe runner fetches only the selected dataset and license, checks pinned SHA256s, records the runner, ACF config, model and package versions, and writes full plus exact-overlap-excluded results. datasets and raw result JSON stay out of git
why
we didn't have a reproducible way to run external payloads through the actual SDK and sidecar path
the main split here is SDK semantic signals vs final enforced verdicts. the Go integration harness sends directly to the sidecar, so it can't measure the Python semantic scanner. this runner keeps the live sidecar path the same across all 3 modes and reports both the signals gained and whether the final verdict changed
current results
encoding_evasion,role_hijackandtool_abusereached the context hook without a sidecar weight or direct policy rulelimits
this is detector evaluation, not agent attack success rate
the public PINT file is only an 8-case format sample, not the full benchmark. the semantic library also names PINT as a source, so the overlap-excluded result is not a held-out set
on_contextis a proxy for injected tool output until ACF has anon_tool_resulthook. AgentDojo is pinned in the manifest but its framework attack extraction stays a follow-uptesting
go vetpassAI tool disclosure
Codex helped draft the runner and test scaffolding, and reviewed the provenance checks and report wording. I set the benchmark scope, hook mapping, contamination method and claim boundaries after the team discussion. The final branch was rerun locally in all 6 modes and checked against the raw outputs, outcome hashes, Go, OPA and Python tests. I understand the code and can defend the decisions in this PR