<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: The Unmeshed Team</title>
    <description>The latest articles on DEV Community by The Unmeshed Team (@unmeshed).</description>
    <link>https://dev.to/unmeshed</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3953781%2F5af20b0f-7da7-4490-9183-a2d28dab3978.png</url>
      <title>DEV Community: The Unmeshed Team</title>
      <link>https://dev.to/unmeshed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/unmeshed"/>
    <language>en</language>
    <item>
      <title>Your LLM Returned a 200 OK. So Why Is the Answer Wrong?</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Mon, 31 Aug 2026 05:18:49 +0000</pubDate>
      <link>https://dev.to/unmeshed/your-llm-returned-a-200-ok-so-why-is-the-answer-wrong-j4a</link>
      <guid>https://dev.to/unmeshed/your-llm-returned-a-200-ok-so-why-is-the-answer-wrong-j4a</guid>
      <description>&lt;p&gt;The one thing that genuinely fills my brain with dopamine is watching Sherlock Holmes walk into a room and immediately know exactly what happened, who did it, and why, while everyone else is still standing around saying, &lt;em&gt;"something seems off."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Watson is great. He notices when something is wrong, he raises the alarm, he keeps track of what is happening. But he cannot tell you why. &lt;strong&gt;Holmes can. Same room, same evidence, completely different depth of understanding.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faayqh2m1frdrfjo1ijwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faayqh2m1frdrfjo1ijwv.png" alt="A visual workflow demonstrating how monitoring and observability complement each other. On the left, monitoring detects that a system appears healthy with a successful 200 OK response. On the right, observability traces the request through multiple processing steps and identifies a hallucination issue that operational metrics alone would miss. The graphic shows the difference between detecting symptoms and diagnosing root causes in AI systems." width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
That is exactly the difference between LLM monitoring and LLM observability. &lt;strong&gt;Monitoring is Watson;&lt;/strong&gt; it tells you something broke, latency spiked, error rates climbed, costs jumped. &lt;strong&gt;Observability is Holmes;&lt;/strong&gt; it shows you which step failed, what prompt it received, what the model returned, and where in the pipeline things went sideways.&lt;/p&gt;

&lt;p&gt;This post breaks down what each one covers, what to track, and when you need both.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is LLM Monitoring?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LLM monitoring is the practice of continuously tracking predefined metrics to tell you whether your AI system is healthy at a given point in time.&lt;/strong&gt; It watches from the outside and tells you when something crosses a threshold you set.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The metrics it typically covers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request latency at p50, p95, and p99&lt;/li&gt;
&lt;li&gt;Error rates and API failures&lt;/li&gt;
&lt;li&gt;Token usage per request&lt;/li&gt;
&lt;li&gt;Cost per call&lt;/li&gt;
&lt;li&gt;Throughput and availability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is continuous, real-time, and threshold-based. When &lt;a href="https://unmeshed.io/blog/commodity-trading-api-orchestration-unmeshed" rel="noopener noreferrer"&gt;latency exceeds&lt;/a&gt; two seconds, an alert fires. When error rates spike, your pager buzzes. It is how DevOps and platform teams know the system is running.&lt;/p&gt;

&lt;p&gt;What it cannot do is tell you why. A hallucinating model returns a 200 OK. Your dashboard stays green. Your user gets a wrong answer. LLM monitoring has no idea anything happened.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Monitoring is great at telling you a system is down. It is terrible at telling you your AI is confidently wrong."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chip Huyen, author of AI Engineering&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Is LLM Observability?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://unmeshed.io/blog/what-is-llm-observability-and-why-your-production-ai-needs-it" rel="noopener noreferrer"&gt;LLM observability&lt;/a&gt; &lt;strong&gt;is your ability to see inside a specific request and understand why it produced the output it did.&lt;/strong&gt; Where LLM monitoring watches the system from outside, observability gets inside each request and reconstructs what actually happened.&lt;/p&gt;

&lt;p&gt;Every request generates a trace, and LLM tracing is the mechanism that captures it: a structured record of each step from input to output. In a RAG pipeline, that might be seven steps. In an agent workflow, it could be forty. Observability captures all of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What LLM observability actually tracks:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The exact prompt sent to the model, fully resolved with all context injected&lt;/li&gt;
&lt;li&gt;The model's raw response before your code touched it&lt;/li&gt;
&lt;li&gt;Which documents retrieval returned and their relevance scores&lt;/li&gt;
&lt;li&gt;Latency broken down by individual step&lt;/li&gt;
&lt;li&gt;LLM evaluation scores for quality, relevance, and safety&lt;/li&gt;
&lt;li&gt;Hallucination detection signals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where you find out that the retrieval step returned stale documents, or that the prompt doubled in size because a context injection bug ran twice. LLM monitoring would never catch either of those. They both return a clean 200 OK.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbafjne77cjxyke1rn3py.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbafjne77cjxyke1rn3py.png" alt="A side-by-side comparison table showing the differences between LLM monitoring and LLM observability. Monitoring answers whether a system is working by tracking metrics and threshold-based alerts, while observability explains why a system behaved a certain way through traces and investigations. The comparison highlights different signals, approaches, and use cases for each practice." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  LLM Monitoring vs Observability: The Actual Difference
&lt;/h2&gt;

&lt;p&gt;The easiest way to think about it is the question each one answers.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;LLM Monitoring&lt;/th&gt;
&lt;th&gt;LLM Observability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Core question&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Is it working?&lt;/td&gt;
&lt;td&gt;Why did it behave that way?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Signals&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Latency, error rates, token counts, cost&lt;/td&gt;
&lt;td&gt;Traces, prompts, retrieval context, span metadata&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Approach&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Threshold-based alerts&lt;/td&gt;
&lt;td&gt;Exploratory, trace-driven investigation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Who uses it&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;DevOps, SREs, platform teams&lt;/td&gt;
&lt;td&gt;AI engineers, ML teams, product teams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;When you need it&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Continuous, real-time&lt;/td&gt;
&lt;td&gt;Incident investigation, quality debugging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lifecycle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Post-deployment only&lt;/td&gt;
&lt;td&gt;Dev through production&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;LLM monitoring tells you the alarm went off. LLM observability tells you which wire burned and why.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The gap between these two is where most production AI problems hide. According to Gartner, only &lt;a href="https://www.gartner.com/en/information-technology/insights/artificial-intelligence" rel="noopener noreferrer"&gt;15% of enterprises running generative AI&lt;/a&gt; in production have semantic quality monitoring in place alongside operational monitoring. The other 85% are flying half blind.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Track for LLM Monitoring?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Good monitoring covers three categories.&lt;/strong&gt; These are the signals that tell you something changed, even if they cannot tell you why.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgr73pvbthbjb45i44jg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgr73pvbthbjb45i44jg.png" alt="A diagram illustrating the core areas covered by LLM monitoring. A central monitoring dashboard connects to three categories: performance metrics such as latency and throughput, cost metrics including token usage and spend, and reliability metrics covering errors and uptime. The visual emphasizes that monitoring focuses on operational health and system performance rather than the internal reasoning behind model outputs." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Request latency at multiple percentiles (p50, p95, p99)&lt;/li&gt;
&lt;li&gt;Time to &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;first token&lt;/a&gt; for streaming applications&lt;/li&gt;
&lt;li&gt;Token generation rate&lt;/li&gt;
&lt;li&gt;Throughput&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cost and resource metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Input and output token counts separately (output costs four to five times more)&lt;/li&gt;
&lt;li&gt;Cost per request&lt;/li&gt;
&lt;li&gt;Total spend by model and by workflow&lt;/li&gt;
&lt;li&gt;GPU and CPU utilization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reliability metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Error rates by type&lt;/li&gt;
&lt;li&gt;API failure rates per provider&lt;/li&gt;
&lt;li&gt;Availability and uptime&lt;/li&gt;
&lt;li&gt;Rate limit hits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These numbers give you a real-time view of system health. Set alerts on the ones that matter for your SLAs and your budget. If any of them move, monitoring is what catches it first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Track for LLM Observability?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LLM observability goes into territory that operational metrics simply cannot reach.&lt;/strong&gt; These are the signals that tell you whether your AI is actually doing what it is supposed to do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdzc2yhmbcmv4olywrh1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdzc2yhmbcmv4olywrh1i.png" alt="A diagram showing the key components of LLM observability. At the center is an observability layer connected to four categories of signals: trace and span data, retrieval signals, quality signals, and drift signals. The visual highlights how observability provides insight into request execution, retrieval behavior, response quality, and changes in model performance over time, enabling teams to understand why AI systems behave the way they do." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Trace and span data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Full request traces with step-level breakdown&lt;/li&gt;
&lt;li&gt;Inputs and outputs at each step&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://unmeshed.io/blog/using-ai-wisely-starts-before-the-first-prompt" rel="noopener noreferrer"&gt;Prompt versions&lt;/a&gt; and model configurations&lt;/li&gt;
&lt;li&gt;Tool calls and their results in &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;agent workflows&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quality signals
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Hallucination detection rates&lt;/li&gt;
&lt;li&gt;Relevance scores for RAG outputs&lt;/li&gt;
&lt;li&gt;Factual accuracy against ground truth&lt;/li&gt;
&lt;li&gt;Safety and toxicity flags&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Retrieval signals (for RAG)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Documents retrieved and their relevance scores&lt;/li&gt;
&lt;li&gt;Context window utilization&lt;/li&gt;
&lt;li&gt;Retrieval latency by query type&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Drift signals
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Output quality degradation over time&lt;/li&gt;
&lt;li&gt;Semantic drift in responses&lt;/li&gt;
&lt;li&gt;Prompt effectiveness changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The distinction matters most for agentic systems. According to Databricks, &lt;a href="https://www.databricks.com/glossary/agent-evaluation" rel="noopener noreferrer"&gt;tool-related failures are the most common category of production agent failures&lt;/a&gt;, and they are almost entirely invisible to LLM monitoring alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Failure Modes Does Each One Catch?
&lt;/h2&gt;

&lt;p&gt;This is the table worth bookmarking. Different failures require different detection approaches.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Failure Mode&lt;/th&gt;
&lt;th&gt;LLM Monitoring Catches It?&lt;/th&gt;
&lt;th&gt;LLM Observability Catches It?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Latency spikes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes, plus tells you which step&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost overruns&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes, plus tells you which prompt caused it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hallucinations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Silent quality degradation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wrong retrieval context&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prompt regression after update&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Provider outages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Partially&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent tool-call loops&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice how many of the hardest failures, the ones your users will actually complain about, fall entirely in the observability column.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LLM monitoring would never catch a hallucination.&lt;/strong&gt; It would never catch retrieval returning stale documents. It would never catch a &lt;a href="https://unmeshed.io/blog/how-to-reduce-llm-costs-through-better-prompt-optimization" rel="noopener noreferrer"&gt;prompt regression&lt;/a&gt; that degraded quality across ten thousand requests while every operational metric stayed green.&lt;/p&gt;

&lt;p&gt;This is the Watson problem. Watson keeps excellent notes. He just cannot solve the case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do You Need Both?
&lt;/h2&gt;

&lt;p&gt;For simple, single-model applications at low volume, LLM monitoring alone might be enough. If your app sends a request to one provider and returns the result, and quality is easy to verify, start with &lt;strong&gt;monitoring and add observability as complexity grows.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For everything else, you need both. That includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RAG pipelines where retrieval quality determines output quality&lt;/li&gt;
&lt;li&gt;Multi-step agent workflows where tool failures compound&lt;/li&gt;
&lt;li&gt;Any application in a regulated industry where audit trails matter&lt;/li&gt;
&lt;li&gt;High-volume production systems where production AI monitoring alone leaves quality gaps&lt;/li&gt;
&lt;li&gt;Teams running multiple models where routing and fallback need visibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;McKinsey found that &lt;a href="https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai" rel="noopener noreferrer"&gt;88% of organizations use AI in at least one business function&lt;/a&gt; but only 1% report mature implementations. A lot of that gap lives in observability. Teams move fast and quality problems surface from user complaints rather than dashboards.&lt;/p&gt;

&lt;p&gt;If you want to go deeper on what LLM observability specifically covers, our post on &lt;a href="https://unmeshed.io/blog/what-is-llm-observability-and-why-your-production-ai-needs-it" rel="noopener noreferrer"&gt;what LLM observability is and why your production AI needs it&lt;/a&gt; covers the full picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Start With LLM Monitoring in Production?
&lt;/h2&gt;

&lt;p&gt;The practical rollout most teams follow looks something like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvljm0vapspdnxjpwqyhm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvljm0vapspdnxjpwqyhm.png" alt="A roadmap illustrating a practical six-week approach to implementing LLM monitoring and observability. The timeline begins with establishing a monitoring foundation during weeks one and two, followed by request tracing in weeks three and four, adding evaluation layers in weeks five and six, and then ongoing refinement using production traces. The graphic emphasizes a phased rollout from operational visibility to AI quality assurance." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Weeks one and two
&lt;/h3&gt;

&lt;p&gt;Set up the monitoring foundation. Instrument latency, error rates, token usage, and cost. Get dashboards and basic alerts in place.&lt;/p&gt;

&lt;p&gt;This is your Watson layer. It notices when something is off.&lt;/p&gt;

&lt;h3&gt;
  
  
  Weeks three and four
&lt;/h3&gt;

&lt;p&gt;Add request-level tracing. Capture full traces with span-level detail. Log prompt and response pairs with metadata.&lt;/p&gt;

&lt;p&gt;Now you have the Holmes layer, the one that can actually investigate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Weeks five and six
&lt;/h3&gt;

&lt;p&gt;Layer in evaluation. Run automated quality scoring on production traffic. Set alerts when quality scores drop.&lt;/p&gt;

&lt;p&gt;This closes the gap between &lt;strong&gt;"the system is running"&lt;/strong&gt; and &lt;strong&gt;"the system is working."&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ongoing
&lt;/h3&gt;

&lt;p&gt;Feed production traces back into your evaluation datasets, refine scoring logic as the application evolves, and improve prompts based on what the traces actually show you.&lt;/p&gt;

&lt;p&gt;The temptation is to skip straight to observability tooling before monitoring basics are in place. Do not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring gives you the baseline for LLM performance tracking that makes observability useful.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Unmeshed Fits Into LLM Monitoring?
&lt;/h2&gt;

&lt;p&gt;Unmeshed is a workflow orchestration platform, not a dedicated observability tool. But if you are running &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;AI workflows&lt;/a&gt; in Unmeshed, you already have something most teams set up separately: step-level execution visibility baked into every workflow run.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fft402zzcfy2l10xopwb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fft402zzcfy2l10xopwb1.png" alt="A workflow diagram showing step-level visibility across an AI-powered process. An input flows through an AI LLM step and subsequent workflow components, with visibility into data received, outputs returned, cache or error status, and model prompts and responses. The visual demonstrates how workflow orchestration platforms provide execution-level transparency for every stage of an AI workflow, making troubleshooting and debugging easier." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every step records:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What it received as input and what it returned&lt;/li&gt;
&lt;li&gt;Whether it hit a cache or triggered an error policy&lt;/li&gt;
&lt;li&gt;What the model was asked and what it returned for AI LLM steps specifically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not semantic evaluation or hallucination detection. It is the execution-level foundation that makes LLM monitoring actually useful. You know which step ran, what it received, and where things went sideways before you even open a separate observability tool.&lt;/p&gt;

&lt;p&gt;If you want to see what that looks like in a real AI workflow, the &lt;a href="https://unmeshed.io/products/agentic" rel="noopener noreferrer"&gt;Agentic AI page&lt;/a&gt; shows how AI steps sit inside production workflows. And if you are ready to build, &lt;a href="https://unmeshed.io/signup" rel="noopener noreferrer"&gt;start free&lt;/a&gt;, and your first workflow has step-level visibility from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;LLM monitoring and LLM observability are not competing approaches. They answer different questions, and they catch different problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring is Watson.&lt;/strong&gt; It watches the system, notices when something changes, and raises the alarm. You absolutely need it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observability is Holmes.&lt;/strong&gt; It gets inside the request, follows the evidence, and tells you exactly what happened and why. For anything beyond the simplest AI application, you need this too.&lt;/p&gt;

&lt;p&gt;Start with monitoring. Add observability as your system gets more complex.&lt;/p&gt;

&lt;p&gt;And never assume a green dashboard means your AI is producing good answers, because it almost certainly is not telling you either way.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>devops</category>
      <category>observability</category>
    </item>
    <item>
      <title>Is Your Company in a Situationship with AI?</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Fri, 28 Aug 2026 06:14:00 +0000</pubDate>
      <link>https://dev.to/unmeshed/is-your-company-in-a-situationship-with-ai-4f6m</link>
      <guid>https://dev.to/unmeshed/is-your-company-in-a-situationship-with-ai-4f6m</guid>
      <description>&lt;p&gt;Over the past year, I've watched a surprising number of my friends go through something. It feels like every few weeks, someone tells me about some kind of relationship. They text every day. They spend weekends together. They know each other's coffee orders and favorite songs. Yet somehow, when someone asks, "So… are you two together?" the answer is always the same. "We're just seeing where things go."&lt;/p&gt;

&lt;p&gt;The internet has a word for relationships that are more than casual, but never quite become serious: &lt;strong&gt;Situationship&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's when two people spend time together, make plans, rely on each other, and maybe even imagine a future together, but somehow never have the conversation.&lt;/p&gt;

&lt;p&gt;At first, I thought it was just another internet term for modern dating. But the more I listened to these stories, the more I realized situationships aren't really about romance. They're about ambiguity. About moving forward without defining expectations. About everyone assuming the relationship means the same thing, until one day it becomes painfully obvious that it doesn't.&lt;/p&gt;

&lt;p&gt;The problem wasn't a lack of feelings. It was a lack of definition. That thought stayed with me longer than I expected.&lt;/p&gt;

&lt;p&gt;A few days later, while reading about companies moving beyond vibe coding toward governed AI, I realized I'd seen this pattern somewhere else before. It reminded me of how many companies are approaching AI today.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Relationship Exists. The Definition Doesn't.
&lt;/h2&gt;

&lt;p&gt;Ask almost any company whether they're using AI. The answer is almost always yes.&lt;/p&gt;

&lt;p&gt;AI is no longer a side project. It has found its way into product roadmaps, quarterly planning sessions, strategy discussions, and conversations about the future of work. In many companies, AI isn't something a single team owns. It's something almost every team wants to use.&lt;/p&gt;

&lt;p&gt;That's because AI enters a company through different doors.&lt;/p&gt;

&lt;p&gt;For Engineering, it's an opportunity to build something new. Product sees new ways to improve customer experiences. Leadership imagines a competitive advantage, while Security begins thinking about the risks that come with adopting another technology. Operations looks at AI and wonders which workflows could become faster or more efficient.&lt;/p&gt;

&lt;p&gt;None of these perspectives are wrong. In fact, they're all necessary. Everyone welcomes AI, just for different reasons. And that's where the ambiguity begins.&lt;/p&gt;

&lt;p&gt;If you've ever watched a situationship unfold, you'll notice that it rarely ends because people don't care. It ends because no one ever defines the relationship. Both people assume they're working toward the same future, until one day they realize they've been operating with completely different expectations. Companies often fall into the same pattern with AI.&lt;/p&gt;

