<?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://pranavdg1997.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://pranavdg1997.github.io/" rel="alternate" type="text/html" /><updated>2026-06-01T13:21:48-10:00</updated><id>https://pranavdg1997.github.io/feed.xml</id><title type="html">Portfolio</title><subtitle>Generative AI &amp; ML Engineer specializing in multi-agent systems, RAG pipelines, and digital health AI. MS Data Science, Indiana University.</subtitle><author><name>Pranav Gujarathi</name><email>pranavdg1997@gmail.com</email></author><entry><title type="html">Agentic AI in Production: A Delegation Problem, Not a Model Problem</title><link href="https://pranavdg1997.github.io/posts/2026/06/agentic-ai-in-production/" rel="alternate" type="text/html" title="Agentic AI in Production: A Delegation Problem, Not a Model Problem" /><published>2026-06-01T00:00:00-10:00</published><updated>2026-06-01T00:00:00-10:00</updated><id>https://pranavdg1997.github.io/posts/2026/06/agentic-ai-in-production</id><content type="html" xml:base="https://pranavdg1997.github.io/posts/2026/06/agentic-ai-in-production/"><![CDATA[<p><em>This post is adapted from a talk I’ve been developing on shipping agentic AI systems at scale — drawing on experience across Walmart, Cigna, and now Twin Health. The thesis: most agent failures aren’t model failures. They’re harness failures.</em></p>

<hr />

<p>Most talks about agentic AI are about how smart the model is.</p>

<p>This one is about what happens the moment you let it <strong>act</strong>.</p>

<p>There’s a specific kind of overconfidence that infects early agentic projects. The demo works beautifully — the agent reasons through the problem, calls the right tools, surfaces the right answer. You ship it. Then, somewhere in the first week of production, it does something the demo never did: it confidently acts on stale data, it calls an API it wasn’t supposed to touch, it answers a question it was never designed for — and it does it with the exact same smooth fluency as everything else. No warning. No hand-raise.</p>

<p>That’s the delegation problem. And it’s the problem this post is about.</p>

<hr />

<figure style="text-align:center">
  <img src="/images/blog/agentic-slide-act.png" alt="Talk slide showing the four pillars: Act, Damage, Controls, Ownership" style="width:100%;border-radius:6px;margin:1em 0;" />
  <figcaption style="font-size:0.85em;color:#888;margin-top:0.4em;"><em>The four pillars of the delegation problem: Act, Damage, Controls, Ownership — from the original talk.</em></figcaption>
</figure>

<h2 id="what-agentic-actually-means-and-four-misconceptions">What “Agentic” Actually Means (and Four Misconceptions)</h2>

<p>Before we can talk about production, we need to agree on what we’re shipping.</p>

<p>A useful working definition: <strong>an agent is software that uses one or more models, tools, memory, and a runtime to pursue a goal across multiple steps with limited human supervision.</strong> The key phrase isn’t “AI” — it’s <em>limited human supervision</em>. That’s where the governance burden lives.</p>

<p>The moment a system can <em>act</em> — not just answer — the rules change. Four misconceptions get teams into trouble here:</p>

<p><strong>1. “Agentic = a smarter model.”</strong> Wrong. Agentic is a deployment architecture, not a model capability. A smarter model in a poorly-designed harness is just a smarter way to make the wrong move at speed.</p>

<p><strong>2. “More autonomy = more value.”</strong> More autonomy means more blast radius. These are not the same thing.</p>

<p><strong>3. “It’s just a chatbot with tools.”</strong> Those tools are the entire risk surface. A chatbot that can browse the web is one thing. An agent that can write to your database, send emails on your behalf, or approve transactions is something categorically different.</p>

<p><strong>4. “The demo is the product.”</strong> The demo is 80%. Production is the brutal 20% — it’s the edge cases, the adversarial inputs, the stale context, the off-script user. That’s the 20% that shows up in post-mortems.</p>

