Building Browser-Native AI Runtimes:

A Hands-On Workshop with WebLLM, WASM

a Berlin-based engineering leader focused on distributed systems, serverless architectures, and AI-native applications. I’ve led cross-functional teams at Intel, Delivery Hero, Blacklane, and Würth Cloud Services shipping scalable platforms and shaping long-term technical strategy. My current interests revolve around Rust, WebAssembly, Synthetic Data, and in-browser AI.

Who am I?👋🏼

Where Does the Loop Close?

Portability, Isolation, and the Locality of Intelligence

Feedback is older than AI.

– The Fictional History of Machinic Tools

Thermostat

Measure → Compare → Adjust

 

CI/CD

Deploy → Observe → Roll Back

 

 

Compiler Optimization

Rewrite → Benchmark → Rewrite

 

 

Recommendation Systems

Behavior → Update → Suggest

 

Feedback Loops at their best

Observe → adjust → repeat.

An Agent Is a Loop With Memory

Input

The loop begins with a signal: user input, system state, or environmental data. entering the runtime boundary.

1.

Interpret

The system contextualizes the signal using its current memory and predictive model to construct a meaningful internal representation.

2.

Decide

Based on memory and prediction, the loop selects the next action either deterministic, probabilistic, or a combination of both.

3.

Act

The system executes the action, updates its memory with the outcome, and prepares for the next iteration of the loop.

4.

Where does the loop run today?

– The History of Machinic Tools

1st

Client

2nd

API

3rd

Cloud

5th

LLM

7th

Loop

4th

Tools

6th

Memory

The loop closes remotely today

☁️ Cloud

🖥 Desktop

📱 Mobile

🌍 Edge

🧭 Browser Tab

A loop can run in:

Mozilla AI blueprints → Can the browser be a serious runtime?

wasm-agents blueprint → Pyodide in-browser notebooks

• Built a PoC  wasm-browser-agents-blueprint

 

Thanks Davide from Mozilla.ai ❤️

How I Ended Up Testing This Idea

# Build and run with Docker (Recommended)
docker build -t wasm-browser-agents-app .

# For development with hot-reload
docker run -p 5173:5173 \
  -v $(pwd)/demos:/app/demos \
  -v $(pwd)/src:/app/src \
  wasm-browser-agents-app

Demo 🎉

Loop Component → Browser Primitive

Loop Component Browser Primitive
Memory (short-term) JS Heap
Memory (long-term) IndexedDB
Decision (prediction) WebLLM
Deterministic Logic WebAssembly
Parallel Execution WebWorkers
Tool Access Web APIs
Acceleration WebGPU
Isolation Boundary Workers + WASM sandbox

Isolation is

Structural

Isolation is Structural

Determinism Inside the Loop

If the loop is real, parts of it must be deterministic, too.

Loops Shouldn't Care About Language

– An unwritten book on WASM Agents 

The browser used to host one language

SM made it portable.

Demo 🎉

Conceptual

Reconstruction

Same loop,

different placement.

The Six Taxes of Local Loops

When You Close the Loop Locally, You Inherit New Taxes

Tax #1

Memory

Local loops are bounded by device memory.

Tax #2

Distribution

Portability increases distribution cost.

Tax #3

Variance

Portable loops behave differently on every machine.

Tax #4

Energy

Energy is part of loop economics.

Tax #5

Heat

Feedback exists at the hardware layer too.

Tax #6

Context

Context window defines the visible past of the loop.

Constraints are not reasons to avoid locality entirely. They're the cost of moving closer to the user.

– The History of Machinic Tools

Strategic Placement of Loops

Local Loop

private, low latency

1.🧭📱🖥

Edge Loop

Shared

2.🌍

Cloud Loop

heavy compute

3.☁️

Where Does the Decision Become Real?

Intelligence is not where the model is

It's where the loop closes.

The browser is a serious place for loops to close.

So for agents, too.

Key Takeaways

  • Agents are feedback loops with memory not personalities. 🔁

  • Loop placement matters more than model size. 📍

  • The browser already contains the primitives to host a loop. 🌐

  • Isolation (WebWorkers) enables stability. 🧱

  • Portability (WASM) enables polyglot architectures. 🧳

  • Prediction should be paired with deterministic control. ⚖️

  • Energy, latency, and memory are part of loop economics. ⚡

  • Moving the loop changes privacy, cost, and control. 🔒

Thank you!

Contact me via email or social if you have any questions,always happy to help!

WASMIO/26 - Building Browser-Native AI Runtimes: A Hands-On Workshop with WebLLM, WASM

By Barış Güler

WASMIO/26 - Building Browser-Native AI Runtimes: A Hands-On Workshop with WebLLM, WASM

  • 73