<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Alex Herrero</title><link>https://alexherrero.dev/</link><description>Recent content on Alex Herrero</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 24 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://alexherrero.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Becoming the assistant</title><link>https://alexherrero.dev/thoughts/becoming-the-assistant/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/becoming-the-assistant/</guid><description>Agent M started as something I installed in a repo, and it kept growing, so it&amp;rsquo;s moving to the host level and &amp;hellip; slowly &amp;hellip; becoming the assistant I had in mind when I started.</description></item><item><title>The agent couldn't click Allow</title><link>https://alexherrero.dev/thoughts/the-agent-couldnt-click-allow/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/the-agent-couldnt-click-allow/</guid><description>&lt;p&gt;The other day I started to notice a pattern. My coding sessions kept getting stuck. No obvious errors, just stuck. I&amp;rsquo;d leave my coding session going when I went out for the day, I&amp;rsquo;d turn on remote mode, and I&amp;rsquo;d see that it would get stuck and misbehave in some way or not be able to do what I was asking. It was really weird. After a few days trying various fixes, like splitting the jobs into smaller chunks, I put two and two together: whenever this would happen, I&amp;rsquo;d come home and find my Mac prompting me to allow Claude access to a folder. And then it clicked&amp;hellip; somehow Claude needed access and then wasn&amp;rsquo;t able to do what it had planned, and my session would start misbehaving. What was happening? The first thing any session does as part of Agent M is read its memory vault (a local storage directory). That folder needed permission. When I&amp;rsquo;m there, I click Allow without thinking about it. But a lot of the time I wasn&amp;rsquo;t there. Granting broader folder access made the prompts go away, not a perfect solution, but better. So today I learned that when something gets stuck for days, it&amp;rsquo;s worth asking what it was waiting for.&lt;/p&gt;</description></item><item><title>Google Drive sync has no undo</title><link>https://alexherrero.dev/thoughts/google-drive-no-undo/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/google-drive-no-undo/</guid><description>&lt;p&gt;When I first built Agent M, some research led me to host my Agent Memory Vault in a Google-Drive-synced folder. It was a simple and effective way to make the vault accessible across devices — and, with some work, even reachable from Claude and Gemini on the web. Over time, though, this decision has come back to bite me a few times. Drive has no version history, just a trash bin. I recently had an overwrite I couldn&amp;rsquo;t walk back, and the odd sync-conflict file left behind after two machines wrote at once. And because I also use Obsidian to work in the vault, I had to do some gymnastics to keep Drive from syncing its index. So today I learned that &amp;ldquo;it syncs&amp;rdquo; is not &amp;ldquo;it&amp;rsquo;s backed up&amp;rdquo; — and I made plans to move the memory under git, to finally get history, diffs, and an undo.&lt;/p&gt;</description></item><item><title>Running Agent M all day</title><link>https://alexherrero.dev/thoughts/running-agent-m-all-day/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/running-agent-m-all-day/</guid><description>Running an agent all day used to mean hitting the usage ceiling by mid-afternoon. Here&amp;rsquo;s how I cut a heavy day ~90% and made Agent M cheap enough to just leave running.</description></item><item><title>The multi-surface wall</title><link>https://alexherrero.dev/thoughts/the-multi-surface-wall/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/the-multi-surface-wall/</guid><description>&lt;p&gt;The dream for Agent M is one agent everywhere — same personality, same memory, same workflows, whatever tool I happen to be in. In practice I get most of the way there: it runs the same across Claude Code and Antigravity, and can read its memory from a couple of other surfaces. But it&amp;rsquo;s not there yet. Chat-only assistants can&amp;rsquo;t touch live files, so they&amp;rsquo;re out for actual work. And not every tool lets a setup like mine install its own hooks or scheduling — on some, my guardrails can watch but can&amp;rsquo;t act. So today I learned that &amp;ldquo;works everywhere&amp;rdquo; has an asterisk right now: the agent travels, but the surfaces underneath are uneven, and the portable, do-anything agent is getting closer, but probably still a harness generation away.&lt;/p&gt;</description></item><item><title>Building Agent M</title><link>https://alexherrero.dev/thoughts/building-agent-m/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/building-agent-m/</guid><description>I set out to rebuild a trading engine. What I built instead was Agent M — an agent with a durable memory that works across every tool I use.</description></item><item><title>A 1M context window isn't free</title><link>https://alexherrero.dev/thoughts/1m-context-window-isnt-free/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/1m-context-window-isnt-free/</guid><description>&lt;p&gt;So agent harnesses like Claude and Antigravity recently introduced 1M-token context windows, which was great, until I realized that I was torching my token budget. Why? It turned out that the whole context window for the conversation is re-sent on every turn, so a near-full window burns through your usage limit fast. There&amp;rsquo;s a fix though — Claude has a setting to cap the context window back to the standard 200k. That significantly improved my token consumption. So today I learned that more context isn&amp;rsquo;t free — sometimes you want less of it.&lt;/p&gt;</description></item><item><title>Rebuild, not refactor</title><link>https://alexherrero.dev/thoughts/rebuild-not-refactor/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/rebuild-not-refactor/</guid><description>Sherwood came together fast, but it had drifted too much and needed a re-write. Re-writing it was where I realized that I needed to rebuild something else.</description></item><item><title>Don't get too far ahead of the agent</title><link>https://alexherrero.dev/thoughts/too-far-ahead-of-the-agent/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/too-far-ahead-of-the-agent/</guid><description>&lt;p&gt;When I started Sherwood I designed the whole thing up front — including the front-end, before I&amp;rsquo;d built any of the backend. It felt productive. I expected that the agent would just be able to code until it was done, but by the time we got to the front-end, the backend had already drifted from the plan, and I had a pile of drift to reconcile that I should have caught earlier. You hear a lot of the term &amp;lsquo;Human in the Loop&amp;rsquo; posed as a solution for this problem, and it&amp;rsquo;s true that it helps, but this also slows development, and I don&amp;rsquo;t want to be a bottleneck. So today I learned that designing too far ahead is its own kind of drift. A human in the loop catches it, but agents write faster than one person can review, so keeping pace will eventually have to be automated.&lt;/p&gt;</description></item><item><title>Building Sherwood</title><link>https://alexherrero.dev/thoughts/building-sherwood/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/building-sherwood/</guid><description>I started Sherwood to learn how markets work, and it came together fast — fast enough that the drift started getting ahead of me.</description></item><item><title>When my Claude allowance got cut</title><link>https://alexherrero.dev/thoughts/claude-allowance-cut/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/claude-allowance-cut/</guid><description>&lt;p&gt;For a couple of months, I worked almost entirely in Antigravity. I could see all the code as it was being edited in real time alongside plans that I could comment on. The workflow felt like real collaboration. One of the things I liked most was that it supported both Gemini and Claude. I could switch mid-task depending on what I was doing — reach for one model where it was strong, then the other — without leaving my setup. It was a nice way to work. Then the Claude allowance in Antigravity got brought down to a level I couldn&amp;rsquo;t really use, even for ultra subscribers, and the easy switching was gone. That forced me to rethink my whole harness and how I worked. It turned out for the better: I leaned into Claude, and for what I was doing it held up better than I&amp;rsquo;d given it credit for. I still use Antigravity for the things Gemini is good at, but now I follow a &amp;lsquo;best of breed&amp;rsquo; approach. So today I learned that the limit I didn&amp;rsquo;t ask for pushed me to a better setup than I&amp;rsquo;d have chosen on my own.&lt;/p&gt;</description></item><item><title>Green squares</title><link>https://alexherrero.dev/thoughts/green-squares/</link><pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/green-squares/</guid><description>For a few years my GitHub graph was mostly gray — after all, I spent most of my time managing a growing team and stack, not building. Late 2025, the tools started getting really useful, and it was time to try some new things.</description></item><item><title>Before it had a name</title><link>https://alexherrero.dev/thoughts/before-it-had-a-name/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/before-it-had-a-name/</guid><description>How a one-week work demo became a real cross-platform agent — and convinced me agents that act for you were close.</description></item><item><title>Intro -&gt; Next Level</title><link>https://alexherrero.dev/thoughts/up-another-level/</link><pubDate>Tue, 10 Dec 2024 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/thoughts/up-another-level/</guid><description>Six months ago, AI coding let us build an on-device agent — in just a week — that would have taken months. I knew then that software was moving to the next level — today we call it agentic coding. Here&amp;rsquo;s where I decided to write about what that&amp;rsquo;s actually like.</description></item><item><title>About</title><link>https://alexherrero.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/about/</guid><description>&lt;p&gt;I&amp;rsquo;m Alex Herrero — a security-minded engineering leader. By day I lead engineering for AI-driven threat detection at Google Cloud. Off the clock I build the tools this site is about: &lt;strong&gt;Agent M&lt;/strong&gt;, a harness that gives coding agents durable memory and a phase-gated workflow, and &lt;strong&gt;Crickets&lt;/strong&gt;, the safety and verification primitives that ride on top — kill-switches, fresh-context evaluators, guardrails.&lt;/p&gt;
&lt;p&gt;This blog is where I write about the experiments behind those tools: what I&amp;rsquo;m trying to make AI agents &lt;strong&gt;reliable, safe, and genuinely useful&lt;/strong&gt;, and what I learn running them against real work.&lt;/p&gt;</description></item><item><title>Now</title><link>https://alexherrero.dev/now/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alexherrero.dev/now/</guid><description>&lt;p&gt;What I&amp;rsquo;m focused on at the moment (a &lt;a href="https://nownownow.com/about"&gt;/now page&lt;/a&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Building &lt;strong&gt;Agent M&lt;/strong&gt; and &lt;strong&gt;Crickets&lt;/strong&gt; in the open — and writing up the experiments here.&lt;/li&gt;
&lt;li&gt;Sharpening the intersection I care about: making AI agents reliable, safe, and useful, from a security background.&lt;/li&gt;
&lt;li&gt;Reading (and occasionally posting in) the AI-safety corners of the web.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Last updated June 2026.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>