cd /news/ai-agents/cisco-s-project-quarry-explained-how… · home › topics › ai-agents › article
[ARTICLE · art-159646] src=theainewsreport.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Cisco's Project Quarry explained: how its agent rules work, and what the Claude Code plugin does and does not watch

Cisco open-sourced Project Quarry on October 28, 2026, an Apache 2.0 Python engine that scans recorded AI agent conversations against rules compiled into finite-state machines, flagging ordered behavior such as reading a secrets file and then calling an outside host. The release includes an MCP server, quarry-mcp, with five read-only tools (quarry_reference, quarry_compile, quarry_decision_tree, quarry_decision_flows, quarry_scan) plus two skills for Claude Code and Codex, but its PreToolUse hook fires only on Quarry's own compile and scan tools, so installing the plugin does not block or monitor an agent's real actions. The repository, cisco-ai-defense/project-quarry, supports Python 3.11 to 3.13 and its README states Quarry is in alpha with rule syntax that may change before v1.0.0.

by read5 min views3 publishedOct 28, 2026
Cisco's Project Quarry explained: how its agent rules work, and what the Claude Code plugin does and does not watch
Image: Theainewsreport (auto-discovered)

On October 28, 2026, Cisco open-sourced Project Quarry, a rule language for spotting risky AI agent behavior. Coverage says it ships a plugin for Claude Code and Codex. We read the repository to see what a rule checks, what the plugin installs, and whether it guards a live agent.

This explains reporting by

Cisco, "Project Quarry" by Adam Swanda, Ravikumar Balakrishnan, Amy Chang and Konstantin Berlin (October 28, 2026). Read the original first:

https://blogs.cisco.com/ai/project-quarry-agent-security-detections

In one minute #

  • Quarry is an Apache 2.0 Python engine that scans a recorded agent conversation against rules, a bit like Snort or YARA for agent traces.
  • A rule can require order: read a secrets file, then call an outside host. Quarry compiles each rule to a state machine, so read-then-send matches and send-then-read does not.
  • The Claude Code and Codex plugin gives your agent tools to look up syntax, compile rules and scan conversation JSON. Its hooks run only on Quarry's own tools.
  • So installing the plugin does not block or watch your agent's real actions. You feed Quarry the transcripts you want checked.
  • Quarry is alpha, and its README says the rule syntax may change before 1.0.

What Cisco released #

Cisco's AI Defense team describes Quarry as a neurosymbolic rule language: exact rule checks, plus optional calls to a classifier or LLM judge for questions rules cannot answer. It covers single and multi-turn chats, tool use, MCP calls and multimodal inputs, per Cisco's post.

The repository, cisco-ai-defense/project-quarry, is Apache 2.0 licensed, was created on October 27, 2026, and supports Python 3.11 to 3.13. Its README says Quarry is in alpha and the syntax may change before v1.0.0.

Amy Chang, who leads AI threat research at Cisco, told The Register the gap Quarry fills is context: one tool call can look fine until the next step sends its output to an attacker's server.

How a rule works #

This is the read-then-send example from the repo's own docs:

rule "Flow After"
condition:
    any http in get_tool_calls("http_request") where
        http.arguments.url contains "evil-corp.io"
    after
    any read in get_tool_calls("read_file") where
        read.arguments.path contains_any [".env", "credentials", "secrets"]

Quarry turns each rule into a finite-state machine and walks the conversation in order. In the repo's matching sample, the agent reads /app/.env and later calls a backup URL on that host, so the rule fires. The same calls in reverse order do not.

A match comes with a witness, the smallest set of events Quarry could find that still matches. The docs are careful about what that means: the calls happened in that order with those arguments. It is not proof that file contents were sent, or of what the agent intended.

Scans also report a completion state. A timeout or bad input gives an incomplete result, never a clean pass. The CLI exits 0 for a clean scan, 1 for a match and 2 for an invalid or incomplete one.

What the Claude Code plugin installs #

Cisco's post and The Register both mention a plugin for Claude Code and Codex. Here is what the repo's plugin files add:

What installing the Quarry plugin adds (from the repo, October 28, 2026)
MCP server   quarry-mcp, started with uv, five read-only tools:
             quarry_reference, quarry_compile, quarry_decision_tree,
             quarry_decision_flows, quarry_scan
Skills       skills/quarry-policy, skills/detection-rules
Hooks        SessionStart: adds file-marker instructions
             PreToolUse: only on Quarry's own compile and scan tools,
             swaps quarry+file:// markers for file contents
Not added    no hook on your agent's Bash, Edit, WebFetch or MCP calls

The plugin's own docs call the five tools read-only, and quarry_scan scans conversation JSON you hand it. It does not read files, sessions or stored records by itself. The PreToolUse hook matches only Quarry's own server names and resolves file paths you name, inside your workspace.

That makes the plugin a rule-writing assistant: your agent helps you write a rule, compile it and test it on sample transcripts. It is not a guard on the agent you are running. To check a live agent, you would export its transcripts, or call Quarry's Python API from your own pipeline, and act on the results yourself.

Where your data goes #

Local rules run entirely on your machine. Rules that ask a model a question send conversation text to whatever model you configure in ~/.quarry/plugin.yaml, routed through LiteLLM with that provider's credentials.

If no model is set, model-backed rules report that configuration is missing and the local rules still run. The docs also warn that host debug traces can include the rewritten file contents, so leave debug off for sensitive transcripts.

The example config loads 14 local rules. Four of them use keyword stubs in place of a model, and the repo says those are for tests, not production decisions.

Who is affected #

Case Status
Teams logging agent transcripts Can scan them with Quarry rules today, offline, with local rules only.
Claude Code and Codex users who install the plugin Get rule-writing and scanning tools. No live monitoring of the agent's own tool calls.
Anyone using model-backed rules Conversation text goes to the model provider you configure.

What to do #

  • If you want to try it, start with local rules on a few exported agent transcripts and check both a matching and a clean sample.
  • Write one read-then-send rule for your own secret paths and outbound hosts. That pattern is what the tool is built for.
  • Treat a match as a lead to review, not as proof of a data leak.
  • Do not count the plugin as a runtime guard. Keep your egress rules and permission prompts.

What is still unknown #

  • Cisco's post mentions a rule starter pack. We found example rules in the repo but did not confirm which set Cisco means.
  • How well the rules catch real attacks. We found no published test on real incident data, and Cisco told The Register it had not run Quarry on the OpenAI Hugging Face incident records.
  • We read the repo but did not install or run Quarry. Everything here comes from its docs and config files as of October 28.
  • Cisco's post links a second repository, cisco-aispg/augur-dsl, which returned Not Found from GitHub's API when we checked.

Sources #

AI News Report· every headline, every morning.

── more in #ai-agents 4 stories · sorted by recency
── more on @cisco 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/cisco-s-project-quar…] indexed:0 read:5min 2026-10-28 · —