Get Service Mesh Certified with Buoyant.

Enroll now!
close

WebAssembly, Fuzz Testing, and the Agentic Future

Next episode:

Will Prompt Engineering Be the Next Programming Language?

Next
No items found.
No items found.

A conversation with Bailey Hayes at KubeCon

On the AI Kubernetes Show, host William Chia chats with Bailey Hayes, CTO at Cosmonic and At-Large Director for the Byte Code Alliance, to discuss how AI is reshaping platform engineering and software development. They cover her personal AI use, the impact of non-deterministic programming, and the critical role of WebAssembly (Wasm).

Personal AI workflow and agentic workloads

This blog post was generated by AI from the interview transcript, with some editing.

Hayes uses AI in several ways to optimize her personal workflow, including code development and managing her schedule. For coding? Absolutely! Hayes uses Claude Code every day to write code.

Hayes is also building a sandbox for MCP and agentic workloads and agents to optimize her personal life. One agent joins Zoom automatically because if it doesn't, well, she forgets to join her calls. Haven't we all been there? The agent runs locally in a WebAssembly sandbox. Written in TypeScript and compiled to a .wasm file, Hayes runs her agent using the command line tool WASH, the WebAssembly shell.

To create her Zoom-joining agent, Hayes made her own Model Context Protocol (MCP) server. She said it was fairly easy. Anyone can use the template and wizard she created on https://sandboxmcp.ai, which, of course, is also in WebAssembly. For anyone wanting to write their own MCP server, she recommends starting with working code written by a human, rather than vibe coding your MCP server and then iterating. It's much easier to start with something that actually works and improve it.

The shift to non-deterministic programming

LLMs’ nondeterministic inputs and outputs challenge the traditional engineering mindset, which is typically focused on solid inputs and outputs. This leads to two major process shifts engineers need to adopt.

(1) API fuzz testing: If engineers don't API fuzz test all of their APIs now, their customers and certain LLMs will, and that won't end well. The best way to start fuzz testing is by generating test inputs from an LLM. You'll need to provide the technical specs for building out continuous integration, pausing and automatically generating different types of inputs for your request and response bodies that are almost right, but not quite.

(2) AI-native API design: LLM hallucinations can be a great code smell for improving your API. Hallucinations often indicate that the API should have been structured that way, pushing us to better design our APIs and make them more AI-native: more intent-driven and designed around natural language with strong descriptions. Non-deterministic outputs represent a great opportunity to learn whether the API design should be changed.

WebAssembly: The ideal sandbox for AI at scale

According to Hayes, WebAssembly is the perfect AI solution and a key tool adopted by platform engineering teams today. Here's why.

Scale and isolation: Wasm provides a sandbox that allows for efficient, multi-tenanted, and isolated bin packing. You can literally run thousands of agents and thousands of MCP servers on the same runtime, at scale, extremely efficiently, and all sandboxed. 

Security (least privilege): Unlike conventional containers that may include shells or file systems, a Wasm bytecode execution only has access to a specific set of host capabilities that are wired together into the .wasm file. Hayes’ Zoom agent, for example, only needs to make an outgoing HTTP request. "I don't give shell access. I don't give file system access. I lock that thing down, just making HTTP outgoing requests."

Observability: Using a container that runs Wasm Cloud allows for existing tools like Linkerd's MCP observability layer to directly mesh with the container, providing good observability of what your MCP servers are doing at the HTTP layer 7.

The future of Wasm: Concurrency and WASI P3

Hayes was particularly excited to share some upcoming Byte Code Alliance developments, including the WASI P3 Standard. The next major release of the standard, called WASI P3 (WebAssembly systems interfaces), is aimed for release soon.

We can also look forward to a composable concurrence of the WebAssembly, allowing two Wasm sandboxes written in two entirely different languages to be composed together and pass a resource stream over that pipe with zero copies.

Lastly, the new standard will feature native language bindings to concurrency primitives that lower the level of the WebAssembly runtime layer. This will translate into better support for Python (critical for AI), Golang (Go routine support), and C#.NET. In short, lots to look forward to in the Wasm world! 

CTO-to-CTO advice on AI adoption

When asked for CTO-to-CTO advice, Hayes provided two recommendations for organizations adopting AI and prioritizing the deluge of tools and technologies:

  1. Have a golden template with your pre-solved authentication and authorization, to do it the right and secure way. That allows your developers to "vibe code their way around" a set of foundational principles that must be correct. Don't let the AI mess with that layer!
  2. Remember that you are still solving the same fundamental compute problems, just at a much larger scale. You need to solve for scale and security, and the best way to do that is to sandbox your AI. 

Stay in touch with Bailey

To catch up with the work Bailey Hayes is doing, she recommends connecting through the following channels:

  • CNCF wasmCloud Slack: A community with "over 500 active WebAssembly engineers."
  • Zulip for the Byte Code Alliance Foundation: For those working on the guest toolchain (the tools that allow Wasm to run on arbitrary platforms)
  • https://hachyderm.io/@ricochetcode
  • https://x.com/baihay
  • @bailey-hayes.bsky.social
  • https://github.com/ricochet
  • https://www.linkedin.com/in/baileyhayes/

FAQs

How is AI impacting platform engineering and software development?

The introduction of new concepts like agentic workloads, is reshaping platform engineering. These workloads are best run in a secure, isolated WebAssembly (Wasm) sandbox. It also calls for two major process shifts for engineers: API fuzz testing for non-deterministic inputs/outputs, and designing AI-native APIs that are more intent-driven and descriptive.

Why is WebAssembly (Wasm) considered the ideal sandbox for AI at scale?

Wasm is an ideal solution for AI for three main reasons:

  • Scale and isolation: Wasm provides a sandbox for efficient, multi-tenanted bin packing, allowing for thousands of agents and MCP servers to run on the same runtime securely.
  • Security (least privilege): Unlike conventional containers, Wasm bytecode execution only has access to a specific, minimal set of host capabilities, like only allowing an outgoing HTTP request and denying shell or file system access.
  • Observability: Wasm Cloud allows existing tools, such as Linkerd's MCP observability layer, to directly mesh with the container for good observability at the HTTP layer 7.

What good advice for organizations adopting AI?

Hayes offers two key recommendations for organizations adopting AI: Golden Template: Establish a golden template with pre-solved, secure authentication and authorization to create a set of foundational principles that AI should not be allowed to "mess with."

Focus on Fundamentals: Remember that you are still solving the same fundamental compute problems (scale and security), just at a much larger scale, and the best way to handle this is to sandbox your AI.

What major developments are coming for WebAssembly?

The next major release of the standardized interfaces, called WASI P3, is aimed for release soon. Key features include:

  • Composable Concurrence: Allows two Wasm sandboxes written in different languages to be composed together and pass a resource stream with zero copies.
  • Native Language Bindings: Provides better support for concurrency primitives in languages critical for AI, such as Python, Golang (Go routine support), and C#.NET.

Get started with Buoyant
Enterprise for Linkerd

Download and install the world's most advanced service
mesh on any Kubernetes cluster in minutes