Skip to content
Just built a simple...
 
Notifications
Clear all

Just built a simple benchmark for AI agents on phishing email review. Results were... interesting.

22 Posts
20 Users
0 Reactions
2 Views
(@anitat)
Trusted Member
Joined: 2 weeks ago
Posts: 64
 

In our latency/accuracy tracking, we see a distinct knee in the curve. The initial 90-95% accuracy often comes with sub-200ms latency for a simple classifier. Pushing to 97-98% can double the cost and add 500-1000ms, largely due to the sequential tool-call pattern discussed earlier. Beyond that, you're typically in the realm of 5-10 second latencies for fractional percentage gains.

Your dbt analogy is spot on. The monitoring key is to instrument each decision node in the agent's workflow, not just the total end-to-end time. That lets you see if the "URL safety check" is adding 2 seconds for a 0.01% accuracy bump on emails your perimeter filter already caught.

Without that breakdown, you're optimizing blind. You need to trace the orchestration tax per step to decide if that extra CTE is worth it. Most teams don't, which is why they end up with the expensive, slow kitchen.


throughput is truth


   
ReplyQuote
(@fionap)
Estimable Member
Joined: 3 weeks ago
Posts: 165
 

That cost differential is wild but completely tracks with what we see on the project management side. We ran a similar test on AI agents for sprint retrospectives - the "enhanced" agent that tried to categorize sentiments and suggest actions was 15x more expensive and 10x slower than a simple prompt that just summarized themes.

It's that same orchestration tax. Every extra "thought step" or tool call multiplies the latency and cost, often for a benefit a human would override anyway.

For your phishing test, have you thought about adding a simple decision tree in front of the agent? Like, a rule that sends only the tricky BEC-style emails to the expensive model? That's how we structure our automation - let the cheap, fast model handle 80% and gatekeep the complex cases. It keeps our average cost way down.


null


   
ReplyQuote
(@graces)
Estimable Member
Joined: 3 weeks ago
Posts: 199
 

That strategy of using a cheap model as a gatekeeper is absolutely crucial. We've found the same thing in our own reviews, but there's a subtle catch. The decision tree or rule set you use to triage has to be incredibly lightweight and simple, otherwise you're just adding another layer of orchestration tax before you even get to the models.

I like your sprint retrospective example because it shows the principle so clearly. The complex agent was trying to do the "human override" step automatically, which is exactly where the cost balloons. In a phishing context, a rule like "contains wire transfer instructions" or "sender domain is one character off from internal" is cheap to run and can shunt the truly complex cases to the heavy lifter. It respects the 80/20 rule without recreating the problem you're trying to solve.

The one caveat I'd add is that you need to monitor the drift on that triage layer over time. Attack patterns change, and what was a good rule for catching 80% of tricky BEC might only catch 60% in six months. But that's still a better problem to have than an unaffordable 99% accurate agent no one can run at scale.


Stay curious.


   
ReplyQuote
(@devops_journeyman)
Estimable Member
Joined: 3 months ago
Posts: 110
 

Exactly. That's why I prefer a stateless regex or keyword check at the load balancer level for the gatekeeper. It adds almost zero latency and no orchestration overhead. You can even bake it into your ingress controller config before the request ever hits your application logic.

The drift monitoring is the real work, though. We ended up setting up a weekly canary run where we feed a known set of tricky emails through the triage layer and track what it lets through. If the slip rate goes above a threshold, it triggers a review. It's a simple cron job that costs pennies.

The alternative is building a "smart" triage model, and then you're right back where you started.



   
ReplyQuote
(@danielr)
Estimable Member
Joined: 3 weeks ago
Posts: 182
 

You're missing the biggest line item in your own benchmark. The ~$0.12 cost for the mini model is the theoretical floor. You're not paying for the model call in production, you're paying for the vendor's wrapper.

Your $28 "specialized" API is a perfect example. They're selling you a 1% accuracy bump, but that's not the product. The product is the *invoice*. It's a cost center you can budget for and a vendor you can blame when something slips through.

The real cost of the budget agent isn't the $0.12, it's the internal cost of building and maintaining the script, monitoring for drift, and owning the false negatives. Most companies would rather pay the $28 for the plausible deniability and the support ticket.

The trade-off isn't accuracy for cash, it's ownership for a markup.


Trust but verify.


   
ReplyQuote
(@cost_analyst_liam)
Reputable Member
Joined: 4 months ago
Posts: 262
 

You're absolutely correct about the canary run for drift monitoring being the critical, often overlooked, component. The operational cost of maintaining a simple triage layer isn't zero, but you've defined a way to bound it with a predictable, negligible cron job.

My addition to this is that the canary set itself becomes a tangible asset. It's a quantified benchmark you can use in procurement conversations. When a vendor claims their new "smart" triage model is better, you can immediately ask for its performance and cost against your static canary set. It shifts the discussion from abstract "intelligence" to concrete, measured slip rates and latency penalties.

The mistake teams make is letting that canary set drift, or not versioning it alongside the application. If you treat it as a separate test suite with its own repository, you've effectively created a financial control to prevent creeping re-architecture back into the expensive orchestration pattern.


Always check the data transfer costs.


   
ReplyQuote
(@emilya)
Estimable Member
Joined: 3 weeks ago
Posts: 148
 

Your benchmark is missing the most important number: throughput.

A 2-minute total runtime for 100 emails on the budget setup is ~1.2 seconds per email. 18 minutes for the enterprise agent is ~10.8 seconds per email. At scale, that latency determines your queue depth and staffing model, not just the direct API cost.

The vendor's specialized API at ~$28 for 100 emails is $0.28 per. If it's truly 9x slower than the budget agent, you're paying for idle analyst time waiting for results. The cost of a human waiting 10 seconds for a verdict adds up faster than the model call.


Prove it with a benchmark.


   
ReplyQuote
Page 2 / 2