Writing
Notes on AI, agents, web technologies, and building with LLMs
Technical articles on building with LLMs: agents and agent harnesses, MCP, evaluation, and the web technologies underneath. Worked examples with code, written for working developers.
Start here
Four pieces that say what I think about building with agents, in the order I would hand them to an engineering lead.
- Build Your Own Agent HarnessWhat an agent harness is, how you build one, and why it is where the work now lives. I start from a bare loop, break it on real tasks, and walk the five places every harness ends up reaching for.Interactive
- What is agentic AI? A working definition for 2026A direct definition of agentic AI, what's actually shipping in production today, what isn't, and the five things worth building first. With specifics, citations, and an honest list of what doesn't work yet.
- MCP, WebMCP, A2A and ARDFour protocols cover almost everything an agent needs to reach: a tool, a web page, another agent, and a catalogue of what exists. MCP and WebMCP are separate specifications by different authors. ARD is four months old and indexes the other three. Here's what each one is and who's on each end of the wire.
- The agent said it was in stockAgents keep giving me confident, wrong answers about the real world. WebMCP fixes half of that problem; discovery is still wide open.
245 articles · Page 1 of 25
Filter by tag
- All articles
- A2A
- ADK
- AGENTS.md
- AI
- AI Agents
- AI Strategy
- API
- AX
- AXI
- Agent Experience
- Agent Skills
- Agentic AI
- Agents
- Angular
- AngularJS
- Architecture
- Automation
- Bash
- Browser APIs
- C2PA
- CLI
- CSharp
- Cloudinary
- Community
- Conference
- Content Credentials
- Core Web Vitals
- DevFest
- DevRel
- Developer Tools
- Docker
- Embeddings
- Enablement
- Engineering
- FDE
- Firebase
- Frontend
- Function Calling
- Games
- Gemini
- Ghost
- Google ADK
- Google chrome
- GraphQL
- Harness Engineering
- Image Formats
- Image Optimisation
- Jamstack
- JavaScript
- LLM
- Large Language Models
- Learn To Code
- Local-first
- Loop Engineering
- MCP
- MCP Apps
- MEAN
- Machine Learning
- Memory
- MongoDB
- MySQL
- NLP
- Next.js
- NoSQL
- Node.js
- Open Source
- PHP
- Performance
- Polymer
- Product Strategy
- Production AI
- Progressive Web App
- Progressive Web Apps
- Protocols
- Provenance
- RAG
- React
- Recruitment
- Review
- RxJS
- SQLite
- Security
- Serverless
- Service Worker
- Sponsored
- SynthID
- Taipei
- Thought Leadership
- Tool Use
- Tooling
- Transformers.js
- TypeSafe
- TypeScript
- VMware
- Veo
- Vercel AI SDK
- Verification
- Vue.js
- Web
- Web Assembly
- Web Development
- Web Performance
- WebMCP
- this || that
Jev, the model that can't write
Jev is a model that cannot generate a single word of text. It picks from options you give it and returns a probability for each, dozens of questions per call, in a few hundred milliseconds. To see what that's good for I gave it a gamebook to referee: you type anything, Jev decides what you meant, whether it would work, and what it says about you.
MCP, WebMCP, A2A and ARD
Four protocols cover almost everything an agent needs to reach: a tool, a web page, another agent, and a catalogue of what exists. MCP and WebMCP are separate specifications by different authors. ARD is four months old and indexes the other three. Here's what each one is and who's on each end of the wire.
Musubi: a history of everything you asked
I have thousands of conversations with AI tools scattered across four applications. Musubi reads all of them, distils them, and hands the result back to any agent over MCP, with nothing ever leaving the machine.
Stop asking the model to remember arithmetic
Most of what is in my skill files should not be there. A skill is knowledge the model needs while it works; a check is a fact about whether the output came out right. Almost everything I had written into skill files was the second kind wearing the clothes of the first.
When to write an agent skill
Vercel ran an eval where installed skills scored exactly the same as no documentation at all, because the agent never opened them in 56% of cases. A flat docs index in AGENTS.md scored 100% on the same suite. The useful reading of that result is about which of two jobs you're doing: putting a fact in front of the model, or getting a sequence carried out the same way every time.
Routing a prompt between Gemini Nano and the cloud
Chrome and Edge both ship a language model, and the AI SDK makes swapping one for a cloud model a one-line change. The interesting part is the router that decides which one runs, and every constant in it comes from a measurement.
MCP's Progressive Tool Discovery
Progressive tool discovery is usually sold on prompt caching. Keep the tools array fixed, the argument goes, and the cached prefix survives. I ran 72 benchmarks across gemini-3.5, 3.6 and 3.7 Flash at 14, 42, 84 and 280 tools. The fixed prefix cached in exactly zero of 36 runs, the pattern it argues against cached up to 93%, and the point where the pattern starts paying moved down to about 20 tools on the newest model.
Stateless MCP servers
The MCP server most tutorials ship, mine included, opens with a session handshake: initialize, get back an Mcp-Session-Id, carry it on every request, hold a live transport per client on the server. A stateless server drops all of it. Each request stands alone, any copy of the server can answer it, and the July 2026 spec makes that the only model there is. Here are both servers side by side, compared on the wire.
The agent said it was in stock
Agents keep giving me confident, wrong answers about the real world. WebMCP fixes half of that problem; discovery is still wide open.
The forward deployed engineer land grab
Four companies committed roughly $9 billion in nine weeks to putting their own engineers inside customer organisations. What a forward deployed engineer actually costs, who really gets one, and the question to ask before you sign anything: what remains when they leave?