<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Durable-Execution on lo0 — Tech Blog</title><link>https://blog.lo0.es/en/tags/durable-execution/</link><description>Recent content in Durable-Execution on lo0 — Tech Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 14 Jun 2026 04:00:00 +0200</lastBuildDate><atom:link href="https://blog.lo0.es/en/tags/durable-execution/index.xml" rel="self" type="application/rss+xml"/><item><title>The second cost vector of AI agents: durable execution with Temporal</title><link>https://blog.lo0.es/en/posts/second-cost-vector-ai-agents-durable-execution-temporal/</link><pubDate>Sun, 14 Jun 2026 04:00:00 +0200</pubDate><guid>https://blog.lo0.es/en/posts/second-cost-vector-ai-agents-durable-execution-temporal/</guid><description>&lt;blockquote>
&lt;p>Notation: amounts in &lt;strong>euros (N €)&lt;/strong>, decimals with a point. The dollar symbol is not used
(on this site it is a formula delimiter).&lt;/p>
&lt;/blockquote>
&lt;h2 id="the-thesis-agents-have-two-cost-vectors-not-one">The thesis: agents have two cost vectors, not one&lt;/h2>
&lt;p>Almost all the cost discourse around agentic AI focuses on a single vector: the &lt;strong>cost of
inference&lt;/strong> (the tokens). And that one is solvable: &lt;strong>FastMCP + vLLM on local hardware eliminates
the cost of inference&lt;/strong> — you serve the models on your own iron, the cost per token drops to your
amortised cost, with no API bill. But there is a &lt;strong>second vector&lt;/strong> that almost nobody measures and
that kills more projects: the &lt;strong>cost of faulty execution&lt;/strong>. An agent is not a call, it is a
&lt;strong>sequence&lt;/strong> of steps (reason, call a tool, reason, call another one, and so on), and when that
sequence fails halfway through with no persisted state, the cost is not linear: &lt;strong>it doubles, it
spirals with retries and it inflates on every recovery&lt;/strong>. This article is about that second vector,
how &lt;strong>durable execution&lt;/strong> attacks it (with Temporal as the reference), what the state of the art and
the papers say, and why it is the real cause of so many cancellations.&lt;/p>
&lt;p>The framing that backs the urgency comes from &lt;strong>Gartner&lt;/strong>: it predicts that &lt;strong>more than 40 % of
agentic AI projects will be cancelled before the end of 2027&lt;/strong>, because of &lt;strong>rising costs, unclear
business value or inadequate risk controls&lt;/strong> (&lt;a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027">Gartner&lt;/a>).
&amp;ldquo;Rising costs&amp;rdquo; is exactly this second vector: not the cost of serving the model, but the cost of
running it badly.&lt;/p>
&lt;hr>
&lt;h2 id="the-three-expenses-of-a-faulty-agent">The three expenses of a faulty agent&lt;/h2>
&lt;p>The cost of faulty execution breaks down into three concrete sources, and it is worth seeing them
with numbers:&lt;/p>
&lt;div class="diagram" style="max-width:780px;margin:1rem auto;">
&lt;svg viewBox="0 0 780 220" role="img" aria-label="The three expenses of a faulty agent: failures charged twice, uncontrolled retries, and inflated context on recovery" xmlns="http://www.w3.org/2000/svg">
&lt;style>.bx{fill:none;stroke:currentColor;stroke-width:1.3}.tl{font:600 12px sans-serif;fill:currentColor}.ts{font:11px sans-serif;fill:currentColor}&lt;/style>
&lt;rect class="bx" x="20" y="50" width="230" height="100" rx="6"/>
&lt;text x="32" y="72" class="tl">1 · Failures charged twice&lt;/text>
&lt;text x="32" y="92" class="ts">failure at step 15 of 20&lt;/text>
&lt;text x="32" y="108" class="ts">→ the previous 14 are thrown away&lt;/text>
&lt;text x="32" y="124" class="ts">+ full retry&lt;/text>
&lt;rect class="bx" x="275" y="50" width="230" height="100" rx="6"/>
&lt;text x="287" y="72" class="tl">2 · Uncontrolled retries&lt;/text>
&lt;text x="287" y="92" class="ts">retries with no policy&lt;/text>
&lt;text x="287" y="108" class="ts">→ API/compute bill&lt;/text>
&lt;text x="287" y="124" class="ts">with no ceiling&lt;/text>
&lt;rect class="bx" x="530" y="50" width="230" height="100" rx="6"/>
&lt;text x="542" y="72" class="tl">3 · Inflated context&lt;/text>
&lt;text x="542" y="92" class="ts">recovery rebuilds&lt;/text>
&lt;text x="542" y="108" class="ts">the full context&lt;/text>
&lt;text x="542" y="124" class="ts">→ extra tokens per step&lt;/text>
&lt;text x="20" y="185" class="ts">None is the "base" inference cost: they are the costs of running the sequence BADLY. The vector local vLLM does not touch.&lt;/text>
&lt;text x="20" y="205" class="ts">Durable execution attacks all three at once with per-step persisted state.&lt;/text>
&lt;/svg>
&lt;/div>
&lt;h3 id="vector-1-failures-charged-twice">Vector 1: failures charged twice&lt;/h3>
&lt;p>With no persisted state, a failure at &lt;strong>step 15 of 20&lt;/strong> costs you the tokens of the &lt;strong>14 previous
steps&lt;/strong> (which you already paid for) &lt;strong>plus the full retry&lt;/strong> from scratch. The wasted cost of an
agent with no checkpoint, per failure, is:&lt;/p>
$$\text{wasted cost} = \text{tokens of the completed steps} \times \text{cost per token} \times (\text{retries})$$
&lt;p>The longer the sequence and the later it fails, the more expensive: a failure at 75 % of the work
throws away 75 % of the cost. &lt;strong>Durable execution checkpoints every step&lt;/strong>: if the worker dies
halfway through, &lt;strong>another one picks the workflow up exactly where it stopped&lt;/strong>, not from scratch
(&lt;a href="https://temporal.io/">Temporal&lt;/a>). Temporal uses its &lt;strong>Event History&lt;/strong> as the record of past
decisions; on a failure it &lt;strong>replays&lt;/strong> the progress to date and resumes at the exact point
(&lt;a href="https://callsphere.ai/blog/temporal-ai-agent-workflows-durable-execution-workflow-as-code">CallSphere&lt;/a>).
Step 15 fails → step 15 is retried, not the previous 14. The wasted cost goes from &amp;ldquo;the 14 steps&amp;rdquo;
to &amp;ldquo;the step that failed&amp;rdquo;.&lt;/p>
&lt;h3 id="vector-2-uncontrolled-retries">Vector 2: uncontrolled retries&lt;/h3>
&lt;p>Agents that &lt;strong>retry with no policy&lt;/strong> blow up the API or compute bill: a retry loop against a &lt;em>rate
limit&lt;/em> can generate dozens of billable calls for a single task. Durable execution defines &lt;strong>retry
policies per activity&lt;/strong>: &lt;strong>hard limits&lt;/strong> on retries, &lt;strong>exponential backoff&lt;/strong> and &lt;strong>timeouts&lt;/strong> that
&lt;strong>bound the maximum possible cost&lt;/strong> of each call. Instead of &amp;ldquo;retry until it works&amp;rdquo; (unbounded
cost), you define &amp;ldquo;at most N retries with backoff and a timeout of T&amp;rdquo; (bounded cost).&lt;/p>
&lt;p>The state of the art backs this with data: the &lt;strong>ReliabilityBench&lt;/strong> benchmark evaluates agent
reliability under controlled failures and finds that &lt;strong>rate limiting is the most damaging failure&lt;/strong>
of all (&lt;a href="https://arxiv.org/abs/2601.06112">arXiv 2601.06112&lt;/a>). That is, exactly the failure that an
unpolicied retry turns into a cost spiral. Bounding retries is not hygiene, it is the defence
against the failure mode the literature singles out as the worst.&lt;/p>
&lt;h3 id="vector-3-inflated-context-on-recovery">Vector 3: inflated context on recovery&lt;/h3>
&lt;p>With no persisted state, the agent &lt;strong>rebuilds the full context on every recovery&lt;/strong>: it reloads the
whole conversation/task history to &amp;ldquo;remember&amp;rdquo; where it was, paying the tokens of that enormous
context &lt;strong>on every recovery&lt;/strong>. With durable execution the state lives in the workflow history, so
&lt;strong>the next step receives only the context needed for that step&lt;/strong>, not the whole conversation. The
saving is direct: fewer input tokens per step, and no penalty for rebuilding the context after
each failure.&lt;/p>
&lt;hr>
&lt;h2 id="a-worked-example-the-cost-of-one-failure">A worked example: the cost of one failure&lt;/h2>
&lt;p>Let us put numbers on the three vectors. A 20-step agent consuming ~3,000 tokens per step
(reasoning plus tool call), on in-house inference at ~1.09 €/1M tokens, with a failure at
&lt;strong>step 15&lt;/strong> and a failure rate of 10 % of executions:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Scenario&lt;/th>
&lt;th>Tokens recomputed per failure&lt;/th>
&lt;th>Cost per failure&lt;/th>
&lt;th>Over 10,000 executions (10 % fail)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>No state&lt;/strong> (full retry)&lt;/td>
&lt;td>14 steps × 3,000 = 42,000&lt;/td>
&lt;td>~0.046 €&lt;/td>
&lt;td>~46 € wasted&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>With checkpoint&lt;/strong> (resumes at 15)&lt;/td>
&lt;td>0 (only step 15 is retried)&lt;/td>
&lt;td>~0.003 €&lt;/td>
&lt;td>~3 € wasted&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The absolute figure looks small because inference is in-house and cheap; but the &lt;strong>ratio&lt;/strong> is
&lt;strong>~15×&lt;/strong> less waste per failure, and it scales with the length of the sequence and with the cost
per token (were it an external API at 10-30 €/1M, the waste without a checkpoint would be
multiplied by 10-30). And this is only vector 1: add uncontrolled retries (vector 2), which can
turn one failure into dozens of calls, and the context rebuilt on every recovery (vector 3). The
cost of faulty execution &lt;strong>is not the inference cost × something small&lt;/strong>; it is a multiplier that
grows with the agent&amp;rsquo;s complexity, and it is exactly what does not show up in the demo and does
show up in the production bill.&lt;/p>
&lt;hr>
&lt;h2 id="how-temporal-works-workflows-activities-and-determinism">How Temporal works: workflows, activities and determinism&lt;/h2>
&lt;p>To understand why Temporal achieves this, its two primitives:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Workflow&lt;/strong>: the agent&amp;rsquo;s orchestration logic (the sequence of steps, the decisions). It has to
be &lt;strong>deterministic&lt;/strong>: given the same Event History, it produces the same decisions. That is what
allows the execution to be &lt;strong>replayed&lt;/strong> after a failure and to arrive at the same point.&lt;/li>
&lt;li>&lt;strong>Activity&lt;/strong>: every step with side effects (a call to the LLM, to a tool, to an API). Activities
are &lt;strong>not&lt;/strong> deterministic (the LLM is probabilistic), so their result is &lt;strong>persisted&lt;/strong> in the
Event History: on replay they are not executed again, they are read from the history.&lt;/li>
&lt;/ul>
&lt;p>The trick is that separation: the deterministic logic (workflow) is replayed cheaply from the
history; the expensive, non-deterministic steps (activities, the model calls) are persisted and
&lt;strong>not repeated&lt;/strong>. That is why &amp;ldquo;completed work is never repeated&amp;rdquo;: completed activities are read,
not recomputed. And &lt;strong>retry policies are defined per activity&lt;/strong>, so each call to the model or to a
tool has its own retry limit, backoff and timeout, which is the vector 2 cost control at the right
level.&lt;/p>
&lt;hr>
&lt;h2 id="durable-execution-what-it-is-and-the-landscape">Durable execution: what it is and the landscape&lt;/h2>
&lt;p>&lt;strong>Durable execution&lt;/strong> is a programming model that &lt;strong>guarantees the code completes despite
failures&lt;/strong>: every step is checkpointed automatically, and if a worker dies, another one picks the
workflow up where it stopped (&lt;a href="https://temporal.io/">Temporal&lt;/a>). It crossed into the &amp;ldquo;early
majority&amp;rdquo; in 2025, with offerings from AWS, Cloudflare and Vercel, &lt;strong>driven precisely by AI agent
infrastructure&lt;/strong> (&lt;a href="https://www.inngest.com/blog/durable-execution-key-to-harnessing-ai-agents">Inngest&lt;/a>).&lt;/p>
&lt;div class="diagram" style="max-width:780px;margin:1rem auto;">
&lt;svg viewBox="0 0 780 200" role="img" aria-label="Durable execution: a sequence of checkpointed steps; on a failure it resumes from the last checkpoint, not from scratch" xmlns="http://www.w3.org/2000/svg">
&lt;style>.bx{fill:none;stroke:currentColor;stroke-width:1.3}.cp{fill:none;stroke:currentColor;stroke-width:1.3;stroke-dasharray:3 2}.tl{font:600 12px sans-serif;fill:currentColor}.ts{font:11px sans-serif;fill:currentColor}.ar{fill:none;stroke:currentColor;stroke-width:1.3;marker-end:url(#dm)}&lt;/style>
&lt;defs>&lt;marker id="dm" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">&lt;path d="M0,0 L10,5 L0,10 z" fill="currentColor"/>&lt;/marker>&lt;/defs>
&lt;rect class="bx" x="30" y="60" width="80" height="40" rx="5"/>&lt;text x="70" y="84" text-anchor="middle" class="ts">step 1 ✓&lt;/text>
&lt;path class="ar" d="M110,80 L140,80"/>
&lt;rect class="bx" x="140" y="60" width="80" height="40" rx="5"/>&lt;text x="180" y="84" text-anchor="middle" class="ts">step 2 ✓&lt;/text>
&lt;path class="ar" d="M220,80 L250,80"/>
&lt;text x="255" y="55" class="ts">… checkpoint per step (Event History) …&lt;/text>
&lt;rect class="bx" x="430" y="60" width="80" height="40" rx="5"/>&lt;text x="470" y="84" text-anchor="middle" class="ts">step 15 ✗&lt;/text>
&lt;text x="430" y="125" class="ts">failure here&lt;/text>
&lt;path class="cp" d="M470,100 C470,140 400,140 400,108"/>
&lt;text x="300" y="155" class="ts">resumes at step 15, not at step 1&lt;/text>
&lt;rect class="bx" x="360" y="60" width="60" height="40" rx="5"/>&lt;text x="390" y="84" text-anchor="middle" class="ts">14 ✓&lt;/text>
&lt;text x="30" y="185" class="ts">Completed work is never repeated: the cost of a failure is that of the step that failed, not of the whole sequence.&lt;/text>
&lt;/svg>
&lt;/div>
&lt;p>The tooling landscape (the 2026 reference architecture for durable LLM agents): &lt;strong>Temporal&lt;/strong>,
&lt;strong>AWS Step Functions Express&lt;/strong>, &lt;strong>Restate&lt;/strong>, &lt;strong>DBOS&lt;/strong> and &lt;strong>Inngest&lt;/strong> as durable execution
primitives; and the &lt;em>checkpointer&lt;/em> model of &lt;strong>LangGraph&lt;/strong> (PostgresSaver, RedisSaver,
DynamoDBSaver) on the agent framework side (&lt;a href="https://render.com/articles/durable-workflow-platforms-ai-agents-llm-workloads">render.com&lt;/a>).
Temporal stands out for its &lt;em>workflow-as-code&lt;/em> model and its Event History as the source of truth.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Option&lt;/th>
&lt;th>Model&lt;/th>
&lt;th>Self-hosted&lt;/th>
&lt;th>Note for sovereignty&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Temporal&lt;/strong>&lt;/td>
&lt;td>workflow-as-code, Event History&lt;/td>
&lt;td>yes (open source)&lt;/td>
&lt;td>the most mature; full on-prem&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Restate&lt;/strong>&lt;/td>
&lt;td>durable RPC/handlers&lt;/td>
&lt;td>yes&lt;/td>
&lt;td>lightweight, modern&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>DBOS&lt;/strong>&lt;/td>
&lt;td>durable on top of Postgres&lt;/td>
&lt;td>yes&lt;/td>
&lt;td>state in your own Postgres&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Inngest&lt;/strong>&lt;/td>
&lt;td>event-driven, steps&lt;/td>
&lt;td>SaaS / self-host&lt;/td>
&lt;td>focus on DX&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>AWS Step Functions Express&lt;/strong>&lt;/td>
&lt;td>state machine&lt;/td>
&lt;td>no (AWS SaaS)&lt;/td>
&lt;td>tied to AWS, not sovereign&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>LangGraph checkpointer&lt;/strong>&lt;/td>
&lt;td>framework checkpointer&lt;/td>
&lt;td>yes (your backend)&lt;/td>
&lt;td>at framework level, not platform level&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For a sovereign platform, the ones that are &lt;strong>self-hosted&lt;/strong> (Temporal, Restate, DBOS) keep state in
your cluster; the SaaS ones (Step Functions) move execution into someone else&amp;rsquo;s jurisdiction.
Temporal is the choice for maturity and for its complete on-prem deployment.&lt;/p>
&lt;hr>
&lt;h2 id="the-cost-of-durable-execution-itself">The cost of durable execution itself&lt;/h2>
&lt;p>Honesty about the data: durable execution &lt;strong>is not free&lt;/strong>. It has two costs to watch:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Execution overhead&lt;/strong>: persisting state and replaying history adds latency and compute. The
reference architectures put it at around &lt;strong>5-20 % overhead&lt;/strong> on a load of 100,000
executions/day (&lt;a href="https://render.com/articles/durable-workflow-platforms-ai-agents-llm-workloads">render.com&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Price per step&lt;/strong>: in the offerings with &lt;strong>per-step pricing&lt;/strong>, orchestrating many model calls,
&lt;em>rate limit&lt;/em> retries and complex interactions generates &lt;strong>a large number of billable steps&lt;/strong>, and
the cost can run away (&lt;a href="https://render.com/articles/durable-workflow-platforms-ai-agents-llm-workloads">render.com&lt;/a>).&lt;/li>
&lt;/ol>
&lt;p>The conclusion for a sovereign platform: &lt;strong>self-host the durable execution engine&lt;/strong> (Temporal is
open source and deploys on-prem) and the SaaS per-step price disappears, leaving only the execution
overhead, a 5-20 % that is paid back many times over by what it saves on the three vectors above.
The arithmetic: if a failure halfway through a sequence used to cost you 50-75 % of the recomputed
cost, a 5-20 % overhead is a bargain.&lt;/p>
&lt;hr>
&lt;h2 id="observability-from-manual-post-mortem-to-real-time-traceability">Observability: from manual post-mortem to real-time traceability&lt;/h2>
&lt;p>The fourth element of the equation: the &lt;strong>observability layer&lt;/strong>. The integration with &lt;strong>Braintrust&lt;/strong>
and the &lt;strong>complete history of every execution&lt;/strong> (Temporal&amp;rsquo;s Event History) turn cost analysis from a
&lt;strong>manual post-mortem&lt;/strong>, reconstructing by hand what happened and what it cost after a failure, into
&lt;strong>real-time traceability&lt;/strong>: every execution is recorded step by step, with its tokens, its retries
and its cost, ready to analyse. This closes the FinOps loop of the cost-per-token article, but at
the &lt;strong>agent&lt;/strong> level: not just how much a token costs, but how much an &lt;strong>execution&lt;/strong> costs, and
where it is wasted.&lt;/p>
&lt;hr>
&lt;h2 id="the-complete-equation">The complete equation&lt;/h2>
&lt;p>Putting the pieces together, the cost architecture of a sovereign agent:&lt;/p>
&lt;div class="diagram" style="max-width:780px;margin:1rem auto;">
&lt;svg viewBox="0 0 780 190" role="img" aria-label="The equation: FastMCP plus local vLLM eliminates the inference cost; Temporal eliminates the faulty execution cost; they are complementary" xmlns="http://www.w3.org/2000/svg">
&lt;style>.bx{fill:none;stroke:currentColor;stroke-width:1.3}.tl{font:600 12px sans-serif;fill:currentColor}.ts{font:11px sans-serif;fill:currentColor}.op{font:600 18px sans-serif;fill:currentColor}&lt;/style>
&lt;rect class="bx" x="20" y="50" width="230" height="70" rx="6"/>
&lt;text x="32" y="74" class="tl">FastMCP + local vLLM&lt;/text>
&lt;text x="32" y="94" class="ts">eliminates the cost&lt;/text>
&lt;text x="32" y="110" class="ts">of INFERENCE (tokens)&lt;/text>
&lt;text x="288" y="92" text-anchor="middle" class="op">+&lt;/text>
&lt;rect class="bx" x="320" y="50" width="230" height="70" rx="6"/>
&lt;text x="332" y="74" class="tl">Temporal (durable exec.)&lt;/text>
&lt;text x="332" y="94" class="ts">eliminates the cost of&lt;/text>
&lt;text x="332" y="110" class="ts">FAULTY EXECUTION&lt;/text>
&lt;text x="578" y="92" text-anchor="middle" class="op">=&lt;/text>
&lt;rect class="bx" x="600" y="50" width="160" height="70" rx="6"/>
&lt;text x="612" y="74" class="tl">Sustainable agent&lt;/text>
&lt;text x="612" y="94" class="ts">bounded cost,&lt;/text>
&lt;text x="612" y="110" class="ts">sovereign, traceable&lt;/text>
&lt;text x="20" y="155" class="ts">They are COMPLEMENTARY: they attack different vectors. The 40% of projects Gartner writes off dies by ignoring the second.&lt;/text>
&lt;text x="20" y="175" class="ts">+ observability (Braintrust / Event History) = real-time cost traceability.&lt;/text>
&lt;/svg>
&lt;/div>
&lt;p>&lt;strong>FastMCP + vLLM running locally eliminates the cost of inference. Temporal eliminates the cost of
faulty execution. They are complementary&lt;/strong>, attacking different vectors of the same problem.
Whoever solves only the first (serves cheaply but executes badly) keeps bleeding through the
second; whoever solves only the second (executes robustly but pays for the API) keeps bleeding
through the first. A sustainable platform needs both.&lt;/p>
&lt;hr>
&lt;h2 id="state-of-the-art-and-papers">State of the art and papers&lt;/h2>
&lt;p>The reader asked for papers, and there are some: agent reliability and cost is an active research
area in 2026.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Paper&lt;/th>
&lt;th>Contribution&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>ReliabilityBench&lt;/strong> (&lt;a href="https://arxiv.org/abs/2601.06112">2601.06112&lt;/a>)&lt;/td>
&lt;td>an agent reliability benchmark: consistency, robustness and tolerance to tool/API failures; &lt;strong>rate limiting is the most damaging failure&lt;/strong>; ReAct more robust than Reflexion under stress&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Cost-Efficient LLM Agents&lt;/strong> (&lt;a href="https://arxiv.org/pdf/2603.01548">arXiv&lt;/a>)&lt;/td>
&lt;td>the &lt;strong>reliability-cost trade-off&lt;/strong>: routing every decision through the LLM improves accuracy but blows up cost; pre-coded graphs are cheaper but brittle against compound failures&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Multi-agent Byzantine Fault Tolerance&lt;/strong> (&lt;a href="https://arxiv.org/abs/2511.10400">2511.10400&lt;/a>)&lt;/td>
&lt;td>BFT consensus (CP-WBFT) to stabilise multi-agent systems under extreme failure rates (85.7 %)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>ACRFence&lt;/strong> (&lt;a href="https://arxiv.org/pdf/2603.20625">2603.20625&lt;/a>)&lt;/td>
&lt;td>security of agent &lt;strong>checkpoint-restore&lt;/strong>: preventing semantic &lt;em>rollback&lt;/em> attacks&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>The Six Sigma Agent&lt;/strong> (&lt;a href="https://arxiv.org/html/2601.22290">2601.22290&lt;/a>)&lt;/td>
&lt;td>enterprise reliability via consensus-driven decomposed execution&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Two readings for the proposal. First, &lt;strong>the reliability-cost trade-off is real and is
characterised&lt;/strong>: you cannot maximise accuracy ignoring cost, or the other way round; durable
execution shifts the frontier by &lt;strong>making reliability cheaper&lt;/strong> (checkpoint plus bounded retry
instead of recomputing). Second, &lt;strong>agent checkpoint-restore has its own security surface&lt;/strong>
(ACRFence): persisting state introduces &lt;em>rollback&lt;/em> risks that have to be controlled — durability is
not only a cost decision, it is a security one too.&lt;/p>
&lt;hr>
&lt;h2 id="the-sovereign-angle">The sovereign angle&lt;/h2>
&lt;p>For a European sovereign platform the combination fits perfectly and is &lt;strong>entirely on-prem&lt;/strong>:
&lt;strong>vLLM&lt;/strong> serves the models (no API cost and no sovereignty given away), &lt;strong>FastMCP&lt;/strong> exposes the
tools, and &lt;strong>self-hosted Temporal&lt;/strong> orchestrates with durability (no SaaS per-step price and no
execution data leaving for a foreign jurisdiction). The execution history, which describes in
detail what your agent does and with which data, &lt;strong>stays in your cluster&lt;/strong>, just like the
inferences. Against a stack of agents on external APIs plus a US SaaS orchestrator, the sovereign
stack removes both cost vectors &lt;strong>and&lt;/strong> keeps the data under EU jurisdiction. It is the same
argument as the rest of the series, applied to the agent layer: bounded, measured and sovereign
cost.&lt;/p>
&lt;hr>
&lt;h2 id="fastmcp-and-the-tool-layer">FastMCP and the tool layer&lt;/h2>
&lt;p>The other component of the equation is &lt;strong>FastMCP&lt;/strong>, the layer that exposes tools to the agent via
&lt;strong>MCP&lt;/strong> (Model Context Protocol). The agent does not call the APIs directly: it calls &lt;strong>MCP
servers&lt;/strong> that encapsulate each tool (a database, a search engine, an internal system) with a
uniform contract. The connection with cost and durability: every call to an MCP tool is a Temporal
&lt;strong>activity&lt;/strong>, so it inherits its retry policy, its timeout and its persistence. That is, FastMCP
defines &lt;strong>which&lt;/strong> tools exist and Temporal governs &lt;strong>how&lt;/strong> they are executed with durability and
bounded cost. And because the MCP servers are your own, the tools and the data they touch &lt;strong>stay
on-prem&lt;/strong>, never exposed to an external provider. The triad &lt;strong>vLLM (model) + FastMCP (tools) +
Temporal (orchestration)&lt;/strong> is a fully sovereign agent stack: the model, the tools and the
execution, all under your control and with the cost of both vectors bounded.&lt;/p>
&lt;hr>
&lt;h2 id="patterns-human-in-the-loop-and-long-sequences">Patterns: human-in-the-loop and long sequences&lt;/h2>
&lt;p>Where durable execution shines most, by agent pattern:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Human-in-the-loop (HITL)&lt;/strong>: human approval patterns, essential for an agent&amp;rsquo;s safety, map
directly to the &lt;strong>suspend/resume&lt;/strong> primitives of durable execution, allowing workflows that
&lt;strong>pause for hours or days waiting for an approval without losing state&lt;/strong>
(&lt;a href="https://www.inngest.com/blog/durable-execution-key-to-harnessing-ai-agents">Inngest&lt;/a>). Without
durability, keeping an agent &amp;ldquo;waiting&amp;rdquo; consumes resources or loses the context; with it, the
workflow sleeps at no cost and wakes up with all its state.&lt;/li>
&lt;li>&lt;strong>Long sequences&lt;/strong>: the longer the chain of steps, the greater the checkpoint&amp;rsquo;s saving (a late
failure throws away more work). Multi-step agents with tools are the canonical use case.&lt;/li>
&lt;li>&lt;strong>Multi-agent&lt;/strong>: when several agents collaborate, reliability gets complicated (the BFT papers
study this); durable execution provides the consistent state substrate on which to build that
coordination.&lt;/li>
&lt;/ul>
&lt;p>The pattern that does &lt;strong>not&lt;/strong> need it: a single-step, stateless call (a classifier, a simple
extraction). There the durability overhead buys nothing. The rule: durable execution for &lt;strong>stateful
sequences that fail halfway through&lt;/strong>; for everything else, a direct call.&lt;/p>
&lt;hr>
&lt;h2 id="how-to-measure-the-second-vector">How to measure the second vector&lt;/h2>
&lt;p>To manage the cost of faulty execution you have to measure it, and with the Event History plus
observability (Braintrust) the KPIs are within reach:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>KPI&lt;/th>
&lt;th>What it indicates&lt;/th>
&lt;th>Where it comes from&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Tokens wasted per failure&lt;/strong>&lt;/td>
&lt;td>the cost of vector 1&lt;/td>
&lt;td>tokens recomputed after a failure&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Retries per activity&lt;/strong>&lt;/td>
&lt;td>the cost of vector 2&lt;/td>
&lt;td>retry count from the Event History&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Context size on recovery&lt;/strong>&lt;/td>
&lt;td>the cost of vector 3&lt;/td>
&lt;td>input tokens after a recovery&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Failure rate per workflow&lt;/strong>&lt;/td>
&lt;td>how often the problem occurs&lt;/td>
&lt;td>failed executions / total&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Cost per complete execution&lt;/strong>&lt;/td>
&lt;td>the business figure&lt;/td>
&lt;td>sum of tokens × cost/token per run&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The last one closes the circle with cost per token: not just &amp;ldquo;how much a token costs&amp;rdquo;, but &amp;ldquo;how
much an &lt;strong>agent execution&lt;/strong> costs, and how much of that was useful work versus waste&amp;rdquo;. Without
these KPIs the second vector is invisible, and what is invisible does not get optimised, it gets
cancelled when the bill surprises you. With them, the cost of every execution is a real-time
figure, and the decision to make each workflow durable (or not) is taken with numbers.&lt;/p>
&lt;hr>
&lt;h2 id="limits-and-traps-data-driven">Limits and traps (data-driven)&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>Durability is not free.&lt;/strong> 5-20 % overhead; on SaaS with per-step pricing it can run away.
Self-host Temporal to remove that price.&lt;/li>
&lt;li>&lt;strong>Not every agent needs it.&lt;/strong> A single-step, stateless task gains nothing from durable
execution; the value is in the &lt;strong>long sequences&lt;/strong> that fail halfway through.&lt;/li>
&lt;li>&lt;strong>Bounded retries can hide real failures.&lt;/strong> A retry limit avoids the cost spiral, but you have
to &lt;strong>alert&lt;/strong> when it is exhausted, not swallow the failure in silence.&lt;/li>
&lt;li>&lt;strong>Checkpoint = security surface.&lt;/strong> Persisting state opens the door to rollback attacks
(ACRFence); protect it.&lt;/li>
&lt;li>&lt;strong>The first vector still exists.&lt;/strong> Temporal does not lower the inference cost; you need local
vLLM for that. They are complementary, not substitutes.&lt;/li>
&lt;/ol>
&lt;p>The conclusion the data and the papers support: the cost of agentic AI has &lt;strong>two vectors&lt;/strong>, and the
industry has obsessed over the first (inference) while ignoring the second (faulty execution),
which is precisely where Gartner locates the cause of 40 % of cancellations. &lt;strong>FastMCP + vLLM&lt;/strong>
solves the first; &lt;strong>Temporal&lt;/strong> the second. A sovereign and sustainable agent platform needs to
attack both, with observability that turns the cost of each execution into a real-time figure
rather than an autopsy.&lt;/p>
&lt;h2 id="closing">Closing&lt;/h2>
&lt;p>The dominant narrative about agent cost is half-lame: it treats the inference cost as if it were
the only one, when it is only the one you see in the demo. The one that kills projects, the one
Gartner files under &amp;ldquo;rising costs&amp;rdquo; inside its 40 % of cancellations, is the &lt;strong>cost of faulty
execution&lt;/strong>: failures charged twice, retries with no ceiling and the context rebuilt on every
recovery. The engineering that attacks it is not a prompt trick or a better model, it is an
&lt;strong>execution model&lt;/strong>: durable execution, which checkpoints every step, bounds every retry and passes
only the necessary context. Temporal, open source and self-hosted, does this while keeping state in
your cluster, and combined with vLLM (model) and FastMCP (tools) it composes a &lt;strong>fully sovereign&lt;/strong>
agent stack where both cost vectors are bounded and the data never leaves the EU. The state of the
art and the papers confirm the problem is real and characterisable: the reliability-cost trade-off,
rate limiting as the worst failure, checkpoint-restore as a new security surface. For anyone who
wants to be in the 60 % of agentic projects that are &lt;strong>not&lt;/strong> cancelled, the recipe is the one in
this article: solve both vectors, not one, and measure the second as seriously as the first.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>Gartner · más del 40 % de proyectos de IA agéntica cancelados antes de 2027 — &lt;a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027">https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027&lt;/a>&lt;/li>
&lt;li>Temporal · durable execution — &lt;a href="https://temporal.io/">https://temporal.io/&lt;/a>&lt;/li>
&lt;li>CallSphere · Temporal para workflows de agentes (Event History, replay) — &lt;a href="https://callsphere.ai/blog/temporal-ai-agent-workflows-durable-execution-workflow-as-code">https://callsphere.ai/blog/temporal-ai-agent-workflows-durable-execution-workflow-as-code&lt;/a>&lt;/li>
&lt;li>Inngest · durable execution, clave para agentes en producción — &lt;a href="https://www.inngest.com/blog/durable-execution-key-to-harnessing-ai-agents">https://www.inngest.com/blog/durable-execution-key-to-harnessing-ai-agents&lt;/a>&lt;/li>
&lt;li>render.com · plataformas de workflow durables para agentes/LLM (overhead, precio por paso) — &lt;a href="https://render.com/articles/durable-workflow-platforms-ai-agents-llm-workloads">https://render.com/articles/durable-workflow-platforms-ai-agents-llm-workloads&lt;/a>&lt;/li>
&lt;li>ReliabilityBench (arXiv 2601.06112) — &lt;a href="https://arxiv.org/abs/2601.06112">https://arxiv.org/abs/2601.06112&lt;/a>&lt;/li>
&lt;li>Cost-Efficient LLM Agents (arXiv 2603.01548) — &lt;a href="https://arxiv.org/pdf/2603.01548">https://arxiv.org/pdf/2603.01548&lt;/a>&lt;/li>
&lt;li>Byzantine Fault Tolerance multi-agente (arXiv 2511.10400) — &lt;a href="https://arxiv.org/abs/2511.10400">https://arxiv.org/abs/2511.10400&lt;/a>&lt;/li>
&lt;li>ACRFence · checkpoint-restore de agentes (arXiv 2603.20625) — &lt;a href="https://arxiv.org/pdf/2603.20625">https://arxiv.org/pdf/2603.20625&lt;/a>&lt;/li>
&lt;li>The Six Sigma Agent (arXiv 2601.22290) — &lt;a href="https://arxiv.org/html/2601.22290">https://arxiv.org/html/2601.22290&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>