<p>A more useful frame than “how smart is this agent?” is four dials:</p>
<ul>
  <li><strong>Function</strong> — does it answer, or does it act?</li>
  <li><strong>Authority</strong> — is it advisory, or does it speak in an official voice?</li>
  <li><strong>Reversibility</strong> — can you undo what it does?</li>
  <li><strong>Context</strong> — is it sandboxed, or does it touch live state?</li>
</ul>

<figure style="text-align:center;margin:1.5em 0;">
  <img src="/images/blog/agentic-blast-radius.png" alt="Concentric circles showing blast radius: advisory/sandboxed at center, irreversible/regulated requiring human sign-off at the edge" style="max-width:380px;border-radius:8px;" />
  <figcaption style="font-size:0.85em;color:#888;margin-top:0.4em;"><em>Blast radius as concentric rings. The outermost ring — irreversible, regulated actions — is where human gates stop being optional.</em></figcaption>
</figure>

<p>Classify the job on all four dials <em>before</em> you build. The dial positions tell you your blast radius, your oversight requirements, and your rollout pace.</p>

<hr />

<h2 id="how-we-got-here-2023-to-now">How We Got Here: 2023 to Now</h2>

<p>Cast your mind back to late 2022. ChatGPT launched. The capability jump was real and visible to everyone. By mid-2023, “autonomous AI agents” were a gold rush — every product roadmap had one, every conference talk promised AGI-as-a-service by Q3.</p>

<p>Then the incident reports started landing.</p>

<p>A Chevrolet dealership deployed a ChatGPT-powered chatbot that got prompt-injected into “agreeing” to sell a Tahoe for $1.<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">1</a></sup> The model negotiated — because nobody put the transactional rules in hard logic.</p>

<figure style="text-align:center;margin:1.5em 0;">
  <img src="/images/blog/chevy-tahoe-1dollar.png" alt="Chevrolet Tahoe with a $1 special price sticker — the prompt injection incident" style="max-width:300px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.25);" />
  <figcaption style="font-size:0.85em;color:#888;margin-top:0.4em;"><em>Viral. No hard transactional rules, no guardrails outside the context window — just a chatbot that could negotiate.</em></figcaption>
</figure>

<p>The NYC government’s MyCity chatbot was audited and found to give inconsistent, sometimes unlawful answers — with external reporting, not internal instrumentation, surfacing the failures.<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">2</a></sup> Klarna celebrated replacing the equivalent of ~700 agents’ worth of work with AI, then publicly rebalanced toward human support when quality and customer trust started sending the bill.<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">3</a></sup></p>

<p>The pattern in all of these: <strong>authority was handed out faster than control was built.</strong></p>

<p>The “agent” label had stretched to cover everything from a prompt around a knowledge base to genuinely autonomous tool-users. That ambiguity is why classification matters so much. The market blurred a useful workflow and a weekend demo of autonomy — and the difference becomes visible in production, not in the pitch deck.</p>

<hr />

<h2 id="build-vs-buy-own-the-harness-rent-the-plumbing">Build vs. Buy: Own the Harness, Rent the Plumbing</h2>

<figure style="text-align:center">
  <img src="/images/blog/agentic-slide-controls-build.png" alt="Talk slide: Controls — Build vs. Buy" style="width:100%;border-radius:6px;margin:0 0 1.5em 0;" />
</figure>

<p>Once you’ve decided to build, you face a strategic question that most teams get subtly wrong.</p>

<p>The instinct is to move fast — reach for a fully-managed “agentic platform” that promises to handle everything from orchestration to evaluation to deployment. The appeal is real. The trap is hidden.</p>

<p>Here’s what I’ve learned across three orgs: <strong>buy the plumbing, build the part that’s you.</strong></p>

<p>The commodity layers — LLM inference, vector stores, tracing infrastructure, eval harnesses — are bought. They’re rapidly commoditizing, and building them in-house is rarely differentiated. But the things that encode <em>your</em> risk profile:</p>

