<?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>Building LLM Agents in Production on Pranav Gore | Staff Backend Engineer</title>
    <link>https://pranavgore.com/series/building-llm-agents-in-production/</link>
    <description>Recent content in Building LLM Agents in Production on Pranav Gore | Staff Backend Engineer</description>
    <image>
      <title>Pranav Gore | Staff Backend Engineer</title>
      <url>https://pranavgore.com/img/og_v1.jpg</url>
      <link>https://pranavgore.com/img/og_v1.jpg</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 24 Jul 2026 10:00:00 +0800</lastBuildDate>
    <atom:link href="https://pranavgore.com/series/building-llm-agents-in-production/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Evaluating an LLM Agent Before You Have Eval Infrastructure</title>
      <link>https://pranavgore.com/blogs/evaluating-llm-agents-before-eval-infrastructure/</link>
      <pubDate>Fri, 24 Jul 2026 10:00:00 +0800</pubDate>
      <guid>https://pranavgore.com/blogs/evaluating-llm-agents-before-eval-infrastructure/</guid>
      <description>Why our first eval for an LLM agent is 90 lines, four scripted scenarios, and a human judge instead of an eval framework, and when that stops being enough.</description>
    </item>
    <item>
      <title>Putting an LLM in Production: Structure, Cost, and Prompt-Injection Defenses</title>
      <link>https://pranavgore.com/blogs/llm-in-production-structure-cost-defenses/</link>
      <pubDate>Sat, 18 Jul 2026 10:00:00 +0800</pubDate>
      <guid>https://pranavgore.com/blogs/llm-in-production-structure-cost-defenses/</guid>
      <description>Wrapping an untrusted LLM for production: structured output, completion the model can&amp;#39;t fake, a reliability sandwich, cost per conversation, and prompt-injection defenses.</description>
    </item>
    <item>
      <title>Conversational AI Agents: Reply to Conversations, Not Messages</title>
      <link>https://pranavgore.com/blogs/conversational-ai-agents-reply-to-conversations/</link>
      <pubDate>Thu, 09 Jul 2026 10:00:00 +0800</pubDate>
      <guid>https://pranavgore.com/blogs/conversational-ai-agents-reply-to-conversations/</guid>
      <description>Why a chat agent should attach to a conversation and poll its state instead of replying per message, and how it decides when to speak, wait, and stop.</description>
    </item>
    <item>
      <title>We Didn&#39;t Need Temporal: Durable Agent Runs on Postgres and Celery</title>
      <link>https://pranavgore.com/blogs/durable-agent-runs-postgres-celery/</link>
      <pubDate>Fri, 03 Jul 2026 10:00:00 +0800</pubDate>
      <guid>https://pranavgore.com/blogs/durable-agent-runs-postgres-celery/</guid>
      <description>How we built durable, crash-safe, long-running conversational agents on a single Postgres table and Celery, without a workflow engine like Temporal.</description>
    </item>
  </channel>
</rss>
