cd /news/ai-agents/why-is-your-fast-system-1-ai-still-s… · home topics ai-agents article
[ARTICLE · art-136030] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Why Is Your “Fast” System 1 AI Still Sitting Behind an HTTP Call? (Jev)

A developer has released Glacier.Clavier, an open-source .NET library that runs System 1 decision primitives — Choice, Score, and Noul — as native in-process evaluations instead of HTTP calls to cloud APIs. Benchmarks cited in the project show P50 latency of roughly 140 microseconds versus about 110 milliseconds for a cloud decision API, with zero heap allocations via blittable structs. The author argues that wrapping discrete decisions in TLS, JSON serialization, and gateway round-trips makes remote engines a bottleneck for high-throughput backends and multi-step AI agents.

by read3 min views3 publishedSep 21, 2026

The entire industry spent the last week talking about Jev.

TypeSafe AI correctly diagnosed a fundamental pathology in modern software architecture: we have been renting slow, expensive System 2 generative LLMs to make mundane System 1 decisions. You don’t need an autoregressive 70B parameter model spitting tokens to decide which queue an incident belongs in, whether a SQL query needs human approval, or which tool an agent should run next.

Jev solved the output waste by bounding the problem space to three typed primitives—Choice, Score, and Noul (boolean confidence)—and running them in a single parallel pass without token-by-token generation.

The thesis is spot on. But take a hard look at the telemetry coming out of production:

Why are we celebrating a 200ms round-trip for a discrete decision?

If you operate high-throughput distributed backends, game loops, local agent runtimes, or high-frequency order routers, 200 milliseconds is an eternity.

The moment your "System 1" engine sits behind TLS handshakes, JSON serialization, HTTP headers, and external cloud gateways, you haven't built an intuitive reflex—you’ve built a slightly cheaper remote bottleneck.

What does a real System 1 decision engine look like when it lives where your code actually executes?

When you call an external decision model like Jev over the wire, where does your time actually go?

The compute itself was fast, but the plumbing around it ate 80% of the budget.

If you are coordinating an AI agent that takes 15 discrete tool-choice steps per turn, that’s 3 full seconds of your user staring at a spinner just waiting for routing decisions.

In high-performance .NET systems, we treat allocations and boundaries as first-class constraints. If an operation doesn't mutate memory or generate arbitrary text, it should run:

This was the design motivation behind Glacier.Clavier.

Instead of treating Choice, Score, and Noul as HTTP endpoints, Clavier treats them as native, in-process evaluation primitives backed by low-overhead C# .NET 10 runtimes and unified local memory (such as AMD ROCm / RDNA unified APU memory or bare-metal local compute).

To get sub-millisecond execution, you cannot allow the GC to track intermediate state. Everything sent to and returned from the evaluation engine must be blittable:

// 8-byte blittable decision primitive - zero heap allocation
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public readonly record struct ChoiceDecision(
    byte SelectedIndex,
    Half Confidence,
    Half MarginToSecond
);

When feeding state to the engine, instead of allocating JSON buffers, the engine operates directly over contiguous spans of memory:

ReadOnlySpan<byte> contextState = GetCurrentAgentStateBuffer();
ReadOnlySpan<ChoiceOption> candidateTools = stackalloc ChoiceOption[] 
{
    ToolCatalog.Grep,
    ToolCatalog.FileWrite,
    ToolCatalog.ExecuteSql
};

// Evaluates directly against in-memory tensor weights
ChoiceDecision decision = ClavierEngine.EvaluateChoice(contextState, candidateTools);

if (decision.Confidence > (Half)0.85f)
{
    ExecuteTool(candidateTools[decision.SelectedIndex]);
}
Metric Cloud HTTP Decision API (Jev) Native In-Process Engine (Glavier.Clavier)
P50 Latency ~110 ms ~140 µs
P99 Latency ~450 ms ~280 µs
Heap Allocations Hundreds of KB (JSON payload/response) 0 bytes (blittable structs)
Network Failure Mode Gateway timeouts, retries, rate limits None (deterministic execution)
Cost Per Decision Pay per input million tokens Zero incremental cost

That is a ~1,000x difference in latency.

At 140 microseconds, a System 1 decision can be invoked inside a 60 FPS update loop, inside a live database stream, or 50 times in a single agent step without the user perceiving a single hiccup.

None of this is to say cloud decision models have no place.

If your backend is already an asynchronous serverless workflow routing tier-2 Zendesk tickets or classifying occasional incoming webhooks, an API like Jev is a massive win over a sluggish 8B parameter generative model. It eliminates hallucination, standardizes outputs, and cuts your inference bill dramatically.

But if you are building:

...then an external network hop contradicts the definition of System 1.

Reflexes must be local. They must be memory-efficient. And they shouldn't depend on an internet connection to decide which branch of your code to execute next.

What’s your threshold? If an agent requires 20 routing decisions to solve a task, would you tolerate a 4-second network overhead, or does decision-making belong in the runtime?

Check out the repo and implementation details here: github.com/ian-cowley/Glacier.Clavier

── more in #ai-agents 4 stories · sorted by recency
── more on @glacier.clavier 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/why-is-your-fast-sys…] indexed:0 read:3min 2026-09-21 ·