<ul>
  <li>Your domain rules and business logic</li>
  <li>Your source of truth for facts the agent states</li>
  <li>Your permission boundaries and action surfaces</li>
  <li>Your guardrails and rollback mechanisms</li>
</ul>

<p>Those must be yours. Versioned, auditable, owned.</p>

<p>The end-to-end “agentic platform” trap is seductive because it looks fast. But when you adopt a black-box platform, you inherit its defaults for permissions, logging, and rollback. You discover those defaults during an incident — when the agent’s actions in production turn out to be governed by whatever the platform decided was a reasonable default for a generic use case.</p>

<p>Under healthcare rules at Cigna, a vendor that hides the audit trail isn’t a productivity win — it’s a compliance liability. At Walmart, speed and scale for internal clients matters enormously, but so does the ability to trace exactly what happened when something goes wrong. At Twin Health, where our agents are making diet and clinical recommendations tied to real patient outcomes, the guardrails aren’t a feature — they’re the license to operate.</p>

<p><strong>The harness is the product.</strong> Rent capability. Own control.</p>

<hr />

<h2 id="observability-if-you-cant-replay-it-you-cant-run-it">Observability: If You Can’t Replay It, You Can’t Run It</h2>

<figure style="text-align:center">
  <img src="/images/blog/agentic-slide-controls-obs.png" alt="Talk slide: Controls — Observability" style="width:100%;border-radius:6px;margin:0 0 1.5em 0;" />
</figure>

<p>This is the section that sounds like backend hygiene but is actually a product requirement.</p>

<p>Harrison Chase, CEO of LangChain, has put it simply: <em>“The harness is the most important thing.”</em> I’d add a corollary: if you can’t replay what the agent did, you cannot run that agent in production. Not safely. Not responsibly.</p>

<p>What to instrument from day one:</p>
<ul>
  <li>Every tool call, with inputs, outputs, and latency</li>
  <li>Cost per conversation — not tokens, cost</li>
  <li>Every handoff between agents or to a human</li>
  <li>Every human override</li>
  <li>Every blocked unsafe action</li>
</ul>

<p>The metric that matters isn’t “automation rate” — it’s <strong>cost per resolved conversation</strong>. Not handled: resolved. The distinction is critical. High automation with low resolution is just expensive silence.</p>

<p>The NYC MyCity story is instructive here: the failures weren’t caught by internal tooling — they were caught by investigative reporters and public audits.<sup id="fnref:3:1" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">2</a></sup> <strong>You don’t want journalists to be your observability layer.</strong></p>

<p>Two metrics I’d add to any agentic system’s dashboard that most teams miss:</p>
<ul>
  <li><strong>MTTD</strong>: Mean time to <em>detect</em> a bad agent action (not mean time to fix — detect)</li>
  <li><strong>Mean time to safely disable</strong>: How quickly can you kill-switch a misbehaving agent without taking the whole system down?</li>
</ul>

<p>Instrument these from day one, not after the first production incident.</p>

<hr />

<h2 id="scalability-scale-amplifies-whatever-you-built--including-the-bugs">Scalability: Scale Amplifies Whatever You Built — Including the Bugs</h2>

<figure style="text-align:center">
  <img src="/images/blog/agentic-slide-damage.png" alt="Talk slide: Damage — Scalability and blast radius" style="width:100%;border-radius:6px;margin:0 0 1.5em 0;" />
</figure>

<p>Here’s an uncomfortable truth that took me a while to articulate clearly: <strong>scaling an agent doesn’t multiply throughput. It multiplies error modes.</strong></p>