&lt;p&gt;Product expects Leadership to define the strategy. Leadership assumes Engineering will figure out implementation. Security waits until AI reaches production. Customer Success assumes someone else is monitoring AI-generated responses.&lt;/p&gt;

&lt;p&gt;Everyone is involved, yet no one has clearly defined who owns which part of AI.&lt;/p&gt;

&lt;p&gt;From the outside, it looks like a committed relationship. Inside, everyone is operating with a different understanding of what that relationship actually means.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining the Relationship
&lt;/h2&gt;

&lt;p&gt;In dating, defining the relationship doesn't make it less exciting. It creates clarity. Everyone knows where they stand. Companies eventually need the same conversation.&lt;/p&gt;

&lt;p&gt;Just as healthy relationships work because both people understand their roles, healthy AI adoption depends on every team understanding where their responsibilities begin and end.&lt;/p&gt;

&lt;p&gt;A simple way to think about it looks like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;AI Responsibility&lt;/th&gt;
&lt;th&gt;A Question Every Company Should Answer&lt;/th&gt;
&lt;th&gt;Typical Owner&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Business Outcome&lt;/td&gt;
&lt;td&gt;What business problem is AI solving?&lt;/td&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflow Execution&lt;/td&gt;
&lt;td&gt;How does AI fit into the workflow?&lt;/td&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model Performance&lt;/td&gt;
&lt;td&gt;Is the model still accurate, reliable, and cost-effective?&lt;/td&gt;
&lt;td&gt;AI/ML Team or Engineering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customer Experience&lt;/td&gt;
&lt;td&gt;How do customers experience AI, and when should a human step in?&lt;/td&gt;
&lt;td&gt;Product &amp;amp; Customer Success&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk &amp;amp; Compliance&lt;/td&gt;
&lt;td&gt;Is AI being used safely and responsibly?&lt;/td&gt;
&lt;td&gt;Security, Legal, or Governance Team&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice that no single team owns AI. Instead, every team owns a different part of making AI successful. That's the difference between experimenting with AI and operating AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ownership Is What Turns AI Into Infrastructure
&lt;/h2&gt;

&lt;p&gt;The difference between experimentation and production isn't usually the model. It's accountability. The companies succeeding with AI aren't necessarily using the smartest models. They're the ones where everyone knows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who owns the workflow&lt;/li&gt;
&lt;li&gt;Who measures success&lt;/li&gt;
&lt;li&gt;Who responds when something goes wrong&lt;/li&gt;
&lt;li&gt;And who decides when AI is no longer the right solution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ownership transforms AI from an interesting experiment into reliable infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Situationship to Partnership
&lt;/h2&gt;

&lt;p&gt;Eventually, every situationship reaches the same crossroads.&lt;/p&gt;

&lt;p&gt;Not because the feelings disappear, but because uncertainty eventually catches up. The conversations that were easy to postpone become impossible to avoid. Questions about expectations, commitment, and responsibility can no longer be left unanswered.&lt;/p&gt;

&lt;p&gt;Companies reach a similar moment as AI becomes part of everyday operations.&lt;/p&gt;

&lt;p&gt;Experimentation gets teams started. But scaling AI across a company requires something different: clarity around ownership, visibility into how AI workflows operate, and confidence that every decision has someone accountable behind it.&lt;/p&gt;

&lt;p&gt;After all, healthy relationships aren't built on assumptions. Neither are healthy AI systems. Both begin with the same conversation:&lt;/p&gt;

&lt;p&gt;"What are we, and who's responsible for what comes next?"&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>LLM Gateways: The Missing Layer in Your Production AI Stack</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Thu, 27 Aug 2026 05:30:39 +0000</pubDate>
      <link>https://dev.to/unmeshed/llm-gateways-the-missing-layer-in-your-production-ai-stack-44il</link>
      <guid>https://dev.to/unmeshed/llm-gateways-the-missing-layer-in-your-production-ai-stack-44il</guid>
      <description>&lt;p&gt;Hey, have you seen those heaven gateway memes?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8u2wf9k6q8f5tbnkpiib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8u2wf9k6q8f5tbnkpiib.png" alt="Meme showing a stick figure standing at the gates of heaven with text comparing managing multiple LLM providers without a gateway to being questioned at heaven's entrance" width="800" height="924"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An LLM gateway is kind of the same thing, except instead of deciding who gets into heaven, &lt;strong&gt;it decides which LLM provider handles your request&lt;/strong&gt;, who gets turned away when rate limits hit, and who the fallback is when your first choice is having a bad day.&lt;/p&gt;

&lt;p&gt;Most teams building AI in production end up needing one sooner or later, usually after they have written enough provider-specific code to realize they accidentally built a worse version of it themselves.&lt;/p&gt;

&lt;p&gt;This post breaks down how an LLM gateway actually works and when you need one.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What Is an LLM Gateway?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;An LLM gateway is middleware that sits between your application and the&lt;/strong&gt; &lt;a href="https://unmeshed.io/blog/how-to-reduce-llm-costs-through-better-prompt-optimization" rel="noopener noreferrer"&gt;LLM providers you use&lt;/a&gt; &lt;strong&gt;.&lt;/strong&gt; Your app sends a request to the gateway, and the gateway decides where it goes, which provider handles it, what format the request should be in, and what happens if something goes wrong.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl263vomsfiomv1umzflh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl263vomsfiomv1umzflh.png" alt="A gateway replaces multiple provider-specific integrations with a single interface, reducing maintenance effort, improving portability, and simplifying multi-provider AI architectures" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Without one, your app talks directly to each provider. OpenAI returns responses one way. Anthropic returns them another. Mistral does its own thing. You end up writing adapters for all of them, and maintaining those adapters every time a provider changes their API (which they do, often and without much warning).&lt;/p&gt;

&lt;p&gt;The market for this infrastructure is growing fast. The LLM middleware gateway market is projected to grow at a &lt;a href="https://www.intelmarketresearch.com/llm-middleware-gateway-market-30754" rel="noopener noreferrer"&gt;49.6% CAGR through 2034&lt;/a&gt;, and roughly &lt;a href="https://www.intelmarketresearch.com/llm-middleware-gateway-market-30754" rel="noopener noreferrer"&gt;42% of enterprises already use a middleware layer&lt;/a&gt; to manage their AI infrastructure.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The real cost of managing multiple LLM providers is not the API bills. It is the engineering time spent writing glue code that has nothing to do with your actual product." &lt;strong&gt;Andrej Karpathy, former OpenAI&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An LLM gateway abstracts all of that away. One API in, one consistent response format out, every provider handled behind the scenes.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What Problems Do You Face Without an LLM Gateway?
&lt;/h2&gt;

&lt;p&gt;The short answer is more than you expect, and teams usually find out the hard way. Running &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;production AI&lt;/a&gt; without an LLM gateway tends to surface problems gradually, then all at once.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vendor Lock-in
&lt;/h3&gt;

&lt;p&gt;When you integrate directly with one provider, your entire system depends on them. If their prices spike, performance degrades, or they change their terms, migrating is a real engineering project.&lt;/p&gt;

&lt;p&gt;You are not switching a config value. You are rewriting integrations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.index.dev/blog/llm-enterprise-adoption-statistics" rel="noopener noreferrer"&gt;Over 80% of enterprises are expected to deploy generative AI APIs by end of 2026&lt;/a&gt;, up from under 5% in 2023. Managing multiple providers without a unified layer becomes an operational problem at that scale.&lt;/p&gt;

&lt;h3&gt;
  
  
  API Fragmentation
&lt;/h3&gt;

&lt;p&gt;Every provider defines request and response formats differently. Your code becomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A custom adapter for OpenAI&lt;/li&gt;
&lt;li&gt;Another one for Anthropic&lt;/li&gt;
&lt;li&gt;Another one for Mistral&lt;/li&gt;
&lt;li&gt;And a prayer that none of them change their schema this quarter&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cost Opacity
&lt;/h3&gt;

&lt;p&gt;Without a single point to track spend, costs scatter across provider dashboards. You cannot connect a cost spike to a specific feature or workflow. The invoice arrives, and nobody can explain the number.&lt;/p&gt;

&lt;p&gt;If you are already running workflows in Unmeshed, you can see token usage and cost broken down at the step level. The &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;bringing AI workflows into production without burning tokens&lt;/a&gt; post covers how that works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Operational Fragmentation
&lt;/h3&gt;

&lt;p&gt;Debugging, monitoring, and optimizing routing become genuinely painful when everything lives across separate integrations. You are jumping between dashboards, alert systems, and logs that were never designed to talk to each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. How Does an LLM Gateway Work?
&lt;/h2&gt;

&lt;p&gt;An LLM gateway is a middleware layer between your application and AI model providers like OpenAI, Anthropic, or self hosted models. Instead of integrating multiple SDKs, your application sends requests to a single API while the gateway handles routing, security, and cost tracking.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9nqgindsld02c9k04fkt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9nqgindsld02c9k04fkt.png" alt="An LLM gateway standardizes provider communication, handles routing and translation, and adds observability while introducing only a small amount of overhead" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is what happens when your app sends a request through an LLM gateway:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;th&gt;Overhead&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Request received&lt;/td&gt;
&lt;td&gt;Authentication validated, policies checked&lt;/td&gt;
&lt;td&gt;1 to 2ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Routing decision&lt;/td&gt;
&lt;td&gt;Provider selected based on cost, latency, or custom rules&lt;/td&gt;
&lt;td&gt;1ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Request translation&lt;/td&gt;
&lt;td&gt;Standardized request converted to provider format&lt;/td&gt;
&lt;td&gt;1 to 2ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. API call&lt;/td&gt;
&lt;td&gt;Request sent to LLM provider&lt;/td&gt;
&lt;td&gt;Variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Response translation&lt;/td&gt;
&lt;td&gt;Provider response converted to standard format&lt;/td&gt;
&lt;td&gt;1 to 2ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. Logging&lt;/td&gt;
&lt;td&gt;Tokens, costs, latency recorded&lt;/td&gt;
&lt;td&gt;1ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total gateway overhead&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Before the model responds&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5 to 10ms (before the model responds)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That 5 to 10ms is the cost of having complete visibility and control over every request. For most production systems, that is a very reasonable trade.&lt;/p&gt;

&lt;p&gt;The unified LLM API gateway pattern means your application code never needs to know which provider it is talking to. &lt;strong&gt;You write to one interface, and the gateway handles the translation.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. What Features Does Your LLM Gateway Need?
&lt;/h2&gt;

&lt;p&gt;Not all gateways are built the same. Here is what actually matters when you are running AI in production.&lt;/p&gt;

&lt;h3&gt;
  
  
  Model Abstraction
&lt;/h3&gt;

&lt;p&gt;Write once, route anywhere. Your application code stays the same regardless of which provider handles the request. &lt;strong&gt;Switch from GPT to Claude without touching your integration layer.&lt;/strong&gt; This is what "LLM provider abstraction layer" actually means in practice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Intelligent Routing and Load Balancing
&lt;/h3&gt;

&lt;p&gt;LLM routing and load balancing is where most of the cost optimization lives. Send simple classification tasks to cheaper models. Route complex reasoning to the models that can actually handle it. Load balance across multiple instances when one is slow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftvqya25r1q644bglq638.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftvqya25r1q644bglq638.png" alt="Diagram showing an incoming AI request being routed to different models based on cost, complexity, or provider availability" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is not a nice-to-have.&lt;/strong&gt; At scale, smart routing is the difference between an AI bill you can explain and one that makes your finance team ask questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Control
&lt;/h3&gt;

&lt;p&gt;Set hard limits per user, team, or workflow. Track spend in real time rather than at month-end. According to &lt;a href="https://www.gartner.com/en/information-technology/insights/artificial-intelligence" rel="noopener noreferrer"&gt;Gartner&lt;/a&gt;, uncontrolled AI inference spend is now one of the top three budget surprises for enterprise engineering teams. A good gateway prevents that.&lt;/p&gt;

&lt;h3&gt;
  
  
  Failover and Fallback
&lt;/h3&gt;

&lt;p&gt;If a provider goes down or hits rate limits, the gateway automatically retries with a different provider. Your application keeps running. Users never notice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Observability
&lt;/h3&gt;

&lt;p&gt;See every request, every provider, &lt;a href="https://unmeshed.io/blog/what-is-llm-observability-and-why-your-production-ai-needs-it" rel="noopener noreferrer"&gt;every cost in one place&lt;/a&gt;. Multi-model LLM orchestration only works if you can actually see what all the models are doing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security and Compliance
&lt;/h3&gt;

&lt;p&gt;Centralized LLM cost tracking and policy enforcement beats managing security across five separate integrations. Enterprise teams need audit logs, role-based access, and data handling rules in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. LLM Gateway vs Direct API Integration
&lt;/h2&gt;

&lt;p&gt;Here is the honest comparison:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Direct API&lt;/th&gt;
&lt;th&gt;LLM Gateway&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Setup&lt;/td&gt;
&lt;td&gt;Separate integration per provider&lt;/td&gt;
&lt;td&gt;One integration point&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flexibility&lt;/td&gt;
&lt;td&gt;Hard to switch providers&lt;/td&gt;
&lt;td&gt;Switch in configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost tracking&lt;/td&gt;
&lt;td&gt;Scattered across dashboards&lt;/td&gt;
&lt;td&gt;Centralized view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security enforcement&lt;/td&gt;
&lt;td&gt;Per integration&lt;/td&gt;
&lt;td&gt;One place&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failover&lt;/td&gt;
&lt;td&gt;Custom code every time&lt;/td&gt;
&lt;td&gt;Built in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vendor lock-in&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance&lt;/td&gt;
&lt;td&gt;Grows with every provider&lt;/td&gt;
&lt;td&gt;Stays manageable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Direct integration works fine for a single provider at small scale. Once you are running multiple models in production, the maintenance cost of direct integration compounds fast. A gateway is not complexity for its own sake. It is complexity that replaces worse complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. When Should You Use an LLM Gateway?
&lt;/h2&gt;

&lt;p&gt;There is no hard rule on when an LLM gateway becomes necessary, but here are the situations where teams reliably reach for one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost optimization&lt;/strong&gt; is the most common driver. Route non-critical queries to cheaper models and reserve expensive ones for high-value tasks. Teams typically see 40 to 60 percent cost reduction without touching output quality. Teams that skip the gateway layer entirely tend to see &lt;a href="https://www.getmaxim.ai/articles/top-5-llm-gateways-in-2026-a-production-ready-comparison/" rel="noopener noreferrer"&gt;token spend climb 30 to 40 percent faster than necessary&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-model applications&lt;/strong&gt; are where gateways really earn their place. An AI assistant that uses different models for different tasks (classification on a smaller model, reasoning on a frontier one, summarization on another) needs something to coordinate all of that. That something is the gateway.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enterprise compliance&lt;/strong&gt; is non-negotiable in certain industries. Banks and healthcare companies need centralized control, audit logs, and data policies enforced at the request layer. Doing that across five direct integrations is an audit nightmare.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provider flexibility&lt;/strong&gt; matters for any team still figuring out which models are right for which tasks. A gateway lets you test OpenAI versus Anthropic versus open source without rewriting code every time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High-volume production systems&lt;/strong&gt; handling millions of requests need load balancing, failover, and cost attribution at scale. You cannot bolt that on as an afterthought.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unmeshed handles exactly this kind of multi-step AI orchestration natively. The &lt;a href="https://unmeshed.io/products/agentic" rel="noopener noreferrer"&gt;Agentic AI page&lt;/a&gt; shows what that looks like in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Should You Build or Buy an LLM Gateway?
&lt;/h2&gt;

&lt;p&gt;The build vs buy question comes up constantly when teams are evaluating an LLM gateway, and the math is usually pretty clear once you add it up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building your own means&lt;/strong&gt; supporting every provider's API as they evolve, writing routing logic, building cost tracking, implementing failover, handling security, and maintaining all of it. That is not a weekend project. That is a team of engineers maintaining infrastructure that has nothing to do with what your product actually does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Buying means&lt;/strong&gt; setup in hours instead of months. You get updates when providers change their APIs (and they will). You get security patches. You get operational support.&lt;/p&gt;

&lt;p&gt;Every hour your team spends building gateway infrastructure is an hour not spent building your actual product.&lt;/p&gt;

&lt;p&gt;The only case for building your own is if your requirements are genuinely unusual enough that nothing on the market fits. That happens, but it is rarer than teams think.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. How Unmeshed Handles LLM Routing?
&lt;/h2&gt;

&lt;p&gt;Unmeshed is not a dedicated LLM gateway, and it is worth being clear about what that means before you read this section. It is a workflow orchestration platform that covers part of what an LLM gateway does, specifically the routing and fallback piece.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwv3sf3lsqmu9gcgav4ma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwv3sf3lsqmu9gcgav4ma.png" alt="Workflow diagram showing automatic failover from a primary LLM provider to a fallback provider when a service becomes unavailable" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Unmeshed does cover is the routing part of what a gateway does.&lt;/strong&gt; Using switch steps combined with different LLM model steps, you can build routing logic directly into your workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A switch step evaluates the condition (task complexity, cost threshold, whatever makes sense for your use case)&lt;/li&gt;
&lt;li&gt;Each branch routes to a different LLM provider via a dedicated model step&lt;/li&gt;
&lt;li&gt;Fallback logic handles what happens if the primary provider fails or rate limits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are already orchestrating workflows in Unmeshed, you may not need a separate gateway for the routing and fallback piece. It is already there.&lt;/p&gt;

&lt;p&gt;What Unmeshed does not replace is the full gateway layer, things like unified API abstraction across providers, PII redaction at the request level, or a single cost dashboard across all your model spend. For those, you would still want a dedicated gateway.&lt;/p&gt;

&lt;p&gt;The combination that works well for a lot of teams is a gateway handling the provider-level concerns (format translation, rate limits, security) and &lt;strong&gt;Unmeshed handling the workflow-level concerns (what runs when, which steps use AI versus deterministic code, what happens when something fails).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you want to see how Unmeshed handles routing and fallback inside a real workflow,&lt;/em&gt; &lt;a href="https://unmeshed.io/templates" rel="noopener noreferrer"&gt;explore the templates&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; &lt;a href="https://unmeshed.io/signup" rel="noopener noreferrer"&gt;start free&lt;/a&gt; &lt;em&gt;and build your first AI workflow today.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. What Mistakes Do Teams Make With LLM Gateways?
&lt;/h2&gt;

&lt;p&gt;Teams setting up an LLM gateway for the first time tend to run into the same patterns repeatedly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Over-engineering the router:&lt;/strong&gt; Simple rules outperform complex logic more often than people expect. Route based on cost or latency. Do not try to predict model performance from first principles. Let real production data drive routing decisions over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Not tracking costs at the task level:&lt;/strong&gt; Knowing your total monthly spend is not enough. You need to know cost per workflow, per feature, per user. Without that, teams optimize things that do not actually move the bill.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ignoring failover until something breaks:&lt;/strong&gt; Test what happens when a provider goes down before it goes down. Your gateway should handle it automatically, and your users should never notice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Assuming all providers are equal:&lt;/strong&gt; They are not. OpenAI and Anthropic have different rate limits, different response quality on different task types, different &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;costs per token&lt;/a&gt;, and different reliability characteristics. Your routing logic needs to know the difference.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;An LLM gateway is what sits between your application and the chaos of managing multiple LLM providers directly, and once you have used one, you will wonder how you shipped without it. It handles routing, failover, format translation, cost tracking, and policy enforcement so your application code can stay clean and your team can focus on building things that actually matter.&lt;/p&gt;

