<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>vish — engineering notebook</title>
    <link>https://vish.build.host/</link>
    <description>Notes on agent harnesses, inference economics, evaluation, and the parts of AI infrastructure that only show up when you measure them.</description>
    <language>en</language>
    <lastBuildDate>Thu, 10 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://vish.build.host/feed.xml" rel="self" type="application/rss+xml" />

    <item>
      <title>What a 304B model actually costs to self-host</title>
      <link>https://vish.build.host/writing/self-hosting-a-304b-moe.html</link>
      <guid isPermaLink="true">https://vish.build.host/writing/self-hosting-a-304b-moe.html</guid>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <category>Inference</category>
      <description>Two B300s serving a 304B sparse MoE: 6,972 tok/s aggregate at 100 concurrent streams, a million-token context in 72.8 seconds, the DeepGEMM crash that ate a week, and the request-layer bug that made the model look stupid.</description>
    </item>

    <item>
      <title>The billion-token question</title>
      <link>https://vish.build.host/writing/billion-free-tokens.html</link>
      <guid isPermaLink="true">https://vish.build.host/writing/billion-free-tokens.html</guid>
      <pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate>
      <category>Economics</category>
      <description>Free tiers cap requests, not tokens. That single fact turns the question into an arithmetic problem about how to build a 35,000-token request 28,800 times a day — and why padding is not an answer.</description>
    </item>

    <item>
      <title>When your agent lies about success</title>
      <link>https://vish.build.host/writing/when-your-agent-lies.html</link>
      <guid isPermaLink="true">https://vish.build.host/writing/when-your-agent-lies.html</guid>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <category>Reliability</category>
      <description>A close event during timeout cleanup won a race, and the shell tool reported exit code zero on a command that was killed. Why a false success is worse than a crash, and how to close the whole class.</description>
    </item>

    <item>
      <title>A 149M router for 455 skills</title>
      <link>https://vish.build.host/writing/a-149m-router-for-455-skills.html</link>
      <guid isPermaLink="true">https://vish.build.host/writing/a-149m-router-for-455-skills.html</guid>
      <pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate>
      <category>Routing</category>
      <description>An audit over 346 real sessions found the remote router missing 37% of tool-bearing turns and 40% of them mid-turn. Here is the right-sized local encoder that replaced it, and why it runs offline in under 30 ms.</description>
    </item>

    <item>
      <title>Prompt cache is the biggest lever on your agent bill</title>
      <link>https://vish.build.host/writing/prompt-cache-is-the-lever.html</link>
      <guid isPermaLink="true">https://vish.build.host/writing/prompt-cache-is-the-lever.html</guid>
      <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate>
      <category>Cost</category>
      <description>50.6B prompt tokens in 30 days, $1,799 paid, $10,629 saved. Why a blended 88.5% hit rate is the wrong number, the four things that break a prefix, and the half-second of latency that came free.</description>
    </item>

    <item>
      <title>Fine-tuning a 304B MoE on a $500 ceiling</title>
      <link>https://vish.build.host/writing/finetuning-a-moe-on-a-budget.html</link>
      <guid isPermaLink="true">https://vish.build.host/writing/finetuning-a-moe-on-a-budget.html</guid>
      <pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate>
      <category>Training</category>
      <description>Every gate passed except the one that mattered. Roughly 263 GiB allocated per GPU during BF16 expert aggregation, and what it means that a model loaded for inference and could not load to train.</description>
    </item>
  </channel>
</rss>