<p>The Klarna story is the canonical example. In February 2024, the company announced its AI assistant was handling two-thirds of all customer service chats — the equivalent of 700 full-time agents.<sup id="fnref:5:1" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">3</a></sup> The business press celebrated. Then, over the following months, Klarna publicly rebalanced — reinvesting in human support, acknowledging that the efficiency focus had gone too far and that customer trust and quality required visible human presence.<sup id="fnref:5:2" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">3</a></sup></p>

<p>What happened? The automation metrics looked excellent while customer trust quietly eroded. Handled volume and automation rate are vanity metrics if they’re not paired with rework rate, escalation quality, and user-value measurement.</p>

<p>McDonald’s tried AI at the drive-through and ultimately ended the partnership — discovering that “repetitive” doesn’t mean “simple.”<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">4</a></sup> The error modes at drive-through scale were operationally chaotic in ways the lab never surfaced.</p>

<p>The pattern: move too fast to scale, before the steady-state quality is proven, and you’ve just found a faster way to erode trust.</p>

<p>The corrective is a phased rollout with real exit criteria:</p>

<ol>
  <li><strong>Shadow mode</strong> — agent runs in parallel with humans; outputs are compared but never surfaced to users</li>
  <li><strong>Narrow cohort</strong> — a small slice of real traffic, fully instrumented, human review on sample</li>
  <li><strong>Constrained production</strong> — live, but agent actions are limited to reversible operations only</li>
  <li><strong>Scale</strong> — expand only after rework, override, and complaint rates are in tolerance</li>
  <li><strong>Optimize</strong> — tune cost and containment, but never at the expense of quality metrics</li>
</ol>

<figure style="text-align:center;margin:1.5em 0;">
  <img src="/images/blog/agentic-rollout-phases.png" alt="Flowchart: Shadow Mode → Narrow Cohort → Constrained Prod → Scale → Optimize, each connected by exit criteria gates" style="width:100%;border-radius:8px;" />
  <figcaption style="font-size:0.85em;color:#888;margin-top:0.4em;"><em>Phase the rollout — exit each gate on criteria, not on calendar.</em></figcaption>
</figure>

<p>Don’t expand from one phase to the next based on time. Expand based on exit criteria. The question at each gate: is what we built better than what we had?</p>

<hr />

<h2 id="security-and-governance-default-to-least-privilege">Security and Governance: Default to Least Privilege</h2>

<p>This is the control-room section — where I want to spend time on the failures that don’t make headlines until they’re very expensive.</p>

<p>Three principles that should be non-negotiable:</p>

<p><strong>1. Source of truth is a publishing problem.</strong> Any fact the agent states — policy language, pricing, clinical guidance, legal information — must come from an approved, versioned source with a named human owner. The agent’s answer to “what is your bereavement fare policy?” isn’t a model generation problem. It’s a content publishing problem. Air Canada learned this the hard way: their chatbot misstated a bereavement fare policy in an official channel, a customer relied on it, and the BC Civil Resolution Tribunal held the airline liable.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">5</a></sup> “The AI generated it” was not a defense. It still isn’t.</p>

<p><strong>2. Least privilege, always.</strong> The agent’s credentials and action surface should never exceed its minimum requirements for the specific task. An agent that can write code and mutate production state <em>will</em> eventually do the wrong thing at speed. In a widely-reported 2025 incident, an AI coding agent deleted a production database during a code freeze because dev and prod were commingled in its permission scope — and then misreported the extent of the damage.<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup> Containment architecture is the only reliable answer — not model quality, not prompting. Architecture.</p>

<p><strong>3. Human gates on the irreversible.</strong> Anything that is irreversible, involves real money, touches regulated data, or affects a real person’s health or legal standing requires a human in the loop before it executes. This isn’t a UX choice — it’s a governance requirement. Design for fail-closed escalation, not confident improvisation.</p>

<p>In healthcare specifically: business-rule and clinical-guideline adherence isn’t a feature you add for compliance. It’s the license to operate. At Twin Health, where our agents make dietary recommendations with real metabolic impact, and at Cigna, where prior auth decisions affect patient care timelines, the error budget approaches zero. Design accordingly.</p>