&lt;p&gt;Most teams start without one and add it when the pain of managing direct integrations gets expensive enough. &lt;strong&gt;The better move is to start with one and never accumulate that pain in the first place.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>devops</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>7 Insurance Workflows Every Team Should Automate in 2026 And What Each One Actually Saves</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Mon, 24 Aug 2026 06:24:39 +0000</pubDate>
      <link>https://dev.to/unmeshed/7-insurance-workflows-every-team-should-automate-in-2026-and-what-each-one-actually-saves-3557</link>
      <guid>https://dev.to/unmeshed/7-insurance-workflows-every-team-should-automate-in-2026-and-what-each-one-actually-saves-3557</guid>
      <description>&lt;p&gt;I am writing this at exactly 2 a.m., and I am still annoyed about a phone call from this afternoon. Forty minutes on hold with my own insurer to change one address.&lt;/p&gt;

&lt;p&gt;One.&lt;/p&gt;

&lt;p&gt;That is not a customer service problem. That is an insurance workflow automation problem, and it happens to be exactly what this post is about.&lt;/p&gt;

&lt;p&gt;The person who finally picked up was not slow or bad at their job. They were buried under the same routine request a thousand other people needed that day, and not one of those needed a human to begin with.&lt;/p&gt;

&lt;p&gt;McKinsey found that insurers leading on AI earned 6.1 times the shareholder return of the ones lagging behind — the widest gap of any industry. That gap was never about staffing. It came down to who stopped doing by hand what a rule could handle on its own.&lt;/p&gt;

&lt;p&gt;This post walks through seven processes worth automating first, what each one saves, and how to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What Insurance Workflow Automation Actually Is (And Why It Matters Now)
&lt;/h2&gt;

&lt;p&gt;Insurance workflow automation means using technology to handle the repetitive, rule-based work that eats up your team's day, without a person having to touch every step. It is not digitization. It is not scanning paper into a computer and calling it progress. It is the actual work getting done on its own.&lt;/p&gt;

&lt;p&gt;Research suggests up to 45% of work activities across the insurance value chain can be automated with technology that already exists today.&lt;/p&gt;

&lt;p&gt;Think about a claim coming in. The system pulls the details, checks them against your rules, sends it to the right adjuster, and confirms receipt with the customer. Nobody touches it until it hits a point that genuinely needs a human to weigh in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgsph24fl7hq3krgbb0th.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgsph24fl7hq3krgbb0th.jpg" alt="An infographic comparing a manual FNOL (First Notice of Loss) process with an automated intake workflow. The left side shows a person handling piles of paperwork during a 15-minute manual process, while the right side shows an automated flow moving from a document through processing into a database in just 2 minutes, highlighting the hidden cost of manual work and the efficiency of automation.Image description" width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why does this matter so much right now? Because two things are pulling in opposite directions. Customer expectations keep climbing while your team's capacity stays flat.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers want answers in hours, not days&lt;/li&gt;
&lt;li&gt;Regulators want more compliance proof, not less&lt;/li&gt;
&lt;li&gt;Carriers need to grow without adding headcount at the same pace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Insurance AI deployments grew 87 percent year over year into 2025, and the carriers moving first are pulling away from the ones still deciding.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The 7 Insurance Workflow Automation Processes That Deliver the Biggest Returns
&lt;/h2&gt;

&lt;p&gt;Your budget and your time are both limited, so start where the return is fastest. These seven represent the highest volume work in most insurance operations, and they pay back quicker than anything else you could pick.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frggyvo40r2xmn3byc5e6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frggyvo40r2xmn3byc5e6.jpg" alt="An infographic showing the automation potential across seven insurance processes: FNOL intake, policy renewals, quote generation, underwriting data, policy servicing, claims documentation, and compliance and audit. Each process is represented with a horizontal bar and categorized by high or medium automation potential." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A. FNOL Intake
&lt;/h3&gt;

&lt;p&gt;First notice of loss is where speed matters most. A customer has a problem; they reach out, and the next few minutes decide whether they stay or start shopping around.&lt;/p&gt;

&lt;p&gt;Done by hand, one call ties up a staffer for at least 15 minutes: picking up the phone and calming the customer down, asking the questions in the right order, typing notes, routing the claim. At 5,000 calls a month, that's roughly 1,250 hours of staff time.&lt;/p&gt;

&lt;p&gt;Automated intake works differently. The system takes the call or form, asks the questions in order, and validates each answer as it lands. It routes the claim, hands the customer a claim number on the spot, and gives the adjuster a clean case to open.&lt;/p&gt;

&lt;p&gt;Intake drops from 15 minutes to about 2. That saves more than a thousand hours a month, so one person handles what used to take a room of twenty.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your workflows extend into lending, our loan application processing solution page covers a similar pattern.&lt;/p&gt;

&lt;p&gt;See this exact workflow, ready to run&lt;br&gt;
Get the FNOL-to-settlement template, prebuilt with AI extraction, rule-based coverage checks, and adjuster review steps.&lt;br&gt;
&lt;a href="https://unmeshed.io/templates/claims-automation-fnol-to-settlement" rel="noopener noreferrer"&gt;Try the Template&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  B. Policy Renewals
&lt;/h3&gt;

&lt;p&gt;Renewals are pure volume. Notices go out, and then the responses scatter in every direction — some call with questions, some need documents resent, some adjust coverage, and plenty just pay.&lt;/p&gt;

&lt;p&gt;At 10,000 renewals a month, the manual version (staff working through mail, email, and phone calls while updating the system by hand) turns into a mess fast.&lt;/p&gt;

&lt;p&gt;Automation runs the whole thing end to end: notices go out on schedule, anyone making a change moves through a guided flow instead of an email thread, payments process and confirm on their own, and quiet customers get automatic reminders by phone, text, or email.&lt;/p&gt;

&lt;p&gt;That is more than 2,000 hours a month back on the calendar, with renewals that once took three exchanges now closing in one.&lt;/p&gt;

&lt;h3&gt;
  
  
  C. Quote Generation and Quote Follow-up
&lt;/h3&gt;

&lt;p&gt;A producer gets a quote request and, done by hand, logs into a few systems, gathers the details, runs the numbers, formats the document, sends it, and chases the follow-up. One quote runs 20 to 30 minutes. At 2,000 requests a month, that's over a thousand hours of manual quoting.&lt;/p&gt;

&lt;p&gt;Automation captures requests from your website, email, phone, or broker portal, gathers the information, runs it against your rules, and sends the finished quote back in minutes. &lt;/p&gt;

&lt;p&gt;If a quote goes unanswered past a set window, the system follows up on its own. If one gets abandoned, it flags the producer to step in personally.&lt;/p&gt;

&lt;p&gt;The producer now spends their hours closing rather than formatting. Turnaround falls from a full day to minutes, which saves more than 800 hours a month and tends to lift close rates, because speed wins deals.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Automation does not replace your producers. It gives them time to close deals instead of pu&lt;br&gt;
sh paper".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  D. Underwriting Data Gathering
&lt;/h3&gt;

&lt;p&gt;Underwriters run on information, and a lot of it. Medical records, financial statements, prior claims history, credit reports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foy4z6yve6090rfamwczh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foy4z6yve6090rfamwczh.jpg" alt="An infographic showing how underwriting data gathering can be automated. Medical records, claims history, financial statements, and credit reports feed into a centralized underwriting file, which reaches 80% completion while automated workflows generate requests, track missing information, and remind applicants about gaps." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Done manually, assistants request each document, chase the applicant, receive it, organize it, and prep it. A single complex case can pull from ten sources across several rounds of back and forth.&lt;/p&gt;

&lt;p&gt;Policy underwriting automation connects straight to your data providers and pulls what it can on its own. From there it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generates smart requests for whatever it cannot find&lt;/li&gt;
&lt;li&gt;Tracks what has come back against what is still missing&lt;/li&gt;
&lt;li&gt;Nudges applicants for the gaps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the time the underwriter opens the file, around 80 percent of the data is already there and organized. That takes 30 to 40 percent of assistant time off the table and gets to a decision faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  E. Policy Servicing Requests
&lt;/h3&gt;

&lt;p&gt;Customers reach out constantly for routine things: a copy of the policy, proof of coverage, an address change, a payment question, a change of beneficiary. These follow a fixed pattern and need no real judgment, yet staff handle each one by hand. At 3,000 requests a month, that's over 500 hours spent on the same handful of tasks on repeat.&lt;/p&gt;

&lt;p&gt;Automation answers these through phone, chat, or email, pulling the information from your system and sending the document back in seconds. Anything that needs approval or hits an exception gets flagged for a human, while the routine majority resolves on its own. That returns more than 400 hours a month, and customers get their answer immediately instead of waiting days for a callback.&lt;/p&gt;

&lt;h3&gt;
  
  
  F. Claims Documentation and Verification
&lt;/h3&gt;

&lt;p&gt;Claims handlers lose real time to finding and organizing files — scanning documents, sorting them by type, matching them to the right claim, checking nothing is missing.&lt;/p&gt;

&lt;p&gt;Claims automation ingests documents as they arrive and identifies each one using OCR and machine learning. From there it pulls the key data like dates, amounts, and parties, organizes everything by claim, and flags whatever is missing. That clears 20 to 30 percent of document handling time and speeds up every claim.&lt;/p&gt;

&lt;p&gt;AI-assisted claims processing is approximately 75% faster than traditional methods, with some carriers cutting resolution time from 30 days down to 7.5.&lt;/p&gt;

&lt;h3&gt;
  
  
  G. Compliance and Audit Workflows
&lt;/h3&gt;

&lt;p&gt;Regulators want documentation, internal audits want proof of process, and compliance reporting has to show what happened and when. &lt;/p&gt;

&lt;p&gt;Done by hand, that means gathering files, building spreadsheets, and compiling reports. A single audit request can swallow 40 hours or more.&lt;/p&gt;

&lt;p&gt;Automation keeps the audit trail on its own: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it records what decision was made, who made it, when, and why; &lt;/li&gt;
&lt;li&gt;it generates compliance reports on demand; &lt;/li&gt;
&lt;li&gt;it flags likely violations before a regulator ever does.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When an audit lands, the documentation is already sitting there waiting. That saves over a thousand hours a year and closes the door on findings caused by missing paperwork.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Compliance that runs automatically is compliance that never fails."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. How the Savings Actually Stack Up
&lt;/h2&gt;

&lt;p&gt;The math is worth doing plainly. Add up the hours across all seven processes and the total is hard to ignore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv4733wnh6bkfx15842t4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv4733wnh6bkfx15842t4.jpg" alt="An infographic showing how 5,450 hours can be saved each month through insurance process automation. The hours saved are distributed across FNOL intake, renewals, quotes, underwriting, servicing, claims documentation, and compliance, highlighting the potential impact of automating repetitive insurance workflows." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is a table for your reference-&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Process&lt;/th&gt;
&lt;th&gt;Monthly hours saved&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FNOL intake&lt;/td&gt;
&lt;td&gt;1,250&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Renewals&lt;/td&gt;
&lt;td&gt;2,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quotes&lt;/td&gt;
&lt;td&gt;800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Underwriting&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servicing&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claims docs&lt;/td&gt;
&lt;td&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compliance&lt;/td&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5,450 hours&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  4. How to Start Your Insurance Workflow Automation Initiative Without Overwhelming Your Team
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy59mwtnwho8gcdn4lags.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy59mwtnwho8gcdn4lags.jpg" alt="An infographic showing a fully traceable automated FNOL request process, from a customer reporting a loss to the system asking questions, validating answers, routing the claim, and issuing a claim number—all completed within two minutes." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do not try to automate all seven at once. Pick one process, get it running, prove the return, and use that win to fund the next.&lt;/p&gt;

&lt;p&gt;Most teams start with FNOL or renewals because the volume is high and the rules are clear. Results tend to show up in six to eight weeks, and that early proof is what builds momentum and budget for everything after.&lt;/p&gt;

&lt;p&gt;Before you automate anything, map how the process runs today. Look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where people wait on someone else to move the file forward&lt;/li&gt;
&lt;li&gt;Where errors slip in because data is being typed instead of pulled&lt;/li&gt;
&lt;li&gt;Where the same question gets answered the same way a hundred times a week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those friction points are your automation opportunities, and they are usually easy to spot once you follow one case from start to finish.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How Insurance Automation Fits Into the Tech Stack You Already Have
&lt;/h2&gt;

&lt;p&gt;You already run a core system, probably several. None of that needs to go.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;What automation adds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Policy administration system&lt;/td&gt;
&lt;td&gt;Manages policies, renewals, endorsements&lt;/td&gt;
&lt;td&gt;Auto updates from intake, renewals, and servicing workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claims platform&lt;/td&gt;
&lt;td&gt;Tracks and processes claims&lt;/td&gt;
&lt;td&gt;Receives structured, validated data the moment a claim comes in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CRM&lt;/td&gt;
&lt;td&gt;Manages customer relationships and communications&lt;/td&gt;
&lt;td&gt;Gets updated automatically as customers move through workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Insurance automation processes sit around your existing systems and handle the connective tissue between them. The gaps your staff currently fill by hand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;capturing input from any channel&lt;/li&gt;
&lt;li&gt;validating it against your rules &lt;/li&gt;
&lt;li&gt;routing it to the right place
&lt;/li&gt;
&lt;li&gt;updating your core systems as it moves.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is also where RPA for insurance has grown up. It used to mean a bot clicking through screens the way a person would. Now it means workflows that coordinate across systems, move data where it needs to go, and trigger the next action without anyone involved.&lt;/p&gt;

&lt;p&gt;The result is that your team stops being the bridge between your tools and starts doing the work those tools were never built to handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. The Real Barriers to Adoption and Why None of Them Are Dealbreakers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; A good automation platform is a real expense, but the labor it removes almost always costs more than the platform itself. ROI on FNOL and renewals alone typically lands inside three to six months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration complexity:&lt;/strong&gt; Most platforms connect through APIs or direct connectors. It takes planning, not a rebuild.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Staff resistance:&lt;/strong&gt; It tends to disappear the first week someone stops handling 200 identical inquiries a day. People genuinely like their work more when the boring part is gone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The teams that move past these three tend to have one thing in common — they picked one process, proved it worked, and let the numbers make the case for everything after. Insurance digital transformation does not have to start big to finish that way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If you want to see how this works in a financial services context, our page on fraud detection workflow automation is worth a read."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7. How Unmeshed Fits Into Your Insurance Workflow
&lt;/h2&gt;

&lt;p&gt;Here is where I want to be precise, because most automation pitches overpromise. Unmeshed is not a magic box that runs your entire operation for you. It is the orchestration layer that sits between AI and production and decides, step by step, what actually needs a model and what does not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxs2m112usjqufjucj1wr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxs2m112usjqufjucj1wr.jpg" alt="An infographic showing a workflow where AI is used only where it adds value. A language step runs on an AI model, while the following rules step runs as code and the pricing step remains fully auditable, illustrating a practical balance between AI-driven decisions and deterministic, traceable logic." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That distinction is the whole point. In a typical underwriting workflow, only a handful of steps genuinely need AI, the ones involving language or real judgment. The rest run better as plain code, rules, and API calls, which are cheaper, faster, and completely reproducible. Unmeshed runs each step on whichever of those makes sense, which is what keeps cost down and keeps every decision auditable for regulators like NAIC and NYDFS.&lt;/p&gt;

&lt;p&gt;Here is what that looks like in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI only where it earns its place:&lt;/strong&gt; Judgment- and language-heavy steps run on a model. Everything else runs as deterministic code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditable by design:&lt;/strong&gt; Because pricing and rules run as logged, reproducible code rather than opaque model guesses, every decision can be explained and defended when a regulator asks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Humans stay on the calls that matter:&lt;/strong&gt; Standard cases move through automatically while complex ones route to a senior person, who reviews the summary and makes the final decision.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results back this up. Hiscox cut underwriting time from 72 hours to 180 seconds with no drop in decision quality.&lt;/p&gt;

&lt;p&gt;It plugs into the systems you already run rather than replacing them, and workflows tend to go live in weeks rather than quarters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;You do not have to automate everything to see a difference. Start with these seven insurance workflow automation processes, since they carry the most volume and the fastest return.&lt;/p&gt;

&lt;p&gt;Customers get quicker answers, your staff gets work worth doing, regulators get cleaner compliance, and you free up the budget that funds whatever comes next.&lt;/p&gt;

&lt;p&gt;Pick one process, automate it, measure it, and prove it works. Then move to the next one. If you want help finding where the cost actually hides in your workflows, that's exactly the kind of problem Unmeshed was built to map.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>machinelearning</category>
      <category>programming</category>
    </item>
    <item>
      <title>LLM Cost Optimization: 9 Ways to Cut Token Usage in Production</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Fri, 21 Aug 2026 05:16:18 +0000</pubDate>
      <link>https://dev.to/unmeshed/llm-cost-optimization-9-ways-to-cut-token-usage-in-production-2301</link>
      <guid>https://dev.to/unmeshed/llm-cost-optimization-9-ways-to-cut-token-usage-in-production-2301</guid>
      <description>&lt;p&gt;There is a scene in &lt;em&gt;Moneyball&lt;/em&gt; where Brad Pitt sits across from a room of old scouts who want to spend big on famous players. He tells them they are asking the wrong question. The point was never to buy the best players. &lt;em&gt;It was to buy wins, and wins were hiding in places nobody was looking.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"That is the mindset LLM cost optimization asks of you."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The most powerful model is rarely the answer to every task, and the biggest line on your invoice is rarely the one you would guess.&lt;/p&gt;

&lt;p&gt;The trouble is that most teams cannot see where their money actually goes. The number climbs each month, and the explanation lives somewhere nobody has looked yet.&lt;/p&gt;

&lt;p&gt;This post gives you nine ways to bring that number down and &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;cut your token usage&lt;/a&gt; in production. Every one has been tested in real systems, and not one of them asks you to change models or rebuild anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Why Does LLM Cost Optimization Matter More Than Teams Think?
&lt;/h2&gt;

&lt;p&gt;The model is almost never the real problem. What teams actually lack is a clear view of what each part of their system costs to run, and that view is where &lt;a href="https://unmeshed.io/blog/using-ai-wisely-starts-before-the-first-prompt" rel="noopener noreferrer"&gt;LLM cost optimization&lt;/a&gt; begins.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2jsswva0augxkdr714yk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2jsswva0augxkdr714yk.png" alt="Diagram showing that an LLM bill is determined by two factors: the number of tokens processed and the price per token determined by model choice." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your bill really comes down to two numbers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many tokens move through your system&lt;/li&gt;
&lt;li&gt;What each token costs on the model you chose&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything in this guide moves one of those two.&lt;/p&gt;

&lt;p&gt;Say you run a support summarizer that turns long ticket threads into short summaries for your agents. It handles 100,000 requests a day, taking in a thousand tokens and giving back five hundred.&lt;/p&gt;

