Future-Proof Your Browser:
In-Browser AI Agents

GDGBerlin
Baris Guler, 2026
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, Würth Cloud Services and recently a software architect at Zoi, designing cloud-based distributed systems.
Chairman of (the fictional) Bureau of Tech.
Interested in WebAssembly, browser-native AI, uncompromised agents, and on-demand system facilitation.
Who am I?👋🏼
Feedback Systems Before AI
Portability, Isolation, and the Locality of Intelligence
〞
Feedback is older than AI.
– The Fictional History of Machinic ToolsThermostat
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

Where Does the Loop Close?
Portability, Isolation, and the Locality of Intelligence
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 Tools1st
Client
2nd
API
3rd
Cloud
5th
LLM
7th
Loop
4th
Tools
6th
Memory
The loop closes remotely today
User → Browser → API → Cloud App → LLM API → Tool API → Memory Store → Response
The Default Agent Architecture Today
The browser is mostly treated as a terminal.
But it already has compute, memory, isolation, storage, and acceleration.
☁️ Cloud
🖥 Desktop
📱 Mobile
🌍 Edge
A loop can run in today:
🧭 Browser Tab
• Mozilla AI blueprints → Can the browser be a serious runtime?
How I Ended Up Testing This Idea
• wasm-agents blueprint → Pyodide in-browser notebooks
• Built a PoC → wasm-browser-agents-blueprint
Thanks Davide from Mozilla.ai ❤️

# 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

TLDR;
No application backend.
No inference API.
The browser becomes the runtime boundary.
Loop Component → Browser Primitive
| Agent capability | Browser Primitive |
|---|---|
| Short-term state | JS heap / worker memory |
| Durable memory | IndexedDB / OPFS |
| Model inference | WebLLM / MediaPipe GenAI / remote fallback |
| Deterministic execution | WASM |
| Parallelism | WebWorkers |
| Tool Access | Web APIs |
| Acceleration | WebGPU |
| Isolation Boundary | Worker boundary + WASM sandbox |
| Distribution | Static assets + model cache |
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 the Language
– An unwritten book on WASM Agents The browser used to host one language
SM made it portable.

Conceptual
Reconstruction
Same loop,
different placement.

What Runs Where?
| Part | Local? | Primitive |
|---|---|---|
| Agent control loop | Yes | JS / Python via Pyodide / WASM |
| Deterministic tools | Yes | WASM |
| Parallel execution | Yes | Web Workers |
| Memory cache | Yes | IndexedDB / Cache API |
| LLM inference | Depends | WebLLM / external API / local endpoint |
| UI | Yes | Browser |
Demo 🎉
Local Is Not Magic
Local loops give you: Privacy, Latency, Offline potential, Lower backend cost and User control.
It charges you in: Memory, Distribution, Device variance, Energy, Heat and Context limits.
but
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
Local loops inherit the user’s machine: GPU, RAM, battery, browser, permissions, and patience.


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 ToolsStrategic 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!

GDG Berlin - No Servers, No APIs: AI in the Browser
By Barış Güler
GDG Berlin - No Servers, No APIs: AI in the Browser
- 6