<p>And don’t wait for regulatory clarity: the EU AI Act (Regulation (EU) 2024/1689) is already in phased application through 2026, and existing frameworks including GDPR Article 22 on automated decision-making already apply to many agentic deployments.<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">7</a></sup> “We didn’t know the AI would do that” is not a legal position.</p>

<hr />

<h2 id="team-dynamics-an-agent-is-an-org-change-wearing-an-api">Team Dynamics: An Agent Is an Org Change Wearing an API</h2>

<figure style="text-align:center">
  <img src="/images/blog/agentic-slide-ownership.png" alt="Talk slide: Ownership — Team Dynamics" style="width:100%;border-radius:6px;margin:0 0 1.5em 0;" />
</figure>

<p>The failure mode nobody talks about enough: deploying an agent without deciding who owns it.</p>

<p>When a bot states company policy, legal co-owns it. When it acts, engineering owns rollback. When it escalates, support owns the human path. When it causes an incident, product owns the blast-radius decision that let it happen. Ambiguous ownership doesn’t make these problems disappear — it just transforms them into finger-pointing after an incident.</p>

<p>My recommendation: assign a named owner to each control surface before you ship. Not a team. A person.</p>

<p>The second, harder conversation is about humans. NEDA wound down its human mental health helpline in anticipation of an AI chatbot, then suspended the chatbot weeks later after it gave harmful dieting advice to vulnerable users.<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">8</a></sup> Klarna replaced human agents before proving steady-state quality, then had to rebuild human capacity.<sup id="fnref:5:3" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">3</a></sup> <strong>Premature human replacement is one of the top agentic failure modes, and it’s almost always driven by over-optimism on the automation side.</strong></p>

<p>The safer approach: use AI to absorb <em>volume</em> first. Let humans handle the complex, the emotional, and the edge cases. Measure rework and escalation quality before you make any headcount decisions. Keep the human path not just available, but visible — not buried in a help menu, but a clear, easy, zero-friction option. Trust erodes when users feel trapped.</p>

<hr />

<h2 id="the-launch-gate-ship-the-harness-before-the-autonomy">The Launch Gate: Ship the Harness Before the Autonomy</h2>

<p>This is the payoff. Everything above collapses into a single checklist — a gate, not a wish list.</p>

<p>You don’t ship until each box is checked:</p>

<ul class="task-list">
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>Classified the job</strong> on the four dials (function, authority, reversibility, context)</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>One source of truth</strong> for every fact the agent states, with a named human owner</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>dev ≠ prod</strong>, least-privilege credentials, sandboxed dev environment</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>Human gate</strong> for every irreversible, regulated, or financial action</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>Visible escalation</strong> — a fast, easy path to a human that users can find</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>Red-teamed the real failure modes</strong> — not just “what could go wrong” but “what actually went wrong in comparable systems”</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" /><strong>Rollback and kill-switch</strong> — the ability to disable the agent safely, without taking down the broader system, within minutes</li>
</ul>

<p>Then phase the rollout: Shadow → Cohort → Constrained → Scaled → Optimize. Exit each phase on criteria, not on calendar.</p>

<p>The through-line I keep returning to: across nearly every public incident in agentic AI, teams <em>delegated authority faster than they built control.</em> The fix isn’t exotic. It’s boring and it works: instrument early, constrain tightly, phase slowly, keep humans visible.</p>

<hr />

<h2 id="three-things-to-take-away">Three Things to Take Away</h2>

<p>If I had to compress this entire post to a single whiteboard:</p>

<p><strong>1. Agentic = delegated authority.</strong> Classify it before you build it. Use the four dials. Know your blast radius.</p>

<p><strong>2. The harness beats the model.</strong> Observability, permissions, source of truth, rollback, human gates. These are the variables that determine your production outcomes far more than which foundation model you’re running.</p>

<p><strong>3. Ship control before autonomy.</strong> Phase the rollout. Keep humans in the loop. Don’t replace them before you’ve proven steady-state quality.</p>

<p>And a final line worth keeping in mind as the regulatory landscape evolves around all of us:</p>

<p><em>“The AI did it” is not a defense.</em><sup id="fnref:1:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">5</a></sup></p>

<hr />

<p><em>I’m happy to go deeper on any of these areas — particularly observability tooling, multi-agent architectures, or the healthcare-specific governance layer. Reach out via <a href="https://linkedin.com/in/pranav-gujarathi">LinkedIn</a> or find me at upcoming AI engineering events.</em></p>

<hr />

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:2" role="doc-endnote">
      <p>Bakke, C. (2023, December). Chevrolet of Watsonville ChatGPT chatbot incident [Post on X]. <em>Business Insider</em> and subsequent coverage, December 2023. A dealership’s ChatGPT-powered bot was prompt-injected into agreeing to sell a Chevrolet Tahoe for $1 — because no hard transactional rules existed outside the model’s context window. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>“NYC’s AI Chatbot Tells Businesses to Break the Law.” <em>The Markup / THE CITY</em>, March 2024; additional coverage by <em>AP News</em>, 2024. An investigation and subsequent audit found the NYC MyCity business chatbot giving inconsistent and sometimes unlawful guidance, with failures surfaced through external reporting rather than internal monitoring. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:3:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p>Klarna. “Klarna AI assistant does the work of 700 agents.” Press release, February 2024. Walk-back and rebalancing toward human customer support subsequently reported by <em>Bloomberg</em>, 2025. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:5:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a> <a href="#fnref:5:2" class="reversefootnote" role="doc-backlink">&#8617;<sup>3</sup></a> <a href="#fnref:5:3" class="reversefootnote" role="doc-backlink">&#8617;<sup>4</sup></a></p>
    </li>
    <li id="fn:7" role="doc-endnote">
      <p>McDonald’s ended its AI-powered drive-through order-taking test with IBM. Reported by <em>CNBC</em> and <em>Restaurant Business</em>, June 2024. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:1" role="doc-endnote">
      <p><em>Moffatt v. Air Canada</em>, 2024 BCCRT 149. BC Civil Resolution Tribunal, February 2024. The tribunal held Air Canada liable for its chatbot’s misstatement of bereavement fare policy, rejecting the argument that the airline was not responsible for information provided by its AI system. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:6" role="doc-endnote">
      <p>“AI coding tool wiped a database in ‘catastrophic failure.’” <em>Fortune</em>, July 2025. Reporting on an incident described by Jason Lemkin / SaaStr in which an AI coding agent deleted a production database during a code freeze due to commingled dev/prod credentials, and then misreported the recovery status. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8" role="doc-endnote">
      <p>Regulation (EU) 2024/1689 of the European Parliament and of the Council (EU AI Act). Entered into force August 2024; phased application through 2026. European Commission. GDPR Article 22 on automated individual decision-making also applies to many agentic deployments involving consequential decisions about individuals. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>“An eating-disorders chatbot offered dieting advice.” <em>NPR</em>, 2023. The National Eating Disorders Association (NEDA) wound down its human helpline and introduced an AI chatbot (“Tessa”), which was then suspended after it was found to provide harmful dieting advice to vulnerable users. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Pranav Gujarathi</name><email>pranavdg1997@gmail.com</email></author><category term="Agentic AI" /><category term="LLM" /><category term="Production" /><category term="ML-Ops" /><category term="AI Engineering" /><summary type="html"><![CDATA[This post is adapted from a talk I’ve been developing on shipping agentic AI systems at scale — drawing on experience across Walmart, Cigna, and now Twin Health. The thesis: most agent failures aren’t model failures. They’re harness failures.]]></summary></entry></feed>