&lt;p&gt;Now, obviously, for months nobody noticed what it cost, because the number lived inside one plain line on the invoice. That is how LLM inference cost hides.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://insightmarkresearch.com/insights/llm-agent-statistics-2026" rel="noopener noreferrer"&gt;Enterprise LLM API&lt;/a&gt; spending hit $8.4 billion by mid-2025, more than double the $3.5 billion from late 2024.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As OpenAI CEO Sam Altman put it, "compute costs limit everything."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. The 9 LLM Cost Optimization Techniques That Actually Work
&lt;/h2&gt;

&lt;p&gt;Here are the nine LLM cost optimization techniques, starting with the ones that give you the most back for the least effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Route Simple Tasks to Cheaper Models
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Your best model is overkill for most of what you send it.&lt;/strong&gt; &lt;a href="https://unmeshed.io/blog/llm-gateway-explained-production-ai" rel="noopener noreferrer"&gt;Model routing&lt;/a&gt; means matching each request to the cheapest model that can still do the job well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F88b3j7u5ftimvzhyezao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F88b3j7u5ftimvzhyezao.png" alt="Model routing reduces AI costs by matching each task to the cheapest model capable of delivering the required quality, reserving frontier models for complex work." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sorting tickets, pulling out fields, cleaning up formatting. None of these need a frontier model, and smaller ones handle them for a fraction of the price.&lt;/p&gt;

&lt;p&gt;Look at the summarizer again. Condensing a ticket thread is not deep reasoning. Move it down to a solid mid-tier model and the cost of that workflow can fall by half while the summaries read the same.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Trim Your System Prompts
&lt;/h3&gt;

&lt;p&gt;System prompts get long the same way junk drawers get full. You keep adding one more thing that seemed necessary at the time, and nobody ever goes back to clear it out.&lt;/p&gt;

&lt;p&gt;You pay for all of it on every request, whether the model needs it or not. &lt;a href="https://unmeshed.io/blog/how-to-reduce-llm-costs-through-better-prompt-optimization" rel="noopener noreferrer"&gt;Prompt optimization&lt;/a&gt; here is the fastest structural saving most teams have within reach.&lt;/p&gt;

&lt;p&gt;The surprising part is how little quality you give up when you cut. Trimming a prompt down to the instructions that actually shape the output usually leaves the results looking the same, with a noticeably smaller bill behind them.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Cache Repeated Inputs and Responses
&lt;/h3&gt;

&lt;p&gt;Two kinds of caching exist, and they solve different problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffuxl22jbpn1pzg4oynts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffuxl22jbpn1pzg4oynts.png" alt="Prompt caching reduces the cost of repeated instructions, while response caching eliminates model calls entirely by returning previously generated answers." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching" rel="noopener noreferrer"&gt;Prompt caching&lt;/a&gt; cuts the cost of reprocessing a stable chunk like your system prompt. The model stops rereading it every call, so you pay a fraction for that repeated part.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response caching&lt;/strong&gt; skips the model completely. When a question already has a stored answer, you hand it back for nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Barely anyone switches either one on, &lt;strong&gt;which is a shame for a workflow like the summarizer.&lt;/strong&gt; The instruction block at the top never changes, so caching it means you stop paying to teach the model the same thing on every single run.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Constrain Output Length and Format
&lt;/h3&gt;

&lt;p&gt;Output tokens run four to five times the price of input tokens on every major provider. That single fact should shape how you write every prompt you own.&lt;/p&gt;

&lt;p&gt;When your code only reads one field, asking for a full explanation around it is money spent on text nothing ever uses. &lt;strong&gt;Tell the model to return the summary and nothing else.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is one of the simplest fixes available and one of the most skipped, because a wordy answer never feels expensive until you multiply it out. Output length is the easiest LLM cost optimization win people walk right past.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Fix Retrieval Before Touching Anything Else
&lt;/h3&gt;

&lt;p&gt;In a RAG setup, the prompt is usually fine. The waste comes from everything you pack into the context around it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frfmr7tt1ecrnl5y82qn3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frfmr7tt1ecrnl5y82qn3.png" alt="Diagram comparing inefficient RAG retrieval that sends an entire document into the context window versus optimized retrieval that sends only relevant passages." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dropping a whole document into context when the model only needs two paragraphs is one of the easiest ways to pour tokens down the drain. Two fixes handle most of it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sharper chunking so you pass smaller, more relevant pieces&lt;/li&gt;
&lt;li&gt;Better retrieval so only the context that matters makes it into the prompt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together they reduce token usage more than any wording change you could make. So start there. In a retrieval pipeline, this is nearly always the change that moves the needle most.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Batch Non-Urgent Requests
&lt;/h3&gt;

&lt;p&gt;Plenty of work does not need an answer the second you ask. Batch APIs handle those requests on a delay and charge you roughly half of standard rates for the patience.&lt;/p&gt;

&lt;p&gt;Anything on a schedule qualifies. Say the summarizer also builds a morning digest of yesterday's tickets. That digest has no reason to run at live prices, so batching it halves the cost with nothing lost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live chat and anything a person is waiting on stays on standard calls.&lt;/strong&gt; The rest is worth a second look.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Set Hard Token Limits on Every Step
&lt;/h3&gt;

&lt;p&gt;This is the plainest safeguard you can put in place, and the one teams skip most.&lt;/p&gt;

&lt;p&gt;A ceiling on each step stops a runaway before it reaches your invoice. It catches the two failures that quietly rack up tokens:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxinzmd4tn38oel7gc6sv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxinzmd4tn38oel7gc6sv.png" alt="Hard token ceilings act as a safety mechanism, preventing runaway AI executions from generating unlimited token costs." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A model that loops on itself and keeps generating&lt;/li&gt;
&lt;li&gt;An agent that wanders off track and calls step after step&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When either one hits the limit, it stops instead of billing you for a mountain of tokens nobody wanted.&lt;/p&gt;

&lt;p&gt;It will not lower your everyday spend. &lt;strong&gt;What it does is save you from the bad day, and at scale that is worth a lot.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Replace LLM Calls With Code Where Possible
&lt;/h3&gt;

&lt;p&gt;Some steps in &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;your workflow&lt;/a&gt; do not need a model at all. Things like routing a request, reading a single field, or checking whether a value is formatted correctly. A few lines of &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;normal code&lt;/a&gt; can do these jobs, and code does not cost you anything to run.&lt;/p&gt;

&lt;p&gt;The problem is that reaching for a model is easy, so teams do it even when the task is simple. Take pulling a date out of a sentence. That is not a thinking task. Code can find the date every time and get it right.&lt;/p&gt;

&lt;p&gt;Give that same job to a model, and two things happen. You pay tokens for it, and now and then it hands the date back in a format you did not ask for. More cost, less certainty, for a job code already does well.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Track Cost at the Workflow Level
&lt;/h3&gt;

&lt;p&gt;A monthly total tells you what you spent. It says nothing about where the money went or why.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw4j6kwwv1o3gnaduwt2m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw4j6kwwv1o3gnaduwt2m.png" alt="Workflow-level visibility helps teams identify which AI workflows drive costs, making optimization efforts measurable and actionable." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tracking at the &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;workflow level&lt;/a&gt; turns that number into something you can act on. Real AI cost management starts here, where you finally see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which workflow is driving the bill&lt;/li&gt;
&lt;li&gt;Which ones pay for themselves&lt;/li&gt;
&lt;li&gt;Which ones are just noise&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the groundwork that makes every token optimization effort on the list measurable. You cannot fix what you cannot see.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Which Technique Should You Start With?
&lt;/h2&gt;

&lt;p&gt;Every LLM cost optimization effort needs a starting point. Here is how the nine stack up on effort, savings, and where each one earns its place.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technique&lt;/th&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;th&gt;Typical savings&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Route to cheaper models&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;40 to 80% on cost&lt;/td&gt;
&lt;td&gt;Multi-step pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trim system prompts&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;10 to 30% on input&lt;/td&gt;
&lt;td&gt;All workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Caching inputs and responses&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Up to 90% on repeated calls&lt;/td&gt;
&lt;td&gt;Stable prompts, repeat questions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Constrain output&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;30 to 60% on output&lt;/td&gt;
&lt;td&gt;Structured outputs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix retrieval&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;20 to 50% on context&lt;/td&gt;
&lt;td&gt;RAG pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batch requests&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Up to 50% on batched work&lt;/td&gt;
&lt;td&gt;Non-urgent tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard token limits&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Prevents runaway spend&lt;/td&gt;
&lt;td&gt;Agentic workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Replace with code&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;100% on replaced steps&lt;/td&gt;
&lt;td&gt;Routing, parsing, validation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflow level tracking&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Enables everything else&lt;/td&gt;
&lt;td&gt;All production systems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Begin with the low-effort rows near the top. Trim your prompts, tighten your output, and turn on caching.&lt;/p&gt;

&lt;p&gt;Once those are done, move to the heavier lifts like routing and replacing steps with code. They take more work, but they keep paying you back long after.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Where Do Most Teams Go Wrong With LLM Cost Optimization?
&lt;/h2&gt;

&lt;p&gt;The usual mistake in LLM cost optimization is cutting too deep. Teams get a taste of the savings, push harder, and quality starts slipping somewhere they do not immediately connect to the change.&lt;/p&gt;

&lt;p&gt;Three traps catch most teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cutting past the point of quality.&lt;/strong&gt; When your token count falls, but your error rate climbs, the cleanup can cost more than you ever saved. Aim for the lowest token count before quality breaks, not the lowest number you can hit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fixing the wrong thing.&lt;/strong&gt; Without workflow-level tracking, teams tend to optimize whatever feels expensive, which is often not what is actually draining the account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treating this as a job you finish.&lt;/strong&gt; Prompts fill back up, new features launch, usage shifts under you. LLM cost reduction works best as a habit, not a task you close and forget.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The strange part is that prices are actually falling. &lt;a href="https://epoch.ai/data-insights/llm-inference-price-trends" rel="noopener noreferrer"&gt;Epoch AI&lt;/a&gt; found the cost to reach GPT-4 level performance dropped about 40x per year, yet bills keep growing because usage climbs faster than prices drop.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How Does Unmeshed Help You Control LLM Costs?
&lt;/h2&gt;

&lt;p&gt;Most cost tools report what you spent once the invoice has already landed. Unmeshed takes a different path to LLM cost optimization and lets you draw the line before the money leaves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faadf3uo5785xj4l938l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faadf3uo5785xj4l938l5.png" alt="Unmeshed helps reduce AI spending by limiting token usage, replacing repeatable tasks with deterministic logic, and using AI only where it adds measurable value." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Per-step token limits.&lt;/strong&gt; Every &lt;a href="https://unmeshed.io/products/agentic" rel="noopener noreferrer"&gt;AI step&lt;/a&gt; gets a budget. When it hits the cap, it stops, so no single task quietly runs up the bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool allow lists for agents.&lt;/strong&gt; Agents only touch the tools you approved. Nothing strays past the edges you set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic steps where AI is not needed.&lt;/strong&gt; For routing, parsing, or validation, you swap the model call for plain code: no prompt, no tokens, no cost.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to starve your system of tokens. Good LLM cost optimization spends them only where a model earns its keep and lets code cover the rest for free.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;LLM cost optimization is not about being stingy with AI. Anyone can shrink a bill by doing less. The real work is spending only where the spend pays off and trimming everything that does not.&lt;/p&gt;

&lt;p&gt;Brad Pitt never won by buying the priciest roster. He won by knowing what every dollar was actually doing.&lt;/p&gt;

&lt;p&gt;Do that with your tokens. Take the easy wins first, watch what genuinely moves your bill, and build the habit of checking before the number drifts. If you want those limits enforced for you at the &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;workflow level&lt;/a&gt;, that is what Unmeshed is built for.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>What Is LLM Observability — and Why "No Errors" Doesn't Mean It's Working</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Thu, 20 Aug 2026 05:55:44 +0000</pubDate>
      <link>https://dev.to/unmeshed/what-is-llm-observability-and-why-no-errors-doesnt-mean-its-working-end</link>
      <guid>https://dev.to/unmeshed/what-is-llm-observability-and-why-no-errors-doesnt-mean-its-working-end</guid>
      <description>&lt;p&gt;I was probably not the first person to tell you that AI breaks in ways nobody warned you about. But I might be the first to admit I had no idea what was actually happening inside my own AI application until something went very wrong and I had absolutely nothing useful to look at.&lt;/p&gt;

&lt;p&gt;There was no stack trace to follow, no error log to read, just a very unhappy user and a dashboard that had absolutely no idea anything had gone wrong.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;That moment is why LLM observability has become one of the fastest-growing categories in AI infrastructure.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The market hit $2.75 billion in 2026, and Gartner expects it to cover 50% of all GenAI deployments by 2028. Teams are not spending on this because it is fun. They are spending on it because running AI blind is genuinely painful.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What Is LLM Observability?
&lt;/h2&gt;

&lt;p&gt;By early 2026, 72% of Fortune 500 companies had at least one LLM application running in production. Most had no real visibility into what it was actually doing inside.&lt;/p&gt;

&lt;p&gt;LLM observability is your ability to see inside your AI application while it runs: every prompt sent, every response generated, what it cost, how long each step took, and whether the output was actually correct.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F61q1zis7o852howqmnb0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F61q1zis7o852howqmnb0.jpg" alt="Diagram illustrating how to look inside an AI system’s “black box.” The left side shows an outside view where a question enters an unknown system and produces an answer. The right side reveals the internal workflow, showing how a question moves through prompt, retrieval, model, response, cost, and latency before producing the final answer." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The uncomfortable truth is that you need observability most in situations where nothing looks wrong. A hallucinating model does not throw errors. It just returns confident wrong answers with a &lt;code&gt;200 OK&lt;/code&gt; while your monitoring takes a nap.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;LLM monitoring tells you something broke. LLM observability tells you why it broke and where to look first.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. LLM Observability vs Monitoring vs Evaluation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0qlh89va8kry0liyy1zv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0qlh89va8kry0liyy1zv.jpg" alt="A comparison graphic titled “Monitoring vs Observability vs Evaluation.” It shows three sections: Monitoring tracks latency, errors, and tokens; Observability captures every step inside the pipeline; and Evaluation scores whether the output was actually correct. The diagram highlights the different roles each practice plays in understanding and improving AI systems." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most people treat these as the same thing. They are not even close, and mixing them up is how you end up with blind spots that only surface when users complain.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Capability&lt;/th&gt;
&lt;th&gt;What it actually does&lt;/th&gt;
&lt;th&gt;What it cannot tell you&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring&lt;/td&gt;
&lt;td&gt;Tracks latency, errors, token counts. Alerts when thresholds cross.&lt;/td&gt;
&lt;td&gt;Whether your outputs were correct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM observability&lt;/td&gt;
&lt;td&gt;Captures every step inside the pipeline. Shows what happened and when.&lt;/td&gt;
&lt;td&gt;Whether the output quality was good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evaluation&lt;/td&gt;
&lt;td&gt;Scores outputs for faithfulness, relevance, hallucination detection&lt;/td&gt;
&lt;td&gt;Nothing — this is the full picture&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;94% of organizations with AI agents in production have observability in place. Only 44.8% run evaluations on live traffic. That gap is where most quality problems hide.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring&lt;/strong&gt; watches from the outside. Good for infrastructure. Not good enough for AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM tracing&lt;/strong&gt; shows every step inside your pipeline — what was retrieved, what prompt went in, what came back, and when. This is where you find out &lt;em&gt;why&lt;/em&gt; something failed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluation&lt;/strong&gt; scores whether the output was actually good. This is the one most teams skip entirely, and it is always the one that would have caught the problem first.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. What LLM Observability Actually Tracks in Your Application
&lt;/h2&gt;

&lt;p&gt;You do not need to observe everything. You just need visibility into the parts that tell you what went wrong and why when something breaks in production.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjxhmj06z6j8aj64anwne.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjxhmj06z6j8aj64anwne.jpg" alt="Diagram titled “What observability tracks,” showing an LLM request at the center connected to key signals including inputs and prompts, outputs and raw responses, latency by step, token usage and cost, and quality signals. The graphic illustrates how observability provides visibility into the different stages and performance metrics of an LLM request." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inputs and Prompts&lt;/strong&gt;&lt;br&gt;
When a user reports a bad answer, the first thing you want to see is the exact prompt that went to the model, fully built out with all the context that was injected. In most cases, the problem is sitting right there the moment you can actually read it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outputs and Responses&lt;/strong&gt;&lt;br&gt;
You need the raw response the model gave before your code did anything with it. If the answer was already wrong at that point, the model is the problem. If it was fine and broke later, something in your code changed it. You cannot debug this without seeing both versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Latency by Step&lt;/strong&gt;&lt;br&gt;
How long each step actually took:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frb8iqnf2bqh5bf0s3x6j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frb8iqnf2bqh5bf0s3x6j.jpg" alt="Diagram titled “Latency broken down by step,” showing an AI pipeline divided into three stages: Retrieval, Model inference, and Post-processing. The segmented timeline illustrates how total latency is distributed across each stage, helping identify which part of the pipeline contributes most to response time." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Retrieval&lt;/li&gt;
&lt;li&gt;Model inference&lt;/li&gt;
&lt;li&gt;Post-processing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without step-level tracking, you are guessing where the slowness is coming from. Most teams assume it is the model. Half the time it is a retrieval step nobody thought to measure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token Usage and Cost&lt;/strong&gt;&lt;br&gt;
A prompt that grew by 200 tokens sounds small. At 100,000 daily requests, that is thousands of dollars a month in extra spend nobody planned for. Token-level telemetry shows you that happening in real time instead of on the invoice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality Signals&lt;/strong&gt;&lt;br&gt;
This is the column most teams leave empty:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User thumbs up or down&lt;/li&gt;
&lt;li&gt;Hallucinations detected&lt;/li&gt;
&lt;li&gt;Validation failures&lt;/li&gt;
&lt;li&gt;Task completion rates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Production AI monitoring without quality signals means you are collecting data you cannot act on. Expensive logging, essentially.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Why LLMs Fail Differently From Traditional Software
&lt;/h2&gt;

&lt;p&gt;When a regular app breaks, it screams — errors, alerts, something blinking red somewhere.&lt;/p&gt;

&lt;p&gt;LLMs do not scream. They just start giving wrong answers while looking completely healthy from the outside.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcfv3zrx80f253jxjkjjd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcfv3zrx80f253jxjkjjd.jpg" alt="Diagram titled “How LLMs fail differently,” highlighting four common failure modes: fails loudly, non-determinism, context drift, and quality degradation. The graphic shows that LLMs can produce errors through explicit failures, different outputs from the same input, changed retrieval context, or declining answer quality even when there are zero system errors." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-determinism&lt;/strong&gt;&lt;br&gt;
Run the same prompt twice, and you get different outputs. So when a failure shows up once and disappears when you go looking for it, you have no way to reproduce it without tracing that captures exactly what went in and what came out, every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context Drift&lt;/strong&gt;&lt;br&gt;
Everything looks fine — the model is running — but outputs have been getting worse for weeks because retrieval changed and nobody updated the prompt to match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality Degradation With Zero Errors&lt;/strong&gt;&lt;br&gt;
The application is healthy by every measure you have. Users are just getting worse answers, and there's no signal telling you that until enough of them say something.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What LLM Observability Looks Like in Practice
&lt;/h2&gt;

&lt;p&gt;Take a RAG-powered support bot as an example. A lot happens between a user asking a question and your application returning an answer. Without observability, you see none of it — just a question in, an answer out.&lt;/p&gt;

&lt;p&gt;With LLM observability, you see all of this for every request:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The original user question&lt;/li&gt;
&lt;li&gt;The documents retrieval returned and their relevance scores&lt;/li&gt;
&lt;li&gt;The full resolved prompt with those documents injected&lt;/li&gt;
&lt;li&gt;The model's raw response before any parsing&lt;/li&gt;
&lt;li&gt;Latency at each step, broken down individually&lt;/li&gt;
&lt;li&gt;Cost of the API call&lt;/li&gt;
&lt;li&gt;Whether the user marked the answer helpful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What you actually catch by having it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A retrieval step returning stale documents because the index hadn't updated&lt;/li&gt;
&lt;li&gt;A prompt that doubled in size because a context injection bug ran twice&lt;/li&gt;
&lt;li&gt;A model response that was wrong before your code even processed it&lt;/li&gt;
&lt;li&gt;A retrieval call that took four seconds on specific query types&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is findable without LLM telemetry. But… all of it is obvious once you have it.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. LLM Observability Across Different Application Types
&lt;/h2&gt;

&lt;p&gt;Different applications fail in completely different ways.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2nv1db4ie4w39mm11y1k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2nv1db4ie4w39mm11y1k.jpg" alt="Diagram titled “Observability by application type,” comparing RAG, chatbots, and agents. The table highlights each application’s biggest failure risk and what tracing can uncover: stale documents and retrieval mismatches for RAG, carried context and turn history for chatbots, and runaway tool calls with 30–300 internal steps for agents." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RAG Applications&lt;/strong&gt;&lt;br&gt;
Most RAG failures hide in retrieval. When an answer comes back wrong, you need to know whether the model got bad information — or good information and still got it wrong. Two different problems, two different fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chatbots and Conversational AI&lt;/strong&gt;&lt;br&gt;
A single-turn log is not enough. A bad answer in turn three usually has its roots in turn one, where the model picked up an incorrect assumption and carried it through the conversation. You need the full conversation trace, not just individual snapshots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents and Agentic Workflows&lt;/strong&gt;&lt;br&gt;
Agents are the hardest application type to observe, and the most expensive when something goes wrong. Agent observability means visibility into every tool call, every decision, and every loop the agent runs. According to MLflow's 2026 report, a single user request in production can trigger anywhere from 30 to 300 internal steps. Without tracing, most of that is invisible — you see the request and the response, and nothing in between.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Application type&lt;/th&gt;
&lt;th&gt;Biggest failure risk&lt;/th&gt;
&lt;th&gt;What debugging uncovers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RAG&lt;/td&gt;
&lt;td&gt;Retrieval returning wrong or stale documents&lt;/td&gt;
&lt;td&gt;Exactly what was retrieved and when&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chatbots&lt;/td&gt;
&lt;td&gt;Context carried forward incorrectly across turns&lt;/td&gt;
&lt;td&gt;Full conversation trace across all turns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents&lt;/td&gt;
&lt;td&gt;Loops, unexpected tool calls, runaway token spend&lt;/td&gt;
&lt;td&gt;Every step, decision, and tool invocation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  7. How Unmeshed Reduces What You Need to Observe
&lt;/h2&gt;

&lt;p&gt;The less your AI workflows are allowed to do without guardrails, the less you need to observe after the fact.&lt;/p&gt;

&lt;p&gt;Unmeshed lets you set hard limits on what each AI step can do before it runs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Per-step token limits&lt;/strong&gt; — every AI step has a maximum token budget; when it hits that limit, it stops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool allow-lists for agents&lt;/strong&gt; — agents only call the tools you explicitly approved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic steps where AI isn't needed&lt;/strong&gt; — for tasks like routing or validation, you replace the LLM step with plain code. No prompt, no tokens, nothing to observe.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Observability tells you what went wrong after it happened. Unmeshed is what you put in place so fewer things go wrong in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Running AI in production without LLM observability is how you end up finding out about problems from users instead of dashboards. By then the damage is usually already done, and the fix takes longer than it should.&lt;/p&gt;

&lt;p&gt;The teams that get this right are not necessarily the ones with the best models. They are the ones that built visibility into their workflows early enough to actually use it.&lt;/p&gt;

&lt;p&gt;If you want to reduce what can go wrong before observability needs to catch it, that's exactly what Unmeshed is built for.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>webdev</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Vibe Coding Works Until Yo Put It in Production</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Wed, 19 Aug 2026 07:22:27 +0000</pubDate>
      <link>https://dev.to/unmeshed/vibe-coding-works-until-yo-put-it-in-production-55i8</link>
      <guid>https://dev.to/unmeshed/vibe-coding-works-until-yo-put-it-in-production-55i8</guid>
      <description>&lt;p&gt;Software engineering is currently being pulled between two narratives that do not fit cleanly together.&lt;/p&gt;

&lt;p&gt;The first narrative is about acceleration. A developer can describe a feature, generate a first pass, ask for a refactor, patch the obvious errors, and get something working quickly. That is the useful part of vibe coding. It lowers the cost of starting, especially for prototypes, internal tools, scripts, and early product exploration.&lt;/p&gt;

&lt;p&gt;The second narrative is about compression. Over the last two years, many technology companies have cut roles, reduced hiring, and pushed teams to support more software with fewer people. AI is often mentioned in that context, sometimes because it genuinely changes the work and sometimes because it is a convenient label for broader cost pressure.&lt;/p&gt;

&lt;p&gt;Both narratives are incomplete. AI has not made software engineering irrelevant, it is relocated where the judgment calls happen. The valuable skill is moving from simply producing code to deciding what should be code, what should be a model call, what should be a deterministic rule, and how those pieces should execute safely in production.&lt;/p&gt;

&lt;p&gt;That distinction matters for enterprises because production systems do not care how impressive the demo was. They care about latency, retries, cost, observability, approval paths, auditability, and failure behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vibe Coding Works Best Before Production Starts
&lt;/h2&gt;

&lt;p&gt;Vibe coding is useful because it removes friction from the early part of building.&lt;/p&gt;

&lt;p&gt;You can ask for a feature draft, a refactor, an API client, a migration script, a test case, or a throwaway admin page. For prototypes and low-risk internal tooling, that speed is valuable. It lets teams explore more options before committing to one.&lt;/p&gt;

&lt;p&gt;The economics change when AI moves from assisting a developer to executing inside a customer-facing or business-critical workflow.&lt;/p&gt;

&lt;p&gt;During prototyping, the cost of an extra prompt or retry is easy to ignore. In production, every additional context window, tool call, retry, and verbose response becomes part of the cost profile of the workflow. The demo usually exercises the happy path. The real system gets malformed inputs, larger documents, incomplete records, transient tool failures, user-specific policy checks, approval branches, and audit requirements.&lt;/p&gt;

&lt;p&gt;A common mistake is to treat the production workflow as if it were just the demo with more traffic. It rarely is. The production version needs budgets, limits, fallback paths, observability, and a clear decision about which parts should be handled by a model at all.&lt;/p&gt;

&lt;p&gt;AI is a useful dependency, but an expensive one when it is doing work a simple rule or database lookup could have handled instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Productivity Gap Is Really a Governance Gap
&lt;/h2&gt;

&lt;p&gt;One of the more interesting studies from 2025 came from METR. They ran a randomized controlled trial with experienced open-source developers working on mature repositories. Developers expected AI tools to reduce task completion time by 24%. After the study, they still believed the tools had made them about 20% faster.&lt;/p&gt;

&lt;p&gt;The measured result went the other way. Tasks with AI access took 19% longer.&lt;/p&gt;

&lt;p&gt;That doesn't mean AI coding tools don't work. It means generation speed and engineering throughput are two different things. On mature codebases, engineers still have to inspect the output, verify architectural fit, run tests, handle subtle regressions, and own the maintenance burden.&lt;/p&gt;

&lt;p&gt;We have observed the same pattern in AI workflow implementations. Teams often assume the workflow is saving time because the first answer appears quickly. When they include review time, retries, prompt refinement, exception handling, and human escalation, the gain is usually smaller than the first demo suggested.&lt;/p&gt;

&lt;p&gt;Before AI, the bottleneck was often producing the first version. With AI in the loop, it is shifted to validation: is the result correct, safe, explainable, and worth the cost of running repeatedly?&lt;/p&gt;

&lt;p&gt;That's what makes governance an engineering problem, not a policy afterthought. The system has to make controlled decisions under real operating constraints, not just generate output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Prompt Engineering Is Not Enough Anymore
&lt;/h2&gt;

&lt;p&gt;The AI playbook has changed quickly.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Period&lt;/th&gt;
&lt;th&gt;What teams focused on&lt;/th&gt;
&lt;th&gt;What changed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;Prompt engineering&lt;/td&gt;
&lt;td&gt;Teams learned that wording, examples, and formatting could change model behavior.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;RAG&lt;/td&gt;
&lt;td&gt;Teams started grounding model output in internal documents and business data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;AI agents&lt;/td&gt;
&lt;td&gt;Teams gave models tools and allowed them to choose more of the execution path.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;td&gt;Governed AI workflows&lt;/td&gt;
&lt;td&gt;Teams now need cost control, auditability, deterministic rules, and human review.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Prompt engineering still matters. RAG still matters. Agents still matter. They are just insufficient as the primary control layer for enterprise systems.&lt;/p&gt;

&lt;p&gt;A better prompt reduces ambiguity, it does not decide whether a workflow should exist in the first place. Grounding output in real data cuts down on hallucination, but someone still has to sign off on the action being taken. And giving an agent tools to call does not hand you budgets, ownership, audit trails, or change control for free.&lt;/p&gt;

&lt;p&gt;Prompt optimization also has diminishing returns compared to redesigning the workflow. If the model is being called for every execution of a repeatable decision, trimming 200 tokens helps. Moving that decision into an approved rule helps more.&lt;/p&gt;

&lt;p&gt;What is missing is not a better prompt technique. It is workflow governance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Vibe Coding Breaks Down in Enterprise Workflows
&lt;/h2&gt;

&lt;p&gt;Vibe coding works best when the cost of being wrong is low.&lt;/p&gt;

&lt;p&gt;A prototype can be thrown away. A small internal script can be rewritten. A demo can tolerate rough edges if it proves the idea. Enterprise workflows have a different risk profile. Expense approvals affect reimbursement. Support escalations affect customer trust. Compliance reviews affect legal exposure. Claims workflows may determine whether money leaves the business.&lt;/p&gt;

&lt;p&gt;In those systems, "the model decided" is not a sufficient explanation.&lt;/p&gt;

&lt;p&gt;Production AI needs answers to questions that rarely come up in a demo:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Production question&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Which steps actually need AI?&lt;/td&gt;
&lt;td&gt;Prevents unnecessary token spend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What is the token budget per workflow?&lt;/td&gt;
&lt;td&gt;Keeps cost from growing silently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What tools can the agent call?&lt;/td&gt;
&lt;td&gt;Reduces security and operational risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;When should a human review the decision?&lt;/td&gt;
&lt;td&gt;Protects high-risk or ambiguous outcomes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Which decisions can become rules?&lt;/td&gt;
&lt;td&gt;Moves repeatable work out of expensive model calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can we explain the outcome later?&lt;/td&gt;
&lt;td&gt;Supports auditability and enterprise governance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is the point where AI stops being a coding shortcut and becomes part of an operational system. The engineering work shifts from generating the workflow to controlling how it executes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Token-Aware Engineering Looks Like
&lt;/h2&gt;

&lt;p&gt;A token-aware engineer does not think only in prompts. They think in execution paths.&lt;/p&gt;

&lt;p&gt;Some workflow steps need judgment, language understanding, or ambiguity handling. Other steps only need rules. Good AI architecture separates those two instead of sending everything through a model because the model is already available.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use AI when the step needs judgment&lt;/th&gt;
&lt;th&gt;Use deterministic logic when the step needs rules&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Classifying ambiguous customer intent&lt;/td&gt;
&lt;td&gt;Routing based on a known status field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Summarizing a long document&lt;/td&gt;
&lt;td&gt;Validating an amount against a threshold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extracting structure from messy input&lt;/td&gt;
&lt;td&gt;Checking whether a required field is present&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drafting a response that needs tone and context&lt;/td&gt;
&lt;td&gt;Applying an approved decision table&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helping a user translate policy into rules&lt;/td&gt;
&lt;td&gt;Running those rules thousands of times a day&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The goal is not to avoid AI. It is to spend model calls only where the model is actually earning its cost.&lt;/p&gt;

&lt;p&gt;Take invoice exception handling.&lt;/p&gt;

&lt;p&gt;The naive AI implementation sends the invoice, purchase order, vendor policy, approval history, and a long instruction prompt into a model and asks what to do. It may work for the initial demo. At volume, it is expensive, hard to explain, and difficult to tune because too much of the workflow is hidden inside a single model decision.&lt;/p&gt;

&lt;p&gt;A governed implementation separates the concerns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Invoice uploaded
  -&amp;gt; OCR or parser extracts invoice fields
  -&amp;gt; AI classifies missing or ambiguous information
  -&amp;gt; Decision table validates amount, vendor, PO match, and policy rules
  -&amp;gt; Manager approval only if the amount is above threshold or policy is unclear
  -&amp;gt; ERP is updated
  -&amp;gt; Tokens, outcome, escalation, and cost are logged against the workflow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI still has an important job here. It handles ambiguity and unstructured input. It just doesn't own the whole business process.&lt;/p&gt;

&lt;p&gt;The same pattern applies to customer support:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer email arrives
  -&amp;gt; LLM classifies intent and urgency
  -&amp;gt; Known issue categories route through deterministic rules
  -&amp;gt; Account-specific policy checks run without a model
  -&amp;gt; Unknown or high-risk cases go to an AI-assisted draft
  -&amp;gt; Human approves sensitive responses
  -&amp;gt; Case is updated and the workflow records cost and outcome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most cost improvements come from this kind of workflow redesign, not from endlessly tuning the prompt. Repeated decisions should move toward deterministic execution. Ambiguous decisions should stay closer to AI or human review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Businesses Already Have AI Without Enough Governance
&lt;/h2&gt;

&lt;p&gt;Many companies shipped AI features before they had a complete governance model. That was a reasonable sequence. Teams were under pressure from executives, competitors, customers, and internal productivity goals. They added copilots, chatbots, summarizers, classifiers, document processors, and agents. Some of those systems are creating real value.&lt;/p&gt;

&lt;p&gt;The problem is that many of them were built as isolated AI features rather than governed workflows.&lt;/p&gt;

&lt;p&gt;The common gaps are predictable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No workflow-level token budget&lt;/li&gt;
&lt;li&gt;No per-step cost visibility&lt;/li&gt;
&lt;li&gt;No clear owner for each AI decision&lt;/li&gt;
&lt;li&gt;No policy for when to use a smaller model&lt;/li&gt;
&lt;li&gt;No human review path for high-risk outcomes&lt;/li&gt;
&lt;li&gt;No audit trail for tool calls&lt;/li&gt;
&lt;li&gt;No process for turning repeated model decisions into deterministic rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These gaps usually do not hurt on day one. They show up when usage grows, when the invoice arrives, when output quality drifts, or when someone asks why a workflow made a specific decision.&lt;/p&gt;

&lt;p&gt;At that point, prompt optimization helps, but it is not the main fix. The business needs orchestration and governance around the AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Unmeshed Helps Enterprises Make This Shift
&lt;/h2&gt;

&lt;p&gt;Unmeshed is built for the point where an AI demo needs to become a production workflow.&lt;/p&gt;

&lt;p&gt;Most business processes are not just model calls. They involve APIs, files, schedules, business rules, approvals, retries, notifications, and systems of record. If every piece of that process lives in a different script, prompt, dashboard, or agent framework, governance becomes difficult.&lt;/p&gt;

&lt;p&gt;Unmeshed gives teams one place to design and operate those workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Orchestrate AI and Non-AI Steps Together
&lt;/h3&gt;

&lt;p&gt;In Unmeshed, an AI step can sit next to API calls, data transformations, file processing, schedules, decision tables, and human approvals. That matters because the model should not carry work that belongs to a rule, a database check, or an integration.&lt;/p&gt;

&lt;p&gt;During implementation, this separation is usually where the architecture gets cleaner. Teams can keep AI in the steps that require judgment while keeping predictable work deterministic and observable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Turn Repeated Decisions Into Decision Rules
&lt;/h3&gt;

&lt;p&gt;If a model keeps making the same decision from the same criteria, that decision is a candidate for a rule.&lt;/p&gt;

&lt;p&gt;Unmeshed decision tables let teams encode approved business logic and run it consistently. AI can still help generate or refine the rule set, but once the business approves it, the decision can run without paying for a model call every time.&lt;/p&gt;

&lt;p&gt;This is a practical way to reduce token spend without reducing automation. It also makes the decision easier to review, test, and change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Put Boundaries Around Agentic Execution
&lt;/h3&gt;

&lt;p&gt;Agents are useful because they can choose the next step. That is also why they need boundaries.&lt;/p&gt;

&lt;p&gt;With Unmeshed, teams can define which tools are available, where approval is required, how exceptions are handled, and when a workflow should move from AI to a human or deterministic path.&lt;/p&gt;

&lt;p&gt;Autonomy is not the problem, the lack of accountability is. Unmeshed lets teams keep the autonomy while making it something the business can actually inspect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Measure Cost Where the Business Process Runs
&lt;/h3&gt;

&lt;p&gt;Provider dashboards can show aggregate token usage. That is useful for finance, but it is too coarse for engineering decisions.&lt;/p&gt;

&lt;p&gt;Enterprises need to know which workflow consumed the tokens, which step caused the cost, and whether the outcome justified the spend. When cost is tied to workflow execution, teams can optimize the actual business process instead of guessing from a monthly bill. That is where token economics becomes operational rather than theoretical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Governed AI Is Engineering Work
&lt;/h2&gt;

&lt;p&gt;AI coding made it easier to produce software quickly. Production AI makes it necessary to govern software carefully.&lt;/p&gt;

&lt;p&gt;Writing code still matters. So do architecture, testing, observability, security, and maintainability. AI adds another set of operational concerns: model behavior, token budgets, context management, tool access, approval paths, and auditability.&lt;/p&gt;

&lt;p&gt;For enterprise teams, the useful question is not whether AI can generate something. It usually can. The better question is whether the generated or AI-driven workflow can be operated, explained, optimized, and trusted over time.&lt;/p&gt;

