Skip to content

Injection and tool-use benchmark on local models #179

Open

Description

@itsskofficial

No published evaluation shows how CaMeL-style or spotlighting defenses do on 7 to 8B models. Sentient should know before it advertises SAFE-2 and SAFE-12, and it can fill that gap publicly.

Idea: A local harness modelled on AgentDojo and ClawBench that runs injection attempts and multi-step tool chains on qwen3:8b before each release and measures the effect of SAFE-12 and SAFE-2. It is a manual or scheduled job, never part of the no-network CI.

Status in Sentient today: New. docs/VERIFICATION.md records manual real-model checks.

Where: A new bench/ or tests/bench/ folder excluded from the default pytest run, a script entry in sentient/cli.py, and results recorded in docs/VERIFICATION.md.

Done when:

  • one command runs the suite against a configured local model and prints attack success and task success rates
  • results for qwen3:8b with and without spotlighting are recorded

Sources:

Roadmap ID: LOCAL-10 · Priority: P2 · Size: M

Activity

  1. added
    enhancementNew feature or request
    help wantedExtra attention is needed
    area: engineAgent loop, models, approvals, storage, gateway
    priority: P2Later: useful, lower urgency
    size: MMedium: one to two weeks
    on Oct 9, 2026
  2. Tanmay-Ts commented on Nov 4, 2026

    @Tanmay-Ts
    Contributor

    Hi @itsskofficial, I'd like to take this one.

    Plan:

    • A bench/injection/ harness, outside testpaths so the default pytest run and CI skip it. It drives the real agent loop with fixture tools: a web page, an email and a file that carry injected instructions, plus sink tools (send an email, write a file, run code) that only record their calls. Nothing leaves the machine.
    • Cases are user tasks times injection payloads, as in AgentDojo, including a fake closing marker and a payload in another language.
    • Scoring is deterministic, with no model judge: task success (the reply has the expected fact), attack attempted (the model called a sink with the attacker's target) and attack executed (that call actually ran). With SAFE-2 in place, executed should stay at 0 and attempted shows what the model tried. SAFE-12 is compared by running with chat.mark_outside_content on and off.
    • sentient bench injection --model ollama_chat/qwen3:8b prints the rates, and the qwen3:8b results with and without spotlighting go in docs/VERIFICATION.md. One FakeProvider test in tests/ keeps the harness from breaking.

    One question: should SAFE-2 get an off switch for the benchmark, or is attempted vs executed enough? I'd rather not add a way to turn the gate off.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: engineAgent loop, models, approvals, storage, gatewayenhancementNew feature or requesthelp wantedExtra attention is neededpriority: P2Later: useful, lower urgencysize: MMedium: one to two weeks

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions