<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://theaq.blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://theaq.blog/" rel="alternate" type="text/html" /><updated>2026-09-06T10:16:49+00:00</updated><id>https://theaq.blog/feed.xml</id><title type="html">TheArtificialQ Blog</title><subtitle>Random notes from a Red Teamer</subtitle><entry><title type="html">Evaluating Muse Spark 1.3 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/09/06/evaluating-meta-muse-spark-1.3-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating Muse Spark 1.3 on Hack The Box Challenges" /><published>2026-09-06T09:15:41+00:00</published><updated>2026-09-06T09:15:41+00:00</updated><id>https://theaq.blog/2026/09/06/evaluating-meta-muse-spark-1.3-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/09/06/evaluating-meta-muse-spark-1.3-on-hack-the-box-challenges.html"><![CDATA[<p>The company-who-must-not-be-named released a new version of its Muse Spark model - <strong>Muse Spark 1.3</strong>. The <a href="https://research.meta.ai/blog/introducing-muse-spark-1-3">announcement claims</a> that this model should be more suitable for long-horizon tasks and should use approximately 20% fewer tool calls and 25% fewer tokens than <strong>Muse Spark 1.2</strong>. I <a href="/2026/08/17/solving-htb-challenges-with-meta-muse-spark-1.2.html">tested the 1.2 version</a> a few weeks ago, and I found it forgettable. So I was curious whether a gap of just one month between the two model releases could make any difference.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>Surprisingly, it turns out that you can do a lot in four weeks in terms of improving an LLM for solving HTB challenges. The new version achieved a much better score than its predecessor: 72.93% versus 50.41%. Its score is in the same range as those of <a href="/2026/08/10/solving-htb-challenges-with-moonshotai-kimi-k3.html">Kimi K3</a> (70.67%) and <a href="/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.6.html">Grok 4.6</a> (76.14%), both of which are great models.</p>

<p>The only issue is the median cost per challenge, which is better than the previous version ($0.476 vs $0.385), but still relatively high. You can use <a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html">GPT-5.6 Sol</a>, which has a much better benchmark score and a slightly lower cost (87.2% / $0.29), or my favorite, <a href="/2026/08/28/evaluating-z-ai-glm-5.3-flash-on-hack-the-box-challenges.html">GLM 5.3 Flash</a>, with a slightly higher score and a much lower cost (81.0% / $0.01).</p>

<p>So the new <strong>Muse Spark 1.3</strong> is not bad at all, but I don’t see any reason to switch to it from <strong>GPT-5.6 Sol</strong> or <strong>GLM 5.3 Flash</strong>.</p>

<hr />

<p><img src="/assets/images/meta-muse-spark-1.3-20260902-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/meta-muse-spark-1.3-20260902-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/meta-muse-spark-1.3-20260902-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 14</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 72.9%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">23</td>
      <td style="text-align: right">608</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.38</td>
      <td style="text-align: right">$13.64</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:08:05</td>
      <td style="text-align: right">02:41:53</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.60M</td>
      <td style="text-align: right">23.44M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.58M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">64</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">15</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">19.5</td>
      <td style="text-align: right">524</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">25</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">93.7%</td>
      <td style="text-align: right">97.8%</td>
      <td style="text-align: right">88.4%</td>
      <td style="text-align: right">43.7%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">18</td>
      <td style="text-align: right">11.5</td>
      <td style="text-align: right">42</td>
      <td style="text-align: right">73.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.17</td>
      <td style="text-align: right">$0.11</td>
      <td style="text-align: right">$0.98</td>
      <td style="text-align: right">$1.87</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:02:02</td>
      <td style="text-align: right">00:04:01</td>
      <td style="text-align: right">00:10:46</td>
      <td style="text-align: right">00:17:39</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.32M</td>
      <td style="text-align: right">0.12M</td>
      <td style="text-align: right">1.58M</td>
      <td style="text-align: right">3.18M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.04M</td>
      <td style="text-align: right">0.06M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">3.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">13.5</td>
      <td style="text-align: right">8.0</td>
      <td style="text-align: right">39.0</td>
      <td style="text-align: right">61.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">2.5</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[The company-who-must-not-be-named released a new version of its Muse Spark model - Muse Spark 1.3. The announcement claims that this model should be more suitable for long-horizon tasks and should use approximately 20% fewer tool calls and 25% fewer tokens than Muse Spark 1.2. I tested the 1.2 version a few weeks ago, and I found it forgettable. So I was curious whether a gap of just one month between the two model releases could make any difference.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating GLM 5.3 Flash on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/28/evaluating-z-ai-glm-5.3-flash-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating GLM 5.3 Flash on Hack The Box Challenges" /><published>2026-08-28T07:57:22+00:00</published><updated>2026-08-28T07:57:22+00:00</updated><id>https://theaq.blog/2026/08/28/evaluating-z-ai-glm-5.3-flash-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/28/evaluating-z-ai-glm-5.3-flash-on-hack-the-box-challenges.html"><![CDATA[<p>I had already evaluated <strong>GLM 5.3 Flash</strong> when Z.ai previewed it anonymously as the mysterious <a href="/2026/08/21/evaluating-stealth-ox-alpha-on-hack-the-box-challenges.html">Ox Alpha</a> on OpenRouter, and its performance was fantastic. The one thing I couldn’t measure was cost-effectiveness because the preview was free. Now that Z.ai has <a href="https://z.ai/blog/glm-5.3-flash">revealed Ox Alpha as GLM 5.3 Flash</a> and published its pricing, I could return to it and measure the final missing piece.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>My new test closely reproduced the earlier <strong>Ox Alpha</strong> result: 81.4% in the anonymous preview run and 81.0% after release. It means, that <strong>GLM 5.3 Flash</strong> has the second-highest score after <a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html">GPT-5.6 Sol</a> (87.2%). Both models correctly solved the same 15 out of 16 challenges. Flash’s lower score came from requiring more model steps on the solved challenges: its median was 24.5, compared with Sol’s 8.5.</p>