&lt;p&gt;Unmeshed is built to support that shift: AI where it adds judgment, deterministic rules where the decision is repeatable, orchestration around the full business process, and enough governance to run the workflow in production.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>AI Governance for Engineers: Knowing When Not to Ship a Feature</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Tue, 18 Aug 2026 05:26:03 +0000</pubDate>
      <link>https://dev.to/unmeshed/ai-governance-for-engineers-knowing-when-not-to-ship-a-feature-2468</link>
      <guid>https://dev.to/unmeshed/ai-governance-for-engineers-knowing-when-not-to-ship-a-feature-2468</guid>
      <description>&lt;p&gt;Every generation gets its own cautionary tale about shortcuts. For Gen Z, one of the latest is &lt;em&gt;Obsession&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;On the surface, it's a psychological horror film about Bear Bailey, a music store employee who discovers the One Wish Willow — a magical shortcut that promises to make his long-time crush, Nikki Freeman, fall in love with him. His wish comes true, but not in the way he imagined. What begins as a solution slowly turns into possession.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgdl7ibtobnl37np4refl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgdl7ibtobnl37np4refl.jpg" alt="A close-up image of hands holding a vintage-style “One Wish Willow” package against a dark background, symbolizing a single wish, choice, or opportunity. The warm red and cream packaging creates a nostalgic feel and visually represents the idea of making one meaningful wish." width="736" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Willow isn't inherently evil. It simply grants Bear exactly what he asks for, without questioning whether that's what he truly needs. AI adoption looks surprisingly similar.&lt;/p&gt;

&lt;p&gt;As a Gen Z, I love when a piece of pop culture becomes more than entertainment. Sometimes it unexpectedly explains the way we think about technology better than another whitepaper or conference talk ever could. It gives us a language for recognizing patterns we might otherwise miss.&lt;/p&gt;

&lt;p&gt;That's exactly what &lt;em&gt;Obsession&lt;/em&gt; did for me. It wasn't just a psychological horror film — which is funny, because after watching it, I realized we might be doing the exact same thing with AI. Not because AI is dangerous. But because, much like Bear in the film, we sometimes become so focused on getting the outcome we want that we stop questioning the path we're taking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every AI Initiative Starts with Good Intentions
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let's automate documentation."&lt;br&gt;
"Let's summarize meetings."&lt;br&gt;
"Let's build a support agent."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nothing about these ideas is inherently wrong. In fact, many of them create real value. The challenge begins when AI quietly shifts from being a means to becoming the objective itself.&lt;/p&gt;

&lt;p&gt;At some point, the conversation changes. Instead of asking,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this create value?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Teams begin asking,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where else can we put AI?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the same version of making another wish.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Maturity Isn't About Building More AI
&lt;/h2&gt;

&lt;p&gt;Bear doesn't lose himself because of one decision. He loses himself because every decision after the first becomes easier to justify. Teams experience the same drift.&lt;/p&gt;

&lt;p&gt;Teams that misunderstand AI maturity measure success by adoption:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many AI features are shipped?&lt;/li&gt;
&lt;li&gt;How many agents are running?&lt;/li&gt;
&lt;li&gt;How many workflows use LLMs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mature teams measure something entirely different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which workflows actually improved outcomes?&lt;/li&gt;
&lt;li&gt;Which ones reduced operational cost?&lt;/li&gt;
&lt;li&gt;Which ones do customers genuinely use?&lt;/li&gt;
&lt;li&gt;Which ones should never have been built?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI maturity is measured by how deliberately AI is introduced — and how confidently teams choose not to use it when it doesn't add value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Governance Exists to Interrupt Momentum
&lt;/h2&gt;

&lt;p&gt;One of the quietest tragedies in &lt;em&gt;Obsession&lt;/em&gt; isn't the wish itself. It's that Bear stops questioning whether the outcome he's chasing still has meaning. He becomes focused on preserving the wish rather than understanding its consequences.&lt;/p&gt;

&lt;p&gt;AI governance exists for exactly this reason. Its job is to protect the quality of decision-making.&lt;/p&gt;

&lt;p&gt;Governance creates space for teams to keep asking the questions that momentum tends to erase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why are we using AI here?&lt;/li&gt;
&lt;li&gt;Does this solve a customer problem?&lt;/li&gt;
&lt;li&gt;Is AI actually the best approach?&lt;/li&gt;
&lt;li&gt;Would a simpler workflow achieve the same result?&lt;/li&gt;
&lt;li&gt;What happens if we remove AI entirely?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Most Expensive Prompt Is the One That Never Needed to Exist
&lt;/h2&gt;

&lt;p&gt;Engineering practices like token optimization, caching, workflow orchestration, and production-ready AI systems are incredibly valuable. But they all assume one thing: that the workflow itself deserves to exist.&lt;/p&gt;

&lt;p&gt;The workflow deserves to exist if it's valuable. Before optimizing prompts, teams should first optimize the decision that introduced the prompt in the first place.&lt;/p&gt;

&lt;p&gt;Using AI wisely isn't about saying yes to every opportunity. Using AI requires knowing when saying no creates more value than another workflow ever could.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Difference Between Making Wishes and Making Decisions
&lt;/h2&gt;

&lt;p&gt;The tragedy in &lt;em&gt;Obsession&lt;/em&gt; wasn't that Bear made a wish. It was that, once the wish worked, he stopped questioning whether it was still leading him toward what he truly wanted.&lt;/p&gt;

&lt;p&gt;AI behaves much the same way. It can generate. Summarize. Classify. Automate.&lt;/p&gt;

&lt;p&gt;But it won't ask whether any of those things create meaningful value. That responsibility still belongs to us.&lt;/p&gt;

&lt;p&gt;AI is incredibly good at granting wishes. Governance exists to make sure we're wishing for the right things.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>discuss</category>
      <category>leadership</category>
    </item>
    <item>
      <title>How We Cut Our LLM Bill by $3,600/Month Just by Auditing System Prompts</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Mon, 17 Aug 2026 10:58:03 +0000</pubDate>
      <link>https://dev.to/unmeshed/how-we-cut-our-llm-bill-by-3600month-just-by-auditing-system-prompts-4le2</link>
      <guid>https://dev.to/unmeshed/how-we-cut-our-llm-bill-by-3600month-just-by-auditing-system-prompts-4le2</guid>
      <description>&lt;p&gt;The one thing about me is that I have always been more interested in what things actually cost than what they can do.&lt;/p&gt;

&lt;p&gt;So when I started working with AI teams in production, the first thing I noticed was not the models. It was the prompts nobody had looked at in months.&lt;/p&gt;

&lt;p&gt;According to a 2026 LLM pricing report, teams are overspending on input tokens by up to 40% simply because prompts were never revisited after launch.&lt;/p&gt;

&lt;p&gt;Prompt optimization is not about making prompts smarter. It is about making sure you are not paying for tokens that stopped being useful the day after you shipped.&lt;/p&gt;

&lt;p&gt;This post breaks down how to audit what you have, where the waste hides, and how to cut without breaking anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Why Does Prompt Optimization Directly Affect Your Bill?
&lt;/h2&gt;

&lt;p&gt;Most teams treat prompts as a quality problem. Length, structure, and redundancy are a cost problem.&lt;/p&gt;

&lt;p&gt;Every token in your prompt costs money on every single request. Not occasionally. Every time.&lt;/p&gt;

&lt;p&gt;Here is what that math looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 1,200-token system prompt at 100,000 daily requests on Claude Sonnet 5 costs roughly $360 per day on input alone, before a single user message enters the picture.&lt;/li&gt;
&lt;li&gt;Trim 400 tokens from that prompt, and you save $120 a day.&lt;/li&gt;
&lt;li&gt;That is $3,600 a month from one edit to one prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Most teams have five to ten prompts running in production. The math compounds fast.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnwxyx1zyb0ufjjpmbenv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnwxyx1zyb0ufjjpmbenv.png" alt="Diagram showing five common causes of expensive AI prompts: repeated instructions, unused context, stale few-shot examples, verbose output formatting, and prompt drift." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Anatomy of an Expensive Prompt
&lt;/h2&gt;

&lt;p&gt;I want to tell you about a prompt I saw once that was 2,400 tokens long. The team had no idea. They thought it was maybe 600, because that is what it looked like when they wrote it. The rest had accumulated over eight months, one caveat at a time, and nobody had gone back to look.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That is how expensive prompts happen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Take a customer support bot as an example. It launched with a clean 350-token prompt, just a role definition, response tone, and one example ticket. Within six months, that same prompt had grown to 1,400 tokens without anyone rewriting it.&lt;/p&gt;

&lt;p&gt;A caveat got added after a tricky refund case, three examples went in when the bot started misclassifying billing tickets, and a full refund policy section got pasted in because it felt safer to have it there. The bot kept working fine. The token bill did not.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instructions That Repeat Themselves
&lt;/h3&gt;

&lt;p&gt;Teams write prompts the way they write documentation. Thorough, detailed, every edge case covered.&lt;/p&gt;

&lt;p&gt;The model does not need all of that every time. I have seen prompts that explain the same output constraint in three different ways, just worded differently. The model gets it the first time. You are paying for the other two on every single request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Context That Does Not Change the Output
&lt;/h3&gt;

&lt;p&gt;Full company backgrounds. Product overviews. Onboarding materials. All of it is sitting in the context window when the model only ever uses one paragraph.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A simple test: remove the section and run 50 requests. If the output does not change, the model was not using it. You were just paying for it to be there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Few Shot Examples Left Permanently
&lt;/h3&gt;

&lt;p&gt;Examples were added during testing that nobody removed.&lt;/p&gt;

&lt;p&gt;Three examples at 150 tokens each add up to 450 tokens per call, whether the model needs that context or not. I have seen teams with six examples still in their production prompt from a testing session that happened a year ago.&lt;/p&gt;

&lt;h3&gt;
  
  
  Output Formatting Nobody Asked for Downstream
&lt;/h3&gt;

&lt;p&gt;Ask the model to return markdown tables, headers, and plain English explanations when your application reads one field.&lt;/p&gt;

&lt;p&gt;Output tokens cost four to five times more than &lt;a href="https://unmeshed.io/blog/what-is-token-efficiency" rel="noopener noreferrer"&gt;input tokens&lt;/a&gt;. This is one of the most expensive habits to leave in production and one of the easiest to fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt Drift
&lt;/h3&gt;

&lt;p&gt;This is the one nobody names. And in my experience, it causes more damage than all the others combined.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fywqj37a6ied5g5rf42rc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fywqj37a6ied5g5rf42rc.png" alt="Five practical prompt optimization techniques ranked by effort and potential savings, from trimming prompts to model routing and prompt caching." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your prompt grows quietly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone adds a caveat after a bug report.&lt;/li&gt;
&lt;li&gt;Someone else handles an edge case inline instead of in code.&lt;/li&gt;
&lt;li&gt;A new model version needs a formatting note.&lt;/li&gt;
&lt;li&gt;A product change makes half the instructions irrelevant, but nobody updates the prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Six months later, your prompt is 2,000 tokens, and half of it describes situations that no longer exist. Every single request pays for that history.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Month&lt;/th&gt;
&lt;th&gt;Token count&lt;/th&gt;
&lt;th&gt;What was added&lt;/th&gt;
&lt;th&gt;Still relevant?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Month 1&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;Core instructions&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Month 3&lt;/td&gt;
&lt;td&gt;700&lt;/td&gt;
&lt;td&gt;Edge case handling&lt;/td&gt;
&lt;td&gt;Partially&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Month 5&lt;/td&gt;
&lt;td&gt;1,100&lt;/td&gt;
&lt;td&gt;New model formatting note&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Month 7&lt;/td&gt;
&lt;td&gt;1,800&lt;/td&gt;
&lt;td&gt;Legacy product context&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If your prompt has grown more than 50% since you first shipped it, audit it now.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. How to Run a Prompt Optimization Audit?
&lt;/h2&gt;

&lt;p&gt;You need to run such an optimization audit every month. Clean prompt optimization audits don't work well if you do it once and forget about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Measure What Your Prompt Is Actually Doing
&lt;/h3&gt;

&lt;p&gt;Start by counting tokens per section. Break your prompt into named parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Core instructions&lt;/li&gt;
&lt;li&gt;Context and background&lt;/li&gt;
&lt;li&gt;Few-shot examples&lt;/li&gt;
&lt;li&gt;Output format instructions&lt;/li&gt;
&lt;li&gt;Edge case handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Count what each section costs, then ask which ones fire on most requests versus rare edge cases. If 20% of your prompt only applies to 2% of requests, that 20% is a candidate for removal.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to Cut and What to Keep
&lt;/h3&gt;

&lt;p&gt;Here is the rule I follow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instructions that change output quality: keep.&lt;/li&gt;
&lt;li&gt;Instructions that only affect format or style: candidates for cutting.&lt;/li&gt;
&lt;li&gt;Instructions added for edge cases that no longer exist: cut immediately.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remove the section, run 50 requests through both versions, and compare outputs. If quality holds, the cut is safe. If it drops, put it back and look somewhere else.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Cuts Without Breaking Production
&lt;/h3&gt;

&lt;p&gt;Never cut in production without testing first. I learned this the hard way, watching a team shave 300 tokens off a classification prompt and quietly break edge case handling for three days before anyone noticed.&lt;/p&gt;

&lt;p&gt;Run both versions side by side and track three metrics at the workflow level:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tokens per successful task completion&lt;/li&gt;
&lt;li&gt;Cost per outcome&lt;/li&gt;
&lt;li&gt;Output quality score&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Average tokens per request tells you what you spent. Tokens per successful task completion tell you whether it was worth it.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. How to Optimize Your Prompts and Cut LLM Costs?
&lt;/h2&gt;

&lt;p&gt;Five prompt optimization actions in order of impact. Pick the one that fits your situation first, not the one that sounds most impressive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqjvoi9mzo11tn8ibomd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqjvoi9mzo11tn8ibomd.png" alt="Infographic titled " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trim your system prompt:&lt;/strong&gt; Run the audit above. Remove anything that does not change the output. This is almost always the fastest win and the one most teams skip because the prompt feels important to touch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Constrain your output format:&lt;/strong&gt; Tell the model exactly what you need and nothing more. "Return only the category name" is a valid instruction. It is also cheaper than "Return the category name with a brief explanation of your reasoning and any relevant caveats."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fix retrieval before touching the prompt:&lt;/strong&gt; For RAG workflows, the prompt is often fine. The problem is that everything is stuffed into the context around it. Better chunking means smaller context windows, which reduce token spend without changing a single prompt instruction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cache stable inputs:&lt;/strong&gt; If your system prompt is long and does not change between requests, &lt;a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching" rel="noopener noreferrer"&gt;prompt caching&lt;/a&gt; gives you a significant discount on that repeated input. Most major providers support it. Most teams never set it up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Route simple tasks to cheaper models:&lt;/strong&gt; Not every step needs your most capable model. Classification, formatting, and extraction work just as well on smaller models at a fraction of the cost.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tactic&lt;/th&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;th&gt;Typical savings&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Trim system prompt&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;10 to 30% on input&lt;/td&gt;
&lt;td&gt;All workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Constrain output format&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;30 to 60% on output&lt;/td&gt;
&lt;td&gt;Structured outputs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix retrieval quality&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;20 to 50% on context&lt;/td&gt;
&lt;td&gt;RAG pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompt caching&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Up to 90% on repeated input&lt;/td&gt;
&lt;td&gt;Long stable prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model routing&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;40 to 80% on cost&lt;/td&gt;
&lt;td&gt;Multi-step pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  5. What Prompt Optimization Actually Looks Like in Production?
&lt;/h2&gt;

&lt;p&gt;Let’s walk through a hypothetical audit, okay?&lt;/p&gt;

&lt;p&gt;A prompt that went from 800 tokens to 300 tokens with zero change in output quality. I want to walk through exactly what was cut and why each cut was safe, because the decisions matter more than the outcome.&lt;/p&gt;

&lt;p&gt;That customer support bot example is a good reference here. The 1,400-token prompt we talked about earlier went through exactly this kind of audit and came out at 420 tokens with no change in ticket classification accuracy.&lt;/p&gt;

&lt;p&gt;Here it is:&lt;/p&gt;

&lt;h3&gt;
  
  
  The Before
&lt;/h3&gt;

&lt;p&gt;A prompt that started at around 400 tokens. Over six months, it grew:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 200 token company background section was added during onboarding that nobody revisited&lt;/li&gt;
&lt;li&gt;Three few-shot examples from early testing, all doing roughly the same thing&lt;/li&gt;
&lt;li&gt;An output format instruction asking for structured JSON with an explanation for every field&lt;/li&gt;
&lt;li&gt;Two edge case instructions for scenarios that had not come up in four months&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the time anyone counted, it was 800 tokens. At &lt;a href="https://www.anthropic.com/claude/sonnet" rel="noopener noreferrer"&gt;50,000 daily requests on Claude Sonnet 5&lt;/a&gt;, that is roughly $150 per day on one prompt.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Cuts and Why They Were Safe
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Prompt element&lt;/th&gt;
&lt;th&gt;Token cost&lt;/th&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;th&gt;Reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Role definition&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;Keep&lt;/td&gt;
&lt;td&gt;Removing it changed the model's behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company background&lt;/td&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;td&gt;Cut&lt;/td&gt;
&lt;td&gt;The output was identical without it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 few-shot examples&lt;/td&gt;
&lt;td&gt;300&lt;/td&gt;
&lt;td&gt;Cut 2, keep 1&lt;/td&gt;
&lt;td&gt;One example was enough&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output format instructions&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;Rewrote to one line&lt;/td&gt;
&lt;td&gt;Downstream code only reads one field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge case instructions&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;Cut&lt;/td&gt;
&lt;td&gt;Those scenarios no longer exist&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The After
&lt;/h3&gt;

&lt;p&gt;300 tokens, and the output did not change across 500 test requests. Here is what that translated to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost dropped from $120 to $45 per day on one prompt&lt;/li&gt;
&lt;li&gt;$75 saved daily, $2,250 saved every month&lt;/li&gt;
&lt;li&gt;Zero changes to the model, the pipeline, or anything the user sees&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most production pipelines have several prompts in exactly this condition right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. How Far Is Too Far With Prompt Optimization?
&lt;/h2&gt;

&lt;p&gt;There is a version of this that goes wrong, and I have seen it happen.&lt;/p&gt;

&lt;p&gt;Cutting too aggressively is its own problem. When token counts drop fast, quality usually follows. The model starts missing things it used to catch, and by the time the support queue makes it obvious, the cost of handling bad outputs has already exceeded what was saved on tokens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftr0ddxp3vgay1vp5yws0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftr0ddxp3vgay1vp5yws0.png" alt="An infographic titled " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
The math is not complicated:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total cost = token spend + (error rate x cost per error)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saving 400 tokens per request saves $40 per 100,000 requests.&lt;/li&gt;
&lt;li&gt;A 1% rise in error rate at $2 per error costs $2,000 in new handling costs.&lt;/li&gt;
&lt;li&gt;The savings disappear and then some.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your goal is the lowest token count before quality breaks. Not the lowest token count possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Prompt Optimization Across Different Workflow Types
&lt;/h2&gt;

&lt;p&gt;The right approach depends on what your prompt does. Same problem, different starting points.&lt;/p&gt;

&lt;h3&gt;
  
  
  Classification and Routing Prompts
&lt;/h3&gt;

&lt;p&gt;Usually, the most over-engineered prompts in any pipeline. Teams add examples, edge cases, and explanations for every possible category because classification feels fragile.&lt;/p&gt;

&lt;p&gt;In most cases, you can cut 60 to 80% with no quality loss. This is the easiest win in prompt optimization and the best place to start if you want fast results on LLM cost optimization.&lt;/p&gt;

&lt;h3&gt;
  
  
  RAG Prompts
&lt;/h3&gt;

&lt;p&gt;The prompt itself is usually fine. The expensive part is everything stuffed into context around it.&lt;/p&gt;

&lt;p&gt;Fix your retrieval pipeline first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better chunks mean smaller context windows.&lt;/li&gt;
&lt;li&gt;Smaller context windows mean lower token spend.&lt;/li&gt;
&lt;li&gt;Semantic caching can cut &lt;a href="https://redis.io/blog/llm-token-optimization-speed-up-apps" rel="noopener noreferrer"&gt;API costs by up to 73%&lt;/a&gt; in high-repetition RAG use cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can reduce LLM costs significantly here without touching a single line of the prompt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent System Prompts
&lt;/h3&gt;

&lt;p&gt;The most expensive and most neglected. Every tool description, every instruction, every example adds to every single agent call, which often runs multiple times per task.&lt;/p&gt;

&lt;p&gt;This is where prompt drift does the most damage because agent system prompts grow the fastest and get audited the least. Every tool you add comes with a description. Every new capability gets an instruction. Nobody removes the old ones.&lt;/p&gt;

&lt;p&gt;If you only have time to audit one prompt this month, make it your agent system prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. How Does Unmeshed Support Your Prompt Optimization Process?
&lt;/h2&gt;

&lt;p&gt;Prompt optimization reduces what you pay per token. Unmeshed controls what gets to spend tokens in the first place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fml09k6p9it8rneu667y1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fml09k6p9it8rneu667y1.png" alt="Diagram showing how Unmeshed controls AI token usage through per-step token limits, deterministic workflow steps, and cost-aware execution." width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Here is what that looks like in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Per-step token limits.&lt;/strong&gt; You set a ceiling on every &lt;a href="https://unmeshed.io/blog/bringing-ai-workflow-into-production-without-burning-tokens" rel="noopener noreferrer"&gt;AI step in your workflow&lt;/a&gt;. When a step hits that limit, it stops. A bloated prompt cannot quietly run up your bill because there is a hard limit on what each step can generate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deterministic steps where AI is not needed.&lt;/strong&gt; For tasks like routing a request, parsing a field, or validating a value, you replace the LLM step with plain code. No prompt needed. No tokens spent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You only pay for the steps where AI actually earns its cost.&lt;/strong&gt; Everything else runs for free.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Prompt optimization is not a one time thing you do when costs spike. It is something you build into how your team works.&lt;/p&gt;

&lt;p&gt;Everything drifts over time and by the time the bill makes it obvious, the decisions behind it are months old and spread across people who may not even remember making them.&lt;/p&gt;

&lt;p&gt;An audit every month, clear rules on what to cut, and hard limits on what each step can spend are what keep it manageable. If you want those limits enforced at the workflow level automatically, that is exactly what Unmeshed is built for.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>backend</category>
      <category>devops</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Incident Response Management with Google Workspace &amp; PagerDuty Integration</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Fri, 14 Aug 2026 06:26:46 +0000</pubDate>
      <link>https://dev.to/unmeshed/incident-response-management-with-google-workspace-pagerduty-integration-j94</link>
      <guid>https://dev.to/unmeshed/incident-response-management-with-google-workspace-pagerduty-integration-j94</guid>
      <description>&lt;h1&gt;
  
  
  Incident response works better when the steps are clear
&lt;/h1&gt;

&lt;p&gt;When an incident starts, the team usually needs the same few things every time: a place to record what happened, a doc for notes, a page to the on-call person, and a way to keep everyone else informed. This workflow keeps those pieces in one place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuwhjgh1bxnxwvwtebxfj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuwhjgh1bxnxwvwtebxfj.png" alt="A visual workflow diagram showing an automated incident response process. The flow starts with a Start node and moves through HTTP Get, Google Sheets (create a new sheet), Google Sheets (add the incident response), Google Docs (create an incident document), PagerDuty (page the on-call team), and Gmail (notify stakeholders), before ending at an End node. The workflow illustrates how incident details move through multiple integrations in a clear, sequential process." width="200" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What the workflow does
&lt;/h2&gt;

&lt;p&gt;The workflow is simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;incident event
  -&amp;gt; get_current_oncall
  -&amp;gt; create_new_sheet
  -&amp;gt; add_incident_response
  -&amp;gt; create_incident_document
  -&amp;gt; page_oncall
  -&amp;gt; notify_stakeholders
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each step does one thing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;get_current_oncall&lt;/code&gt; looks up the current on-call owner.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;create_new_sheet&lt;/code&gt; creates a shared incident tracker in Google Sheets.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;add_incident_response&lt;/code&gt; writes the incident details into the sheet.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;create_incident_document&lt;/code&gt; generates a Google Doc for notes and updates.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;page_oncall&lt;/code&gt; triggers PagerDuty when escalation is needed.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;notify_stakeholders&lt;/code&gt; sends a stakeholder email with links to the sheet and doc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Workflow definition
&lt;/h2&gt;

&lt;p&gt;This is the workflow shape used in the post:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;orgId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="na"&gt;namespace&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;incident-management&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;incident_response_automation&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;API_ORCHESTRATION&lt;/span&gt;

&lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;get_current_oncall&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;HTTP&lt;/span&gt;
    &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GET&lt;/span&gt;
      &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://devs.unmeshed.com/api/call/get_current_oncall/get_current_oncall/fixed?apiCallType=SYNC&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;create_new_sheet&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;INTEGRATION&lt;/span&gt;
    &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;google-sheets&lt;/span&gt;
      &lt;span class="na"&gt;publishProperties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CREATE_SPREADSHEET&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;New Incident Created&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;add_incident_response&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;INTEGRATION&lt;/span&gt;
    &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;google-sheets&lt;/span&gt;
      &lt;span class="na"&gt;publishProperties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;APPEND_ROWS&lt;/span&gt;
        &lt;span class="na"&gt;spreadsheetId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;steps.create_new_sheet.output.spreadsheetId&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
        &lt;span class="na"&gt;range&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Sheet1!A1&lt;/span&gt;
        &lt;span class="na"&gt;values&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;
              &lt;span class="nv"&gt;IncidentId&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;Severity&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;Service&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;Message&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;Status&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;AssignedTo&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;CreatedAt&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
            &lt;span class="pi"&gt;]&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;
              &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.incidentId&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.severity&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.service&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.message&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="nv"&gt;OPEN&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;steps.get_current_oncall.output.response.output.oncall&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
              &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.created&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
            &lt;span class="pi"&gt;]&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;create_incident_document&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;INTEGRATION&lt;/span&gt;
    &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;google-docs&lt;/span&gt;
      &lt;span class="na"&gt;publishProperties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CREATE_DOC&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;New Incident Document&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;page_oncall&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;INTEGRATION&lt;/span&gt;
    &lt;span class="na"&gt;optional&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pagerduty&lt;/span&gt;
      &lt;span class="na"&gt;messageBody&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;event_action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;trigger&lt;/span&gt;
        &lt;span class="na"&gt;dedup_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.message&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
        &lt;span class="na"&gt;summary&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.message&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
        &lt;span class="na"&gt;severity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.severity&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
        &lt;span class="na"&gt;source&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;context.input.service&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
        &lt;span class="na"&gt;links&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://docs.google.com/spreadsheets/d/{{ steps.create_new_sheet.output.spreadsheetId }}&lt;/span&gt;
            &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;View Incident Report&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://docs.google.com/documents/d/{{ steps.create_incident_document.output.docId }}&lt;/span&gt;
            &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;View Incident Document&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;notify_stakeholders&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;INTEGRATION&lt;/span&gt;
    &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;google-gmail-read-send&lt;/span&gt;
      &lt;span class="na"&gt;publishProperties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sendEmail&lt;/span&gt;
        &lt;span class="na"&gt;subject&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;A New Incident Reported&lt;/span&gt;
        &lt;span class="na"&gt;to&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;variables.stakeholdersSharedEmail&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
        &lt;span class="na"&gt;bodyContentType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Workflow output
&lt;/h2&gt;

&lt;p&gt;These screenshots show the result of each integration after the workflow completed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sheets data
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjy3xiqe2ozs64240txx6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjy3xiqe2ozs64240txx6.jpg" alt="A Google Sheets spreadsheet titled “New Incident Created” showing an automated incident record. The sheet contains columns for IncidentId, Severity, Service, Message, Status, and AssignedTo, with a sample incident marked Critical for the payment service. The message states “API error rate exceeded threshold”, the status is OPEN, and the incident is assigned to an email address." width="800" height="202"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;This is the row that got written into Google Sheets. It keeps the incident id, severity, service, message, status, assignee.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Docs data
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm41llizm57hlsnty8ra3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm41llizm57hlsnty8ra3.jpg" alt="A Google Docs document titled “New Incident Document” showing an automatically generated incident report. The document includes sections for Incident Overview, Basic Information, Incident Description, and Affected Systems / Services. It records incident ID INC-123-TEST, severity Critical, status OPEN, the assigned owner, and the issue “API error rate exceeded threshold” affecting the payment service." width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the Google Doc the workflow created for the incident. It gives the team a place for the summary, affected service, assigned owner, and follow-up notes.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gmail message
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8wbus69xcaggxt0jwiwd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8wbus69xcaggxt0jwiwd.jpg" alt="A Gmail incident notification email titled “A New Incident Reported” with a prominent red “New Production Incident Reported” header. The email displays the incident severity as HIGH and includes details such as the incident ID, reported time, affected payment service, error message, and assigned owner. It also states that the incident details and updates were added to the incident tracking sheet and includes a “View Incident Report” button." width="800" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the email that was sent to stakeholders. It includes the incident details plus links to the sheet and the doc so people can open the right record immediately.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration setup
&lt;/h2&gt;

&lt;p&gt;These are the two setup screens that matter most.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google integrations
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn232u8sss1i3xcwx9bf0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn232u8sss1i3xcwx9bf0.jpg" alt="An integration setup screen with “google” entered in the Quick Search field. The results show Google services available to add, including Google BigQuery under Database, and Google Docs, Google Drive, and Google Sheets under File Storage. Each integration card lists its capabilities and includes an “Add” button for connecting the service." width="799" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This connects the sheet and doc steps so the incident record and notes go straight into Google Workspace.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PagerDuty integration
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7yps1og0akmi0283geij.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7yps1og0akmi0283geij.jpg" alt="An integration setup screen with “Pagerd” entered in the Quick Search field. The results display the PagerDuty integration under Monitoring, with capabilities including creating and managing incidents, sending alerts and notifications, tracking incident resolution, integrating with monitoring tools, and managing on-call schedules. An “Add” button is shown at the bottom of the PagerDuty integration card." width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the page to the on-call person when the incident needs escalation.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How the flow works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Capture the incident
&lt;/h3&gt;

&lt;p&gt;An alert, webhook, or manual trigger starts the workflow with a small payload such as &lt;code&gt;incidentId&lt;/code&gt;, &lt;code&gt;service&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, and &lt;code&gt;message&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Find the on-call owner
&lt;/h3&gt;

&lt;p&gt;The workflow checks who is on call and stores it right away so the assignment is visible to everyone working the incident.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Create the record
&lt;/h3&gt;

&lt;p&gt;Google Sheets becomes the incident tracker. The workflow creates the sheet, then writes the first row so the team has a shared record right away.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Generate the incident document
&lt;/h3&gt;

&lt;p&gt;Google Docs gives the team a place for the timeline, notes, and follow-up. That keeps the details out of chat threads.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Page and notify
&lt;/h3&gt;

&lt;p&gt;PagerDuty handles the escalation. Gmail sends the update with the links everyone needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this version is better
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You create the sheet first, before anything else needs it. The page to on call links straight back to both the sheet and the doc, using the IDs Google returns when each one gets created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The sheet and the doc give your team one place to check what happened. Nobody has to dig through old messages to find the incident owner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The page to on-call and the stakeholder email pull from the same incident record. Both use the same ID, severity, service, and message. You enter these details once, and every downstream step uses that same data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each integration does one job. The sheet step writes rows. The doc step creates a doc. Nothing tries to do two things at once, so the workflow stays easy to follow.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Practical notes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Keep the header row fixed at &lt;code&gt;Sheet1!A1&lt;/code&gt;. Every row you add after that lands in the wrong column if the header shifts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use a doc template with placeholders for the summary, owner, and timestamps. Fill them in as the incident happens.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the PagerDuty step only when the incident needs escalation. It's marked optional in the workflow for that reason.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Include the sheet and doc links in the stakeholder email. Your team can check the record themselves instead of asking for updates.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Incident response doesn't need to be a pile of scripts and handoffs. A small workflow handles all of it. It catches the incident and assigns the owner, then creates the record and notifies the right people. No extra coordination needed.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>sre</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Writing Custom Webhooks Every Time You Need a Google Doc or Sheet</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Thu, 13 Aug 2026 05:50:45 +0000</pubDate>
      <link>https://dev.to/unmeshed/stop-writing-custom-webhooks-every-time-you-need-a-google-doc-or-sheet-3011</link>
      <guid>https://dev.to/unmeshed/stop-writing-custom-webhooks-every-time-you-need-a-google-doc-or-sheet-3011</guid>
      <description>&lt;p&gt;&lt;strong&gt;There is a type of work that nobody puts on their resume but everyone ends up doing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You know the kind. Someone joins the company. Someone has to make the welcome doc. Someone has to CC the manager. Someone has to update the tracker sheet. Someone has to post in the team channel. And usually, "someone" is a different person each time, which means it either gets done inconsistently or it gets forgotten.&lt;/p&gt;

&lt;p&gt;Or a support ticket comes in. The agent reads it, mentally classifies it, copies the subject line into a spreadsheet, writes an acknowledgment email that says roughly the same thing it always says, and if the ticket looks urgent, manually pings the right channel.&lt;/p&gt;

&lt;p&gt;None of this is hard. That's the thing. It's just repetitive, and repetitive is the exact kind of work that should not require a human.&lt;/p&gt;

&lt;p&gt;Unmeshed connects to Gmail, Google Sheets, Google Docs, Google Drive, and Google Chat. This is what that looks like in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Google Workspace Specifically?
&lt;/h2&gt;

&lt;p&gt;Most of our customers already use it. That was the short answer.&lt;/p&gt;

&lt;p&gt;The longer answer is that Google Workspace is a strange beast. It is both a productivity suite and an informal data layer for a huge number of teams. Sheets is where people track things. Docs is where decisions get written down. Drive is where files end up. Gmail is how things get communicated. Chat is where teams react to things in real time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F09fz4qlpjhhlq7b8z8ye.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F09fz4qlpjhhlq7b8z8ye.png" alt="A Google Workspace automation diagram showing Gmail, Google Sheets, Google Docs, Google Drive, and Google Chat connected in a continuous workflow. The illustration highlights how teams can automate onboarding, support, incident management, document generation, notifications, and tracking by orchestrating their existing Google Workspace tools through Unmeshed." width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These tools are already inside most of the workflows we were being asked to automate. They just weren't connected to anything.&lt;/p&gt;

&lt;p&gt;Before this integration, if you wanted a workflow to send an email when something happened, you had two options: maintain a separate email service integration (and its credentials, its templates, its rate limits) or use a webhook that fired into a third-party tool that then sent the email. Both worked. Neither felt right.&lt;/p&gt;

&lt;p&gt;Now you just add a Gmail step. The connection is already there. The workflow sends the email and moves on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Each Integration Actually Does
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Google Sheets: The Tracker That Runs Itself
&lt;/h3&gt;

&lt;p&gt;Sheets is how most teams keep track of things because it requires no setup, everyone already knows how to use it, and it is readable by a human without any additional tooling.&lt;/p&gt;

&lt;p&gt;The problem is that someone has to update it. That "someone" is usually the first person who notices something happened and remembers to do it, which is not a great system.&lt;/p&gt;

&lt;p&gt;With Unmeshed, a Sheet can be on the receiving end of any workflow. Incident happens, a row gets appended. New hire joins, a row gets appended. Support ticket comes in, a row gets appended. Leave request submitted, the workflow reads a different sheet to check the balance before deciding what to do.&lt;/p&gt;

&lt;p&gt;You can also read from Sheets inside a workflow, which turns a spreadsheet into a lightweight config or lookup table. We used this in our PTO approval workflow to check an employee's remaining balance before deciding whether to route the request to a manager or auto-deny it. No database needed. Just a sheet.&lt;/p&gt;

&lt;p&gt;The value here is not just convenience. It is that the sheet becomes accurate in real time, without asking anyone to update it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gmail: The Email That Goes Out at the Right Moment
&lt;/h3&gt;

&lt;p&gt;I want to be careful about how I describe this one because "send email from a workflow" sounds simple to the point of being boring.&lt;/p&gt;

&lt;p&gt;What is actually interesting is the timing.&lt;/p&gt;

&lt;p&gt;Most teams send emails when someone remembers to send them. A new hire gets a welcome email when HR finishes their onboarding checklist, which might be the morning of their start date or might be two days before. A customer gets a ticket acknowledgment when the support agent gets to it, which might be immediately or might be three hours later.&lt;/p&gt;

&lt;p&gt;When the email comes from a workflow, it goes out at the moment the event occurs. The new hire's welcome email lands in their inbox the second the offer is accepted, not when someone gets around to it. The customer's acknowledgment is sent within seconds of the ticket being submitted, not when an agent picks it up.&lt;/p&gt;

&lt;p&gt;That consistency is what teams actually want. And it is hard to get when humans are doing the sending.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Docs: Documents That Exist Before Anyone Asks for Them
&lt;/h3&gt;

&lt;p&gt;Here is a thing that happens on every engineering team I have seen: an incident fires, the on-call engineer opens their laptop, and the first five minutes are spent making a postmortem doc. Picking a template. Filling in the title. Writing down the service name, the severity, the time it started. Basic information that was already in the alert.&lt;/p&gt;

&lt;p&gt;Those five minutes are not a big deal in isolation. But they happen every single time, for every single incident, and they are happening at exactly the moment when the engineer's attention is most valuable.&lt;/p&gt;

&lt;p&gt;We wired up the Google Docs API so that the postmortem doc can be created the moment the incident is logged. By the time the on-call engineer opens their laptop, the doc exists, the fields are filled in, and there is a structured template waiting for them. They start writing the actual timeline instead of creating the file.&lt;/p&gt;

&lt;p&gt;The same logic applies to welcome packets for new hires, release notes from commit data, knowledge base articles for support tickets that are worth documenting, and policy rollout docs. The document exists before anyone asks for it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Drive: Filed Before Anyone Gets a Chance to Lose It
&lt;/h3&gt;

&lt;p&gt;Drive is one of those tools where the value is obvious and the execution is painful. Everyone knows that files should be organized. Everyone knows that a well-structured Drive folder is better than a jumbled shared drive. Nobody has time to actually do the filing.&lt;/p&gt;

&lt;p&gt;Unmeshed can create folders and move files as part of a workflow step. This means the onboarding folder for a new hire gets created the moment the offer is accepted, not the day before they start. The postmortem doc goes into the ops folder the moment it's created, not after someone remembers to move it. The KB article lands in the support library without anyone having to drag it there.&lt;/p&gt;

