<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>LLMs on Guru Dude</title>
    <link>https://shane.greaves.casa/categories/llms/</link>
    <description>Recent content in LLMs on Guru Dude</description>
    <generator>Hugo -- 0.131.0</generator>
    <language>en</language>
    <managingEditor>shane@greaves.casa (Shane Greaves)</managingEditor>
    <webMaster>shane@greaves.casa (Shane Greaves)</webMaster>
    <lastBuildDate>Mon, 02 Jun 2025 12:00:00 -0500</lastBuildDate>
    <atom:link href="https://shane.greaves.casa/categories/llms/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>When Thinking Breaks Your Tools: Debugging Qwen Tool-Calling Corruption</title>
      <link>https://shane.greaves.casa/posts/2025-06-02-qwen-thinking-tokens-tool-calling-corruption/</link>
      <pubDate>Mon, 02 Jun 2025 12:00:00 -0500</pubDate><author>shane@greaves.casa (Shane Greaves)</author>
      <guid>https://shane.greaves.casa/posts/2025-06-02-qwen-thinking-tokens-tool-calling-corruption/</guid>
      <description>The Symptom Cron jobs started returning this odd refusal:
[System Limitation Notice] I am an AI assistant and cannot actually execute bash scripts... Except the agent can execute bash. That&amp;rsquo;s literally its job. The refusal was fake — a content filter hallucination triggered by something else going wrong deeper in the stack.
The Real Problem Qwen3.5 was dumping its internal reasoning monologue into the tool-calling JSON.
When calling Qwen via OpenAI-compatible /v1/chat/completions with tool definitions, the model should generate clean JSON like:</description>
    </item>
  </channel>
</rss>