<p>Anyway, despite needing more steps and tokens, <strong>GLM 5.3 Flash’s</strong> median cost per challenge was about one-twentieth of <strong>GPT-5.6 Sol’s</strong> ($0.0140 vs. $0.2898). In this benchmark, that meant the same number of correct solves at a fraction of the measured cost. Flash was even cheaper than <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna.html">GPT-5.6 Luna</a>, whose median cost was $0.0181. As a side note, Flash was under a temporary 50% launch discount at the time of my test, so this should not be read as the permanent list-price ratio. But even at 100% of its price, it would still be very competitive.</p>

<p>At the moment, <strong>GLM 5.3 Flash</strong> has replaced <strong>GPT-5.6 Luna</strong> as my go-to model, not just for cybersecurity work. It was less step-efficient than Sol, but no other included model in this benchmark achieved both a higher score and a lower median cost.</p>

<h2 id="glm-53-flash-is-not-a-smaller-glm-53">GLM 5.3 Flash is not a smaller GLM 5.3</h2>

<p>One final note on this model’s name. <strong>GLM 5.3 Flash</strong> may sound like a smaller version of <a href="/2026/08/21/evaluating-z-ai-glm-5.3-on-hack-the-box-challenges.html">GLM 5.3</a>, but the two models have different origins. According to its <a href="https://huggingface.co/zai-org/GLM-5.3-Flash">official model card</a>, Flash is a 320B-total, 18B-active model trained from a new 30T-token multimodal base, with a new architecture combining sparse and linear attention. By contrast, <a href="https://z.ai/blog/glm-5.3">Z.ai says GLM 5.3</a> reuses the GLM 5.2 base and derives all its improvements from additional post-training. The published <a href="https://huggingface.co/zai-org/GLM-5.2">GLM 5.2 artifact</a> - the base reused by GLM 5.3 - is listed at 753B parameters. They are therefore separate branches of the GLM family, not full-size and compressed versions of the same model.</p>

<p>I tested <strong>GLM 5.3</strong> just a few days earlier, and it performed much worse in this benchmark: it scored 47.2% and solved 10 challenges, compared with Flash’s 81.0% and 15 solves. Its measured median cost was also $0.4915, compared with Flash’s $0.0140, so I’m not sure why Z.ai decided to use its brand for the new model. <strong>GLM 5.4 Flash</strong> would have made much more sense to me.</p>

<hr />