&lt;p&gt;In the onboarding workflow we built, the folder gets created, the welcome packet doc gets filed inside it, and the manager gets an email with a direct link to the folder. All before the HR team even sees the notification. That is not a meaningful optimization in terms of time. It is a meaningful optimization in terms of never having to remember to do it again.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Chat: Notifications That Are Actually Part of the Process
&lt;/h3&gt;

&lt;p&gt;I want to draw a distinction here between a Chat message that comes from an Unmeshed workflow and a Chat message that a person sends.&lt;/p&gt;

&lt;p&gt;When a person sends a message in a team channel, it might have incomplete information. It might come late. It might not come at all if the person is in a meeting. It is informal, and it depends on someone deciding the message is worth sending.&lt;/p&gt;

&lt;p&gt;When an Unmeshed workflow sends a Chat message, it carries the exact data relevant to the moment: the incident ID, the severity, the affected service, the link to the postmortem doc. It goes out the second the event occurs. And it always goes out, regardless of whether anyone is watching.&lt;/p&gt;

&lt;p&gt;For the DevOps incident workflow, this means the DevOps Chat space gets notified the moment an incident is logged, with everything the team needs to start responding. For the support ticket workflow, high-priority tickets alert the Support space before an agent manually routes them. For onboarding, HR sees a new hire notification in their space the moment the offer is accepted.&lt;/p&gt;

&lt;p&gt;The message is part of the process, not a side channel someone manually updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  One Thing Worth Saying Plainly
&lt;/h2&gt;

&lt;p&gt;We tested a lot of approaches for the Google Chat integration specifically. The first version used a webhook URL stored as a secret. It worked, but it meant maintaining a URL, worrying about it expiring, and managing it separately from everything else.&lt;/p&gt;

&lt;p&gt;The current version uses a proper Google Chat integration step with its own space ID and configured connection. It is cleaner, it is observable the same way every other step is, and it does not require anything to be managed outside the workflow.&lt;/p&gt;

&lt;p&gt;The same is true for Gmail. It is not an SMTP connection or a third-party email service. It is a step in the workflow, set up as its own integration, just like every other Google Workspace step.&lt;/p&gt;

&lt;p&gt;The goal was always to make adding these steps feel as natural as any other step in a workflow. I think we got there.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use It
&lt;/h2&gt;

&lt;p&gt;Each Google Workspace app connects as its own integration in Unmeshed. Sheets, Gmail, Docs, Drive, and Chat are set up individually, so you only connect the ones you actually need.&lt;/p&gt;

&lt;p&gt;From there, you add a step to whatever workflow it belongs in, and point it at the integration. Each integration supports multiple operations, so the same step can be configured differently depending on what the workflow needs it to do.&lt;/p&gt;

&lt;p&gt;Once an integration is set up, it's not tied to a single workflow. The same Google Sheets integration used to log incidents in one workflow can be used by a Sheets step in a completely different workflow to check PTO balances. The same Gmail integration used for onboarding emails can be used by a Gmail step in the support ticket workflow. Set up the integration once, use it across as many workflows as you need.&lt;/p&gt;

&lt;p&gt;Every step is logged. Every run is visible. You can see exactly what each step did, what data it used, and whether it succeeded. No separate logging setup needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Most teams are not looking for new tools. They are looking for the tools they already have to work together without someone manually bridging the gaps.&lt;/p&gt;

&lt;p&gt;Google Workspace is already where your team works. Unmeshed connects it into your workflows so that the things that are supposed to happen automatically, actually do.&lt;/p&gt;

&lt;p&gt;If you are building workflows that involve documents, emails, spreadsheets, file storage, or team messaging, and your team runs on Google Workspace, this is worth trying.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>architecture</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Calculate Your LLM Pipeline's Token Efficiency Score</title>
      <dc:creator>The Unmeshed Team</dc:creator>
      <pubDate>Wed, 12 Aug 2026 07:38:34 +0000</pubDate>
      <link>https://dev.to/unmeshed/how-to-calculate-your-llm-pipelines-token-efficiency-score-451</link>
      <guid>https://dev.to/unmeshed/how-to-calculate-your-llm-pipelines-token-efficiency-score-451</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Running AI in production has a funny way of humbling you.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most teams I have worked with had no idea what their AI features actually cost to run until the bill showed up and made it very clear.&lt;/p&gt;

&lt;p&gt;According to Deloitte's 2026 enterprise AI report, AI is now the fastest-growing expense in corporate technology budgets, with some firms reporting it consumes up to half of their IT spend. And most of that spending is invisible until it is not.&lt;/p&gt;

&lt;p&gt;Token efficiency is what separates teams that scale AI sustainably from ones that end up in a budget conversation they did not plan for. This post breaks down what it means, where teams lose the most money, and how to get ahead of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What Tokens Are and Why They Cost Money
&lt;/h2&gt;

&lt;p&gt;Every time you call an LLM, you are not paying per request. You are paying per token, and those add up faster than most people expect.&lt;/p&gt;

&lt;p&gt;A token is roughly four characters of text. The model reads your input in tokens and generates output in the same way. What most teams miss early on is that input and output tokens are priced very differently, and the gap is significant.&lt;/p&gt;

&lt;p&gt;Here is what that looks like across the major providers right now (as of June 2026):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Input (per 1M tokens)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Output (per 1M tokens)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Output multiplier&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;6x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
&lt;td&gt;$3.00&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;td&gt;5x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3.5 Flash&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;td&gt;$9.00&lt;/td&gt;
&lt;td&gt;6x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4 Flash&lt;/td&gt;
&lt;td&gt;$0.14&lt;/td&gt;
&lt;td&gt;$0.28&lt;/td&gt;
&lt;td&gt;2x&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Output tokens cost four to five times more than input tokens across every major provider. That one fact changes how you think about what is actually driving your bill.&lt;/p&gt;

&lt;p&gt;A 500 word prompt with a 300 word response is around 1,000 tokens, roughly $0.018 per call on &lt;a href="https://www.anthropic.com/claude/sonnet" rel="noopener noreferrer"&gt;&lt;strong&gt;Claude Sonnet&lt;/strong&gt;&lt;/a&gt; 4.6. At 100,000 requests a day, that is $1,800 daily on a single workflow, and output tokens are doing most of the damage.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What Token Efficiency Actually Means
&lt;/h2&gt;

&lt;p&gt;Token efficiency is the ratio of useful output to total tokens consumed.&lt;/p&gt;

&lt;p&gt;A workflow that returns a correct answer in 200 tokens costs a quarter of what a workflow costs when it returns the same answer padded with 800 tokens of preamble and repetition. The output quality is identical. The cost is not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frebtkg8qx17836onkw3y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frebtkg8qx17836onkw3y.jpg" alt="A clean, minimalist infographic explaining how to reduce LLM token usage and costs through input and output efficiency. The left side focuses on “Input efficiency – lean prompts,” showing ways to trim system prompts, remove redundant examples, and provide only the needed context. The right side presents “Output efficiency – only what you use,” highlighting strict output formats, limiting responses to a single JSON field, and setting a maximum token cap. At the bottom, a comparison shows 200 tokens vs. 800 tokens, emphasizing that an identical answer can cost 4× more when using unnecessary tokens. The Unmeshed logo appears in the bottom-right corner." width="799" height="450"&gt;&lt;/a&gt;There are two dimensions to this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input efficiency&lt;/strong&gt; is about how lean your prompts are.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every unnecessary sentence in your system prompt costs money.&lt;/li&gt;
&lt;li&gt;Every redundant example costs money.&lt;/li&gt;
&lt;li&gt;Every piece of context the model does not need costs money.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And it costs you on every single request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output efficiency&lt;/strong&gt; is about how much of what the model returns you actually use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If your downstream code reads one JSON field and you ask the model to return a formatted table with explanations, you are paying for tokens your product never uses.&lt;/li&gt;
&lt;li&gt;If the model adds a preamble and you strip it in post-processing, you already paid for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both matter, and most teams I have worked with are only fixing one of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Measure Token Efficiency
&lt;/h3&gt;

&lt;p&gt;Most teams track total token usage. That tells you what you spent but not whether it was worth it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmpgdd7rdzt4r3gk3oj4m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmpgdd7rdzt4r3gk3oj4m.jpg" alt="A clean, minimalist infographic explaining an LLM Efficiency Score, defined as Useful output tokens / Total tokens consumed. A horizontal scale from 0.0 to 1.00 shows that higher scores indicate better efficiency, with the example score positioned above 0.8 in the high-efficiency range. The infographic breaks efficiency into three categories: Below 0.5, where more than half of the consumed tokens are unused noise; 0.5 to 0.8, where some output is padding but mostly usable; and Above 0.8, where most of the model’s output is useful. Each category includes recommended actions, such as auditing prompts and retrieval, reviewing output constraints, and continuing to monitor performance. The Unmeshed logo appears in the bottom-right corner." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A more useful way to think about it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Efficiency Score = Useful output tokens ÷ Total tokens consumed&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The higher the score, the better. A high score means more of what the model returned was actually useful to your product.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Score&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;What it means&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;What to do&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Above 0.8&lt;/td&gt;
&lt;td&gt;Most of what the model returns is useful&lt;/td&gt;
&lt;td&gt;You are in good shape, keep monitoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.5 to 0.8&lt;/td&gt;
&lt;td&gt;Some padding, but mostly usable&lt;/td&gt;
&lt;td&gt;Review output constraints and prompt length&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Below 0.5&lt;/td&gt;
&lt;td&gt;More than half your tokens are noise your product never uses&lt;/td&gt;
&lt;td&gt;Audit prompts, retrieval, and output format now&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Track this at the workflow level over time. If the score keeps dropping, something in your pipeline has changed, and it is worth looking at.&lt;/p&gt;

&lt;p&gt;Token efficiency also affects speed, and this one caught me off guard.&lt;/p&gt;

&lt;p&gt;Output tokens are generated sequentially, not in parallel, so a verbose 800 token response is not just more expensive; it is slower.&lt;/p&gt;

&lt;p&gt;I spent an embarrassingly long time staring at latency dashboards before someone pointed out the responses were just too long.&lt;/p&gt;

&lt;p&gt;Reducing AI inference cost and reducing response time are the same fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Where AI Teams Lose Tokens Without Knowing It
&lt;/h2&gt;

&lt;p&gt;The most common sources of token waste are overloaded context windows, bloated system prompts, and redundant retrieval. Each request looks fine individually. The cost only becomes visible when you look at the workflow as a whole.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzqea06408vzki8xs44o3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzqea06408vzki8xs44o3.jpg" alt="A clean, minimalist infographic titled “5 Places Your Tokens Leak”, highlighting five common sources of unnecessary LLM token usage. The five areas shown are bloated system prompts, full documents instead of summaries, verbose output formatting, redundant chain history, and lack of repeated-input caching. Each item is represented with a simple black line icon and a blue visual indicator, reinforcing the idea of increasing token waste. The Unmeshed logo appears in the bottom-right corner." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Bloated System Prompts
&lt;/h3&gt;

&lt;p&gt;This is probably the one I see most often. System prompts grow quietly.&lt;/p&gt;

&lt;p&gt;Someone adds a caveat, someone else adds an edge case instruction, and a new model version needs a formatting note. Six months later, your system prompt is 2,000 tokens, and half of it has nothing to do with what most requests actually need.&lt;/p&gt;

&lt;p&gt;The problem is that every single request pays for the full prompt every time.&lt;/p&gt;

&lt;p&gt;A 1,000 token system prompt across 100,000 daily requests is 100 million input tokens before a single user message even comes in. Trimming it is one of the fastest wins you can get on AI inference cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sending Full Documents When Summaries Work
&lt;/h3&gt;

&lt;p&gt;Passing an entire PDF or knowledge base into the context window when the model only needs two relevant paragraphs is one of the most common and expensive habits teams develop.&lt;/p&gt;

&lt;p&gt;I think most companies underestimate how much of their token spend sits here. Poor retrieval is a big part of the problem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bad retrieval means large context windows.&lt;/li&gt;
&lt;li&gt;Large context windows mean wasted tokens.&lt;/li&gt;
&lt;li&gt;Better chunking and better retrieval pipelines reduce costs quickly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Semantic caching can &lt;a href="https://www.welcome.ai/content/semantic-caching-cuts-llm-api-costs-by-73" rel="noopener noreferrer"&gt;&lt;strong&gt;cut API costs by&lt;/strong&gt;&lt;/a&gt; up to 73% in high-repetition use cases. Fixing retrieval is usually the highest-impact change a team can make before touching anything else.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verbose Output Formatting
&lt;/h3&gt;

&lt;p&gt;If you ask the model to return a markdown table with column headers, descriptions, and a plain English summary, but your application only reads one field, you are generating output tokens you never use.&lt;/p&gt;

&lt;p&gt;Output tokens cost four to five times more than input tokens. Telling the model exactly what you need, and nothing more, is one of the fastest ways to &lt;a href="https://unmeshed.io/blog/how-to-reduce-llm-costs-through-better-prompt-optimization" rel="noopener noreferrer"&gt;&lt;strong&gt;reduce AI costs&lt;/strong&gt;&lt;/a&gt; without changing your model or your pipeline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Redundant Chaining in Multi-Step Pipelines
&lt;/h3&gt;

&lt;p&gt;In agent workflows with multiple steps, each step often receives the full conversation history.&lt;/p&gt;

&lt;p&gt;By step four, the model is re-processing the context it already handled in steps one, two, and three. You are paying to re-read the same tokens repeatedly. The fix is to summarize history between steps rather than passing the full thread forward.&lt;/p&gt;

&lt;p&gt;The cost grows with each step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A five-step pipeline where each step carries the full history does not cost five times the first step.&lt;/li&gt;
&lt;li&gt;It costs significantly more because the context window gets larger with each hop.&lt;/li&gt;
&lt;li&gt;Most teams do not notice until the bill arrives.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  No Caching on Repeated Inputs
&lt;/h3&gt;

&lt;p&gt;There are two types of caching worth understanding, and they work very differently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbj4zjafzp4us5lx9vxuk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbj4zjafzp4us5lx9vxuk.jpg" alt="A clean, minimalist infographic titled “Prompt Caching vs. Response Caching”, comparing two approaches to reducing LLM costs. The left side explains prompt caching, where long, stable system instructions and context are cached so repeated inputs are billed at only a fraction of the normal cost. The right side explains response caching, where repeated user questions trigger a cache lookup and return a previously stored answer without calling the model, resulting in 0 tokens and 0 cost. Simple flow diagrams illustrate each process, with blue accents highlighting cached content and key efficiency points. The Unmeshed logo appears in the bottom-right corner." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching" rel="noopener noreferrer"&gt;&lt;strong&gt;Prompt caching&lt;/strong&gt;&lt;/a&gt; saves you money on inputs. If your system prompt is long and stable, the model does not need to reprocess it on every call. You pay a fraction of the normal input cost for that repeated portion. A 3,000 token system prompt across 10,000 daily requests adds up to 30 million tokens a day. With caching, most of that is free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response caching&lt;/strong&gt; goes further. If a user asks the exact same question and you have a stored answer, you skip the model call entirely. Zero tokens, zero cost. This works well for high-volume use cases where questions repeat frequently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most teams never set up either. Once you run the numbers on how often your inputs repeat, it becomes an obvious fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Practical Ways to Improve Token Efficiency
&lt;/h2&gt;

&lt;p&gt;These are not theoretical. Each one directly reduces what you spend.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Tactic&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Effort&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Typical savings&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Audit system prompts&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;10–30% on input&lt;/td&gt;
&lt;td&gt;All workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix retrieval quality&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;20–50% on context&lt;/td&gt;
&lt;td&gt;RAG pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Set output constraints&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;30–60% on output&lt;/td&gt;
&lt;td&gt;Structured outputs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model routing&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;40–80% on cost&lt;/td&gt;
&lt;td&gt;Multi-step pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompt caching&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Up to 90% on repeated input&lt;/td&gt;
&lt;td&gt;Long stable prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Response caching&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;100% on repeated calls&lt;/td&gt;
&lt;td&gt;High-repetition use cases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max token limits&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Prevents runaway spend&lt;/td&gt;
&lt;td&gt;Agentic workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few of these deserve more detail:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Audit your system prompts every month:&lt;/strong&gt; Remove instructions that no longer reflect how the product works. If a caveat was added for an edge case that no longer exists, it is costing you money on every request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route by model, not by habit:&lt;/strong&gt; Not every step needs your most capable and most expensive model. Classification, formatting, and extraction tasks often work just as well on smaller models at a fraction of the cost. Running a simple task through a frontier &lt;a href="https://unmeshed.io/blog/llm-gateway-explained-production-ai" rel="noopener noreferrer"&gt;&lt;strong&gt;reasoning model&lt;/strong&gt;&lt;/a&gt; when a smaller model would do it just as well is one of the most expensive habits I see in production pipelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a max token limit on every AI step:&lt;/strong&gt; A hard ceiling on output length prevents verbose responses from quietly inflating your bill. It is the simplest guardrail you can add, and most teams skip it entirely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track at the workflow level:&lt;/strong&gt; Total monthly token usage tells you what you spent. Workflow-level tracking tells you where and why.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. How Unmeshed Helps You Control Token Spend
&lt;/h2&gt;

&lt;p&gt;Provider dashboards tell you what you spent after the invoice arrives. Unmeshed lets you set hard limits before the spend happens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmrs4rqu26crqf3vvenvn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmrs4rqu26crqf3vvenvn.jpg" alt="A clean, minimalist infographic titled “Prompt Caching vs. Response Caching”, comparing two ways to reduce LLM costs. The left side illustrates prompt caching, where long, stable system instructions and context are cached, allowing repeated input to be processed at a fraction of the normal input cost while still generating fresh output. The right side illustrates response caching, where a repeated user question is checked against a cache and, when a match is found, the model call is bypassed and the stored answer is returned instantly—resulting in 0 tokens and 0 cost. Blue accents highlight the cached content and key efficiency points, while simple flow diagrams make the comparison easy to understand. The Unmeshed logo appears in the bottom-right corner." width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is what that looks like in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Per-step token limits.&lt;/strong&gt; Every &lt;a href="https://unmeshed.io/products/agentic" rel="noopener noreferrer"&gt;&lt;strong&gt;AI step&lt;/strong&gt;&lt;/a&gt; in your workflow has a maximum token budget. Once a step hits that limit, it stops. This means no single step can quietly generate thousands of tokens and inflate your bill without you knowing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool allow-lists for agents.&lt;/strong&gt; You decide upfront which tools each AI agent is allowed to use. If a tool is not on the list, the agent cannot call it. No unintended actions, no surprise costs from tools running in the background.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic steps where AI is not needed.&lt;/strong&gt; Not every step in a workflow needs a language model. Tasks like routing a request, parsing a field, or validating a value can run as plain code at zero token cost. You only pay for the steps where AI is actually doing something a function could not.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to use fewer tokens across the board. It is to use AI where it earns its cost and replace everything else with code that runs for free.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Token efficiency is not about being cheap with AI.&lt;/p&gt;

&lt;p&gt;Anyone can reduce a bill by doing less. What actually matters is understanding which workflows are worth the spend and which ones are just generating noise.&lt;/p&gt;

&lt;p&gt;Tracking token usage early, at the workflow level, is how you stay ahead of that.&lt;/p&gt;

&lt;p&gt;If you want hard limits on what every AI step can spend, Unmeshed is a good place to start.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