<p><img src="/assets/images/z-ai-glm-5.3-flash-20260826-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/z-ai-glm-5.3-flash-20260826-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/z-ai-glm-5.3-flash-20260826-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 15</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 1</li>
  <li><strong>Benchmark score:</strong> 81.0%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">24.5</td>
      <td style="text-align: right">507</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.01</td>
      <td style="text-align: right">$0.39</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:10:52</td>
      <td style="text-align: right">04:50:09</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.45M</td>
      <td style="text-align: right">12.73M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.50M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">29</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">80</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">22.0</td>
      <td style="text-align: right">481</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">94.1%</td>
      <td style="text-align: right">93.2%</td>
      <td style="text-align: right">89.8%</td>
      <td style="text-align: right">64.9%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">17.5</td>
      <td style="text-align: right">24</td>
      <td style="text-align: right">30</td>
      <td style="text-align: right">25</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.01</td>
      <td style="text-align: right">$0.01</td>
      <td style="text-align: right">$0.03</td>
      <td style="text-align: right">$0.03</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:06:07</td>
      <td style="text-align: right">00:10:52</td>
      <td style="text-align: right">00:18:19</td>
      <td style="text-align: right">00:25:38</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.32M</td>
      <td style="text-align: right">0.21M</td>
      <td style="text-align: right">0.86M</td>
      <td style="text-align: right">0.68M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.04M</td>
      <td style="text-align: right">0.03M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">2.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">2.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">19.5</td>
      <td style="text-align: right">20.0</td>
      <td style="text-align: right">29.5</td>
      <td style="text-align: right">27.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[I had already evaluated GLM 5.3 Flash when Z.ai previewed it anonymously as the mysterious Ox Alpha on OpenRouter, and its performance was fantastic. The one thing I couldn’t measure was cost-effectiveness because the preview was free. Now that Z.ai has revealed Ox Alpha as GLM 5.3 Flash and published its pricing, I could return to it and measure the final missing piece.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating MiniMax M3 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/25/evaluating-minimax-minimax-m3-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating MiniMax M3 on Hack The Box Challenges" /><published>2026-08-25T11:32:39+00:00</published><updated>2026-08-25T11:32:39+00:00</updated><id>https://theaq.blog/2026/08/25/evaluating-minimax-minimax-m3-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/25/evaluating-minimax-minimax-m3-on-hack-the-box-challenges.html"><![CDATA[<p>While we wait to see whether MiniMax releases its reported 2.7-trillion-parameter successor, <a href="https://www.theinformation.com/briefings/exclusive-chinas-minimax-plans-launch-2-7-trillion-parameter-model">known internally as <strong>MiniMax M3 Pro</strong> and potentially arriving as early as the third quarter</a>, I decided to return to <strong>MiniMax M3</strong>, released at the end of May, and run it through my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
. I know that M3 has many fans, but I had never used or tested it, so I wasn’t sure what to expect.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>After trying many LLMs on cybersecurity tasks, I have repeatedly seen non-frontier models fall into loops when you ask them to do something beyond their capabilities.</p>

<p>These loops can take two forms:</p>

<ul>
  <li>The model makes the exact same tool call, with the same arguments, over and over again.</li>
  <li>The model starts producing “never-ending” reasoning full of phrases such as <em>“Wait, let me re-read…”</em> and <em>“Actually, let me think about this differently”</em>, without making any visible progress.</li>
</ul>

<p>A clear example of repeated identical tool calls is <a href="/2026/08/18/evaluating-deepseek-deepseek-v4-pro-0813-on-hack-the-box-challenges.html">DeepSeek V4 Pro 0813</a>, which ended four of my 16 benchmark runs this way.</p>

<p>The second failure mode was more common. <a href="/2026/08/21/evaluating-z-ai-glm-5.3-on-hack-the-box-challenges.html">GLM 5.3</a> hit this issue in three of 16 runs. The absolute “champion” was <a href="/2026/08/18/evaluating-tencent-hy3-on-hack-the-box-challenges.html">Hy3</a>, which did so in nine of 16 runs.</p>

<p>Well, <strong>MiniMax M3</strong> is unfortunately another model where this issue prevents it from finishing more difficult tasks. Half of the 16 challenges ended in never-ending loops, and as a result, its final score was poor.</p>

<p>Its $0.16 median cost per challenge was not especially high across the full benchmark, but the value was weak compared with nearby peers. <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna.html">GPT-5.6 Luna</a> scored 31.6% at a median cost of $0.02, while <a href="/2026/08/18/evaluating-tencent-hy3-on-hack-the-box-challenges.html">Hy3</a> scored 34.8% at $0.08. Given M3’s low score and high rate of stuck runs in these tests, there is not much positive I can say about its performance in this benchmark.</p>

<hr />

<p><img src="/assets/images/minimax-minimax-m3-20260531-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/minimax-minimax-m3-20260531-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/minimax-minimax-m3-20260531-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 7</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 8</li>
  <li><strong>Benchmark score:</strong> 30.5%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">26.5</td>
      <td style="text-align: right">593</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.16</td>
      <td style="text-align: right">$3.08</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:07:45</td>
      <td style="text-align: right">02:46:11</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.36M</td>
      <td style="text-align: right">13.14M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.07M</td>
      <td style="text-align: right">1.57M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">24</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">32</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">23.5</td>
      <td style="text-align: right">615</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">5</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">61.7%</td>
      <td style="text-align: right">47.9%</td>
      <td style="text-align: right">49.0%</td>
      <td style="text-align: right">0.0%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">61</td>
      <td style="text-align: right">19</td>
      <td style="text-align: right">12</td>
      <td style="text-align: right">27.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.29</td>
      <td style="text-align: right">$0.14</td>
      <td style="text-align: right">$0.07</td>
      <td style="text-align: right">$0.21</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:13:23</td>
      <td style="text-align: right">00:09:34</td>
      <td style="text-align: right">00:04:09</td>
      <td style="text-align: right">00:07:45</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">1.01M</td>
      <td style="text-align: right">0.15M</td>
      <td style="text-align: right">0.14M</td>
      <td style="text-align: right">0.75M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.11M</td>
      <td style="text-align: right">0.11M</td>
      <td style="text-align: right">0.04M</td>
      <td style="text-align: right">0.07M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">47.0</td>
      <td style="text-align: right">21.0</td>
      <td style="text-align: right">10.0</td>
      <td style="text-align: right">32.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[While we wait to see whether MiniMax releases its reported 2.7-trillion-parameter successor, known internally as MiniMax M3 Pro and potentially arriving as early as the third quarter, I decided to return to MiniMax M3, released at the end of May, and run it through my HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. . I know that M3 has many fans, but I had never used or tested it, so I wasn’t sure what to expect.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Case Study: Combining GPT-5.6 Luna and Sol for Cost-Efficient AI</title><link href="https://theaq.blog/2026/08/24/case-study-combining-gpt-5.6-luna-and-sol-for-cost-efficient-ai.html" rel="alternate" type="text/html" title="Case Study: Combining GPT-5.6 Luna and Sol for Cost-Efficient AI" /><published>2026-08-24T10:40:18+00:00</published><updated>2026-08-24T10:40:18+00:00</updated><id>https://theaq.blog/2026/08/24/case-study-combining-gpt-5.6-luna-and-sol-for-cost-efficient-ai</id><content type="html" xml:base="https://theaq.blog/2026/08/24/case-study-combining-gpt-5.6-luna-and-sol-for-cost-efficient-ai.html"><![CDATA[<p>So far, I have used my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
 to test how well more than 15 LLMs can solve Hack The Box challenges, and two have become personal favorites.</p>

<p>The first is <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna.html">GPT-5.6 Luna</a>. Its overall score was not high, but it was solid on simpler tasks and, most importantly, it was extremely cheap.</p>

<p>My other favorite sits at the opposite end of the performance ranking and is also from OpenAI: <a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html">GPT-5.6 Sol</a>. It is the best-performing model I have tested so far, but that performance comes at a price. Its overall median cost per challenge was about 16 times higher than Luna’s, although the ratio varied substantially by difficulty.</p>

<p>So I wondered: wouldn’t it be great if you could use both models in one workflow and reduce the cost by automatically switching between them when a task becomes too difficult for Luna? You could start with Luna and bring in Sol only when the task exceeds Luna’s capabilities. In theory, this should deliver almost Sol-level performance at a much lower cost.</p>

<p>After a few dead ends, I found a solution that worked for my use case and that I could use to solve Hack The Box challenges. In this post, I briefly explain what I did and what the results were.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<h2 id="building-model-escalation-into-the-harness">Building model escalation into the harness</h2>

<p>The first question is how to switch from a cheaper, less capable model to a more capable, expensive one at the right moment.</p>

<p>I won’t waste your time talking about the unsuccessful solutions I tried or considered, such as manually switching models with a human in the loop, OpenRouter’s <a href="https://openrouter.ai/openrouter/auto">Auto Router model</a>, and various open-source tools.</p>

<p>In the end, I realized something. I run my tests with a simple harness that gives models a standard set of tools (see the <a href="/htb-challenger-benchmark-methodology">methodology</a> page for more details). One of these tools is <code class="language-plaintext highlighter-rouge">give_up</code>: the model can call it when it runs out of productive ideas and continuing the test would not be worthwhile. Most models don’t have enough self-reflection to use this tool at all, but all OpenAI models are great at using it, including the Luna model.</p>

<p>So what if, I wondered, I gave the model another tool that allowed it to escalate the problem to a more capable model instead of giving up? I added a new tool called <code class="language-plaintext highlighter-rouge">hand_over_to_more_capable_model</code> with this description:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hand the current investigation and its complete conversation history to the next, 
more capable configured model when this task appears too difficult for you to 
solve productively. Use this instead of give_up when a more capable model should 
continue the work.
</code></pre></div></div>

<p>And this simple solution worked very well. The Luna model turned out to be really good at detecting the right moment to hand over the task to its more capable sibling, and the whole harness, including switching to the Sol model, worked like a charm.</p>

<h2 id="the-results">The results</h2>

<p>The most important result is shown in this graph. The model’s position is determined by its median cost per challenge on the x-axis and its benchmark score on the y-axis:</p>

<object data="/assets/images/openai-gpt-5.6-luna-20260709;openai-gpt-5.6-sol-20260709-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/openai-gpt-5.6-luna-20260709;openai-gpt-5.6-sol-20260709-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<p>The <strong>GPT-5.6 Luna + GPT-5.6 Sol</strong> combination scored lower than <strong>GPT-5.6 Sol</strong> alone (74.5% versus 87.2%) but much higher than <strong>GPT-5.6 Luna</strong> alone (31.6%). The two-model system stood out most clearly on median cost per challenge, especially when you switch the scale from logarithmic to linear. Its median cost was $0.07, about 4.4 times lower than Sol’s $0.29. <a href="/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.6.html">Grok 4.6</a> and <a href="/2026/08/10/solving-htb-challenges-with-moonshotai-kimi-k3.html">Kimi K3</a> achieved broadly similar benchmark scores, but their median costs were much higher at $0.23 and $0.46, respectively.</p>

<p>In summary, if your use case and harness allow you to combine models and escalate between them using a simple new tool, this approach is worth testing. Technically, it is a simple solution, and I’m sure it could be improved further, so the final gains could be even greater for you.</p>

<hr />

<p><img src="/assets/images/openai-gpt-5.6-luna-20260709;openai-gpt-5.6-sol-20260709-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 14</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 74.5%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">20</td>
      <td style="text-align: right">372</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.07</td>
      <td style="text-align: right">$6.87</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:06:02</td>
      <td style="text-align: right">01:41:36</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.59M</td>
      <td style="text-align: right">14.64M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.24M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">31</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">23</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">24.0</td>
      <td style="text-align: right">512</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">5</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">97.2%</td>
      <td style="text-align: right">94.7%</td>
      <td style="text-align: right">94.8%</td>
      <td style="text-align: right">43.4%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">7.5</td>
      <td style="text-align: right">22</td>
      <td style="text-align: right">21</td>
      <td style="text-align: right">34.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.01</td>
      <td style="text-align: right">$0.03</td>
      <td style="text-align: right">$0.31</td>
      <td style="text-align: right">$0.35</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:01:18</td>
      <td style="text-align: right">00:04:24</td>
      <td style="text-align: right">00:05:21</td>
      <td style="text-align: right">00:12:33</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.07M</td>
      <td style="text-align: right">0.44M</td>
      <td style="text-align: right">0.59M</td>
      <td style="text-align: right">1.96M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.02M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">3.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">10.0</td>
      <td style="text-align: right">19.0</td>
      <td style="text-align: right">24.5</td>
      <td style="text-align: right">48.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[So far, I have used my HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. to test how well more than 15 LLMs can solve Hack The Box challenges, and two have become personal favorites. The first is GPT-5.6 Luna. Its overall score was not high, but it was solid on simpler tasks and, most importantly, it was extremely cheap. My other favorite sits at the opposite end of the performance ranking and is also from OpenAI: GPT-5.6 Sol. It is the best-performing model I have tested so far, but that performance comes at a price. Its overall median cost per challenge was about 16 times higher than Luna’s, although the ratio varied substantially by difficulty. So I wondered: wouldn’t it be great if you could use both models in one workflow and reduce the cost by automatically switching between them when a task becomes too difficult for Luna? You could start with Luna and bring in Sol only when the task exceeds Luna’s capabilities. In theory, this should deliver almost Sol-level performance at a much lower cost. After a few dead ends, I found a solution that worked for my use case and that I could use to solve Hack The Box challenges. In this post, I briefly explain what I did and what the results were.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating Openai Gpt 5.6 Luna Openai Gpt 5.6 Sol On Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/23/evaluating-openai-gpt-5.6-luna-openai-gpt-5.6-sol-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating Openai Gpt 5.6 Luna Openai Gpt 5.6 Sol On Hack The Box Challenges" /><published>2026-08-23T00:00:00+00:00</published><updated>2026-08-23T00:00:00+00:00</updated><id>https://theaq.blog/2026/08/23/evaluating-openai-gpt-5.6-luna-openai-gpt-5.6-sol-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/23/evaluating-openai-gpt-5.6-luna-openai-gpt-5.6-sol-on-hack-the-box-challenges.html"><![CDATA[]]></content><author><name></name></author><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Evaluating Ox Alpha on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/21/evaluating-stealth-ox-alpha-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating Ox Alpha on Hack The Box Challenges" /><published>2026-08-21T14:16:04+00:00</published><updated>2026-08-21T14:16:04+00:00</updated><id>https://theaq.blog/2026/08/21/evaluating-stealth-ox-alpha-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/21/evaluating-stealth-ox-alpha-on-hack-the-box-challenges.html"><![CDATA[<p>A new model called <strong>Ox Alpha</strong> landed on OpenRouter last night, and you can use it for free through Monday, August 24. Today, I tested it on my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
, and hear me out: <strong>stop what you’re doing, cancel your weekend plans, and test it!</strong> If you need to cancel all your meetings, your child’s birthday party, or your romantic weekend for two, do it. It’s worth it! Just don’t tell my wife I said that 😉</p>

<p>But really, do it.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>The model was released as a “stealth model,” i.e., we don’t know what model it actually is or who created it. If you’re interested in speculation, quickly search Reddit, but you probably won’t be much wiser afterward.</p>

<p>As I already wrote above, it’s free for a limited time. This typically means the model provider is collecting your entire communication and may use it for their own purposes, so be careful. There is also a 1,000-request limit on free models, with a 20 RPM limit if you’re an OpenRouter user with at least $10 in credits.</p>

<p>Anyway, the most interesting thing about this model is that it’s freaking good. After recent disappointments from models hyped by their marketing teams (looking at you <a href="/2026/08/21/evaluating-z-ai-glm-5.3-on-hack-the-box-challenges.html">GLM 5.3</a>, and especially you <a href="/2026/08/18/evaluating-deepseek-deepseek-v4-pro-0813-on-hack-the-box-challenges.html">DeepSeek V4 Pro 0813</a>), I didn’t expect much from a model that came out of nowhere.</p>

<p>That’s why, when I started my test harness for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
, I was pleasantly surprised to see it crack one HTB challenge after another at a steady pace. In the end, it solved 15 out of 16 challenges, the same number as <a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html">GPT-5.6 Sol</a>, the best model I’ve tested so far.</p>

<p>In terms of score, it landed a few percentage points behind Sol (81.4% vs. 87.2%) because it was less efficient at solving the challenges. It needed a higher median number of steps (25 vs. 8.5) and tokens (0.54M vs. 0.09M).</p>

<p>But hey, who cares if it takes more tokens when it’s free? 😄 The important part is that you now have three days of free access to a Sol-level model.</p>

<hr />

<p><img src="/assets/images/stealth-ox-alpha-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 15</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 81.4%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">25</td>
      <td style="text-align: right">562</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.00</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:10:13</td>
      <td style="text-align: right">06:37:20</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.52M</td>
      <td style="text-align: right">16.69M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.67M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">27</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">70</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">21.5</td>
      <td style="text-align: right">521</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">2</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">95.2%</td>
      <td style="text-align: right">94.3%</td>
      <td style="text-align: right">90.5%</td>
      <td style="text-align: right">64.8%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">18</td>
      <td style="text-align: right">18.5</td>
      <td style="text-align: right">19</td>
      <td style="text-align: right">57.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.00</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:03:03</td>
      <td style="text-align: right">00:06:10</td>
      <td style="text-align: right">00:17:41</td>
      <td style="text-align: right">00:23:49</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.18M</td>
      <td style="text-align: right">0.27M</td>
      <td style="text-align: right">0.42M</td>
      <td style="text-align: right">2.32M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.03M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">4.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">16.0</td>
      <td style="text-align: right">14.0</td>
      <td style="text-align: right">16.0</td>
      <td style="text-align: right">62.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[A new model called Ox Alpha landed on OpenRouter last night, and you can use it for free through Monday, August 24. Today, I tested it on my HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. , and hear me out: stop what you’re doing, cancel your weekend plans, and test it! If you need to cancel all your meetings, your child’s birthday party, or your romantic weekend for two, do it. It’s worth it! Just don’t tell my wife I said that 😉 But really, do it.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating GLM 5.3 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/21/evaluating-z-ai-glm-5.3-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating GLM 5.3 on Hack The Box Challenges" /><published>2026-08-21T07:07:08+00:00</published><updated>2026-08-21T07:07:08+00:00</updated><id>https://theaq.blog/2026/08/21/evaluating-z-ai-glm-5.3-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/21/evaluating-z-ai-glm-5.3-on-hack-the-box-challenges.html"><![CDATA[<p>The <strong>GLM 5.3</strong> model was released just last week. The interesting fact is that it’s just a retrained version of <strong>GLM 5.2</strong>, which doesn’t give you much hope for good results. But <a href="https://z.ai/blog/glm-5.3">Z.ai’s marketing</a> gave us sentences like: <em>“As we scaled post-training, cyber capability <strong>developed faster than we expected</strong>.”</em> and graphs showing better results in CyberGym than both <strong>Mythos 5</strong> and <a href="/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6.html">GPT-5.6 Sol</a>.</p>

<p>Also, the last model I tested from Z.ai was <strong>GLM 5.1</strong>, and it was excellent. So I thought: “OK, maybe, just maybe, this time the marketing isn’t overhyped. Maybe I really can get a new open-weight champion…” Well, spoiler alert: I didn’t.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>I tested <strong>GLM 5.3</strong> for my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
, and it landed on the <strong>Cost vs. Benchmark Score</strong> chart right next to <a href="/2026/08/17/solving-htb-challenges-with-meta-muse-spark-1.2.html">Muse Spark 1.2</a> from the company-who-must-not-be-named, and that’s not a good neighborhood. It basically means that its results were mediocre while the price per task was high.</p>

<p>To explain these results, we don’t need to look too far. If you read the <strong>Emergent Cyber Capability</strong> section in the <a href="https://z.ai/blog/glm-5.3">GLM 5.3 release notes</a> carefully - and thanks to <a href="https://www.artificialintelligence-news.com/news/zhipu-glm-5-3-benchmarks-explained/">this article</a> for bringing it to my attention - you’ll see that it scored very well on CyberBench, which measures how good the model is at finding vulnerabilities, but much worse on ExploitBench and ExploitGym, which measure a model’s ability to create working exploits. In other words, <strong>GLM 5.3</strong> may be quite good at finding security issues, but it’s not very good at exploiting them, especially when you give it a time limit.</p>

<p>And that explains the poor results in my benchmark very well. I test each model on Hack The Box challenges, and succeeding in each challenge requires not only finding the vulnerability but also exploiting it. On top of that, each model has only a limited number of steps per test.</p>

<p>You may think that exploitation skills are not important if you want to use the model only for finding vulnerabilities, but I would disagree. The thing is that even when you’re just finding vulnerabilities, you still need a quick way to validate them and rule out false positives. The best way is to do this automatically. Your security testing harness could ask the model to actually try exploiting each discovered vulnerability to verify that it’s real. And if that’s not possible, you need the model to create at least a proof of concept - step-by-step instructions on how to exploit the vulnerability, ideally wrapped in a script or Python code. For both of these verification methods, you need the model to have good exploitation skills.</p>

<p>So, unfortunately, there’s nothing to see here. <strong>GLM 5.3</strong> is not the next big thing for cybersecurity tasks.</p>

<hr />

<p><img src="/assets/images/z-ai-glm-5.3-20260816-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/z-ai-glm-5.3-20260816-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/z-ai-glm-5.3-20260816-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 10</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 3</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 3</li>
  <li><strong>Benchmark score:</strong> 47.2%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">16.5</td>
      <td style="text-align: right">609</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.49</td>
      <td style="text-align: right">$11.15</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:11:52</td>
      <td style="text-align: right">05:55:55</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.24M</td>
      <td style="text-align: right">18.36M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">1.13M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">32</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">37</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">18.5</td>
      <td style="text-align: right">653</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">3</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">90.9%</td>
      <td style="text-align: right">69.0%</td>
      <td style="text-align: right">48.8%</td>
      <td style="text-align: right">24.2%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">19</td>
      <td style="text-align: right">41</td>
      <td style="text-align: right">13.5</td>
      <td style="text-align: right">20</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.19</td>
      <td style="text-align: right">$0.63</td>
      <td style="text-align: right">$0.46</td>
      <td style="text-align: right">$0.88</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:05:47</td>
      <td style="text-align: right">00:39:48</td>
      <td style="text-align: right">00:14:35</td>
      <td style="text-align: right">00:23:33</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.16M</td>
      <td style="text-align: right">0.43M</td>
      <td style="text-align: right">0.22M</td>
      <td style="text-align: right">0.35M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.10M</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">0.08M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">6.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">17.0</td>
      <td style="text-align: right">29.5</td>
      <td style="text-align: right">16.0</td>
      <td style="text-align: right">28.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[The GLM 5.3 model was released just last week. The interesting fact is that it’s just a retrained version of GLM 5.2, which doesn’t give you much hope for good results. But Z.ai’s marketing gave us sentences like: “As we scaled post-training, cyber capability developed faster than we expected.” and graphs showing better results in CyberGym than both Mythos 5 and GPT-5.6 Sol. Also, the last model I tested from Z.ai was GLM 5.1, and it was excellent. So I thought: “OK, maybe, just maybe, this time the marketing isn’t overhyped. Maybe I really can get a new open-weight champion…” Well, spoiler alert: I didn’t.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">What Does the HTB-Challenger Benchmark Actually Measure?</title><link href="https://theaq.blog/2026/08/20/what-does-htb-challenger-benchmark-actually-measure.html" rel="alternate" type="text/html" title="What Does the HTB-Challenger Benchmark Actually Measure?" /><published>2026-08-20T10:15:50+00:00</published><updated>2026-08-20T10:15:50+00:00</updated><id>https://theaq.blog/2026/08/20/what-does-htb-challenger-benchmark-actually-measure</id><content type="html" xml:base="https://theaq.blog/2026/08/20/what-does-htb-challenger-benchmark-actually-measure.html"><![CDATA[<p>I’m sure many of you have come to this blog, checked the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
 results for your favorite model and wondered why they differ so much from official benchmarks or your own experience. <em>“DeepSeek V4 Flash is the best model I have ever used. How could this moron put it at the bottom of his benchmark?!?”</em> I hear you shouting.</p>

<p>And fair enough. If you use the model through Cursor, Claude Code, OpenCode, or another modern application, I agree that my results may have little to do with your experience. But if you’re wondering how the model would perform in your own pentesting or security testing harness, I think you should look at them carefully.</p>

<p>And because I realized that I had done a really poor job of explaining what my benchmark actually measures, I put together this post to clarify it.</p>

<!--more-->

<h3 id="use-cases">Use Cases</h3>

<p>The first obvious reason why scores in my benchmark may not match your experience is that my benchmark focuses on testing models’ cybersecurity problem-solving capabilities, i.e., how well they solve security-related challenges. If you use the same model for coding, research, data analysis, or other types of work, your experience could be different.</p>

<h3 id="test-harness">Test Harness</h3>

<p>But there is another reason - and, I believe, a stronger one - why scores in my benchmark may surprise you: the test harness.</p>

<h4 id="what-is-a-harness">What Is a Harness?</h4>

<p>The issue with LLMs is that they essentially do only one thing: you send them a message, and they send you a response. They cannot automatically execute a multi-step process, they do not have persistent memory, and they cannot read files from your disk or search the internet. So when you need to do any serious work with them (such as measuring their performance on a benchmark), you need to wrap them in an application that adds all this missing functionality. Such applications are typically called <strong>harnesses</strong>, and real-world examples include Claude Code, Codex, and Cursor (if you’re a developer); Strix, Shannon, and PentestGPT (if you’re a pentester) and even general-purpose web apps such as ChatGPT and Claude.ai.</p>

<p>A common misconception is that these harnesses are boring applications that merely provide the model with an environment, tools, and potentially additional skills without adding any real value to the final outcome. Well, this is not entirely true: the harness is crucial to the model’s overall performance (see <a href="https://arxiv.org/abs/2605.27922">Harness-Bench</a> and <a href="https://arxiv.org/abs/2607.22585">The Scaffold Effect</a> if you’re interested in the details).</p>

<p>One function of a well-designed harness - and this is where it gets interesting - is to mitigate or contain some model failures. Current LLMs can still hallucinate, produce unsupported results, repeat unproductive actions, or fail to follow instructions precisely. A harness can reduce the impact of these behaviors by validating its actions or final answer, limiting loops and resource use, and asking it - or a separate model - to retry or re-evaluate a result.</p>

<p>As a result, what you observe - whether in everyday use or in a benchmark - is the behavior of the <strong>LLM + harness</strong> combination, not the model alone. And that brings us back to my benchmark.</p>

<h4 id="how-does-the-htb-challenger-harness-work">How Does the HTB-Challenger Harness Work?</h4>

<p>When I started working on the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
, I wanted it to measure the models’ behavior, not the sophistication of the harness. For this reason, I kept the mechanisms in my test harness that mitigate or work around model flaws to a minimum. In practice, this is how the harness responds to such failures:</p>

<ul>
  <li>When the model reports an incorrect result, I do not ask how confident it is or whether it can revalidate the result. I accept its result, and if it is wrong, I mark it as a false positive and the model gets 0 points.</li>
  <li>When the model takes many more steps or spends much more money than usual on a given test, I stop the test and the model gets 0 points.</li>
  <li>When the model gets stuck (and this is an area that deserves its own blog post), I try once to get it back on track. If that doesn’t help, I stop the test and the model gets 0 points.</li>
</ul>

<p>The scores therefore reflect both cybersecurity problem-solving ability and operational reliability under minimal hand-holding. Hallucinations, unsupported submissions, and repeated unproductive actions can lower a model’s score despite strong cybersecurity skills.</p>

<p>And this is what makes this benchmark different - and why not everyone is happy with the results. But if you plan to use a model in your own harness, particularly one without sophisticated safeguards and recovery mechanisms, these results can help you understand which failures and behaviors you need to prepare for.</p>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[I’m sure many of you have come to this blog, checked the HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. results for your favorite model and wondered why they differ so much from official benchmarks or your own experience. “DeepSeek V4 Flash is the best model I have ever used. How could this moron put it at the bottom of his benchmark?!?” I hear you shouting. And fair enough. If you use the model through Cursor, Claude Code, OpenCode, or another modern application, I agree that my results may have little to do with your experience. But if you’re wondering how the model would perform in your own pentesting or security testing harness, I think you should look at them carefully. And because I realized that I had done a really poor job of explaining what my benchmark actually measures, I put together this post to clarify it.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating DeepSeek V4 Pro 0813 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/18/evaluating-deepseek-deepseek-v4-pro-0813-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating DeepSeek V4 Pro 0813 on Hack The Box Challenges" /><published>2026-08-18T17:15:50+00:00</published><updated>2026-08-18T17:15:50+00:00</updated><id>https://theaq.blog/2026/08/18/evaluating-deepseek-deepseek-v4-pro-0813-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/18/evaluating-deepseek-deepseek-v4-pro-0813-on-hack-the-box-challenges.html"><![CDATA[<p>The release of <strong>DeepSeek V4 Pro</strong> back in April got a lot of attention - so DeepSeek decided to release it again! The new version is called <strong>DeepSeek V4 Pro 0813</strong>, and it is not exactly clear what changed. Reading its <a href="https://api-docs.deepseek.com/news/news260813/">release page</a>, you can almost feel the marketing team’s desperation to put at least something there. The few concrete details are that it uses the same core V4 Pro architecture with approximately 1.6T total and 49B active parameters, adds a DSpark speculative-decoding module (whatever that is), and supports a 1M-token context.</p>

<p>DeepSeek reports large improvements across several agent benchmarks, although those are the developer’s own results. I had finished testing the previous Pro version, now called <a href="/2026/08/12/solving-htb-challenges-with-deepseek-deepseek-v4-pro.html">DeepSeek V4 Pro 0423</a>, shortly before the new version appeared (sic!). I therefore ran 0813 through my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
 to see whether it performed better on cybersecurity tasks.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>The new model achieved a slightly higher benchmark score than the old one, 38.8% versus 36.2%, and solved nine challenges instead of eight. Given the small test set and normal run-to-run variability, I would still call the performance result a draw.</p>

<p>The clearest improvement was efficiency. The median run used far fewer steps (12.5 versus 62.5), tokens (0.25M versus 1.94M), and money ($0.20 versus $0.35) than the older model. That is a good reason to upgrade if you still use the older version.</p>

<p>If you are not specifically committed to DeepSeek, however, there are better choices for this kind of cybersecurity work. <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna-pro.html">GPT-5.6 Luna Pro</a> scored 51.3% at a lower median cost of $0.10, while <a href="/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.6.html">Grok 4.6</a> and <a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html">GPT-5.6 Sol</a> achieved much higher scores at broadly similar median costs.</p>

<hr />

<p><img src="/assets/images/deepseek-deepseek-v4-pro-20260813-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/deepseek-deepseek-v4-pro-20260813-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/deepseek-deepseek-v4-pro-20260813-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 9</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 2</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 5</li>
  <li><strong>Benchmark score:</strong> 38.8%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">12.5</td>
      <td style="text-align: right">456</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.20</td>
      <td style="text-align: right">$7.97</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:07:17</td>
      <td style="text-align: right">06:46:42</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.24M</td>
      <td style="text-align: right">16.32M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.98M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">121</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">43</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">13.0</td>
      <td style="text-align: right">434</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">12</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">94.4%</td>
      <td style="text-align: right">73.1%</td>
      <td style="text-align: right">49.2%</td>
      <td style="text-align: right">0.0%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">10.5</td>
      <td style="text-align: right">12.5</td>
      <td style="text-align: right">27</td>
      <td style="text-align: right">19</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.05</td>
      <td style="text-align: right">$0.22</td>
      <td style="text-align: right">$1.08</td>
      <td style="text-align: right">$0.40</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:03:09</td>
      <td style="text-align: right">00:09:19</td>
      <td style="text-align: right">00:34:12</td>
      <td style="text-align: right">00:10:44</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.07M</td>
      <td style="text-align: right">0.18M</td>
      <td style="text-align: right">0.47M</td>
      <td style="text-align: right">0.75M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.11M</td>
      <td style="text-align: right">0.02M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">4.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">10.0</td>
      <td style="text-align: right">8.5</td>
      <td style="text-align: right">22.5</td>
      <td style="text-align: right">13.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[The release of DeepSeek V4 Pro back in April got a lot of attention - so DeepSeek decided to release it again! The new version is called DeepSeek V4 Pro 0813, and it is not exactly clear what changed. Reading its release page, you can almost feel the marketing team’s desperation to put at least something there. The few concrete details are that it uses the same core V4 Pro architecture with approximately 1.6T total and 49B active parameters, adds a DSpark speculative-decoding module (whatever that is), and supports a 1M-token context. DeepSeek reports large improvements across several agent benchmarks, although those are the developer’s own results. I had finished testing the previous Pro version, now called DeepSeek V4 Pro 0423, shortly before the new version appeared (sic!). I therefore ran 0813 through my HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. to see whether it performed better on cybersecurity tasks.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating Hy3 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/18/evaluating-tencent-hy3-on-hack-the-box-challenges.html" rel="alternate" type="text/html" title="Evaluating Hy3 on Hack The Box Challenges" /><published>2026-08-18T05:00:18+00:00</published><updated>2026-08-18T05:00:18+00:00</updated><id>https://theaq.blog/2026/08/18/evaluating-tencent-hy3-on-hack-the-box-challenges</id><content type="html" xml:base="https://theaq.blog/2026/08/18/evaluating-tencent-hy3-on-hack-the-box-challenges.html"><![CDATA[<p><strong>Tencent’s Hy3</strong> belongs to the category of “interesting LLM models you may never have heard of.” It appeared to be quite popular on <a href="https://openrouter.ai/tencent/hy3">OpenRouter.ai</a> at the start of the summer, when a free version was available, and it seemed to have earned a good reputation. So I thought it might be worth including in the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>In the end, I was a bit disappointed. In terms of performance, <strong>Hy3</strong> sits near the bottom of my benchmark score ladder: its 34.8% score was the third-lowest among the all tested models. In terms of cost, it’s cheap, but not exceptionally so: its median cost per challenge was more than four times that of <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna.html">GPT-5.6 Luna</a>, which achieved a similar benchmark score.</p>

<p>The biggest issue with this model was that it got stuck on more than half of the tested challenges. In these runs, it started producing long, repetitive reasoning outputs in which it argued with itself about potential solutions, and it did not recover after the test harness asked it to shorten its response. Nine of its 16 runs ended this way.</p>

<p>The same behavior is visible in the output-token statistics. Hy3 generated more output than any other model. Its median was 101,509 output tokens per challenge, about 51% above the next-highest model, <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna-pro.html">GPT-5.6 Luna Pro</a>, at 67,298. Its total of 1.79 million output tokens was also the highest overall. Its output-to-input ratio was an extreme outlier: output tokens equaled 11.72% of input tokens across the run, while the next-highest model, <a href="/2026/08/11/solving-htb-challenges-with-qwen-qwen3.8-max.html">Qwen3.8 Max</a>, reached only 4.56%. These figures are consistent with the repetitive responses visible in the run logs.</p>

<p>In summary, this model may have valid use cases, but cybersecurity is not one of them.</p>

<hr />

<p><img src="/assets/images/tencent-hy3-20260706-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/tencent-hy3-20260706-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/tencent-hy3-20260706-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 6</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr>:</strong> 9</li>
  <li><strong>Benchmark score:</strong> 34.8%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">18.5</td>
      <td style="text-align: right">471</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.08</td>
      <td style="text-align: right">$1.92</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:15:21</td>
      <td style="text-align: right">04:41:55</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.32M</td>
      <td style="text-align: right">15.25M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.10M</td>
      <td style="text-align: right">1.79M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">73</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">44</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">10.5</td>
      <td style="text-align: right">400</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">5</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended because the model appeared to be caught in a never-ending loop.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">24.9%</td>
      <td style="text-align: right">49.4%</td>
      <td style="text-align: right">48.1%</td>
      <td style="text-align: right">20.0%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">10.5</td>
      <td style="text-align: right">10.5</td>
      <td style="text-align: right">38</td>
      <td style="text-align: right">42</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.06</td>
      <td style="text-align: right">$0.06</td>
      <td style="text-align: right">$0.18</td>
      <td style="text-align: right">$0.18</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:12:16</td>
      <td style="text-align: right">00:17:03</td>
      <td style="text-align: right">00:15:24</td>
      <td style="text-align: right">00:18:06</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.15M</td>
      <td style="text-align: right">0.14M</td>
      <td style="text-align: right">1.22M</td>
      <td style="text-align: right">1.37M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.08M</td>
      <td style="text-align: right">0.08M</td>
      <td style="text-align: right">0.14M</td>
      <td style="text-align: right">0.12M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">4.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">3.5</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">7.5</td>
      <td style="text-align: right">7.0</td>
      <td style="text-align: right">23.5</td>
      <td style="text-align: right">48.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[Tencent’s Hy3 belongs to the category of “interesting LLM models you may never have heard of.” It appeared to be quite popular on OpenRouter.ai at the start of the summer, when a free version was available, and it seemed to have earned a good reputation. So I thought it might be worth including in the HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. .]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>