<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Todd Schiller - agents</title><link href="https://toddschiller.com/" rel="alternate"></link><link href="https://toddschiller.com/feeds/tag/agents.atom.xml" rel="self"></link><id>https://toddschiller.com/</id><updated>2026-08-12T00:00:00-04:00</updated><subtitle>Human ✘ Artificial Intelligence</subtitle><entry><title>Agentic Software Factories: Parallel agents diverge. Plan to converge.</title><link href="https://toddschiller.com/blog/parallel-agents-diverge-converge.html" rel="alternate"></link><published>2026-08-12T00:00:00-04:00</published><updated>2026-08-12T00:00:00-04:00</updated><author><name>Todd Schiller</name></author><id>tag:toddschiller.com,2026-08-12:/blog/parallel-agents-diverge-converge.html</id><summary type="html">Running coding agents in parallel is closer to a team of different developers than one developer multitasking, so plan a deliberate converge phase after the diverge phase.</summary><content type="html">&lt;p&gt;Running coding agents in parallel is less like one developer juggling features
and more like a team of different developers building at the same time
independently.&lt;/p&gt;
&lt;p&gt;Even when the agents share the same system prompt and the same skills, they
diverge fast. LLMs are stochastic, and the divergence compounds with every
decision.&lt;/p&gt;
&lt;p&gt;Spec-Driven Development and Domain-Driven Design help. They give each agent a
global view of what the others are doing and a shared, ubiquitous language. But
in practice, compounding drift erodes coherence fast.&lt;/p&gt;
&lt;p&gt;The only way to keep your codebase sane is to plan deliberate converge phases.&lt;/p&gt;
&lt;p&gt;Here are my tips for diverge-converge:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Put new features behind a feature flag so agents can iterate on the
intermediate result cleanly&lt;/li&gt;
&lt;li&gt;Define protocols and interfaces first to contain where drift can happen&lt;/li&gt;
&lt;li&gt;Use static analysis and linters to bound architectural and stylistic drift&lt;/li&gt;
&lt;li&gt;Use a skill to update your specs and ubiquitous language based on the gaps the
diverge phase exposed&lt;/li&gt;
&lt;li&gt;Use a skill to identify and prioritize the tech debt the diverge phase
introduced&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What's your approach to building features in parallel with coding agents?&lt;/p&gt;
&lt;!-- markdownlint-disable MD013 --&gt;
&lt;figure&gt;
  &lt;img loading="lazy" decoding="async" src="https://toddschiller.com/assets/images/parallel-agents-diverge-converge/parallel-agents-diverge-converge-landscape-2400.png" alt="Whiteboard-style diagram titled Parallel agents drift, plan to converge. From a single Shared start node (same prompt, specs, skills), three colored paths labeled agent 1, agent 2, and agent 3 fan outward through a pink Diverge zone where drift compounds with every decision, reach their widest spread, then are pulled back together through a green Converge zone into one Coherent result node. A footer reads: converge with feature flags, interfaces first, linters, and a spec and debt refresh."&gt;
  &lt;figcaption&gt;Parallel coding agents fan out during the diverge phase, then a deliberate converge phase pulls them back into a coherent result.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;!-- markdownlint-enable MD013 --&gt;
</content><category term="AI"></category><category term="AI"></category><category term="agents"></category><category term="coding agents"></category><category term="spec-driven development"></category><category term="domain-driven design"></category><category term="parallelism"></category></entry><entry><title>Loop Engineering: always be compounding</title><link href="https://toddschiller.com/blog/loop-engineering-compounding.html" rel="alternate"></link><published>2026-07-07T00:00:00-04:00</published><updated>2026-07-07T00:00:00-04:00</updated><author><name>Todd Schiller</name></author><id>tag:toddschiller.com,2026-07-07:/blog/loop-engineering-compounding.html</id><summary type="html">Loop engineering for AI agents should raise the floor on each iteration by creating tools and correcting instructions.</summary><content type="html">&lt;p&gt;Loop engineering for AI agents should be about compounding, not repetition.&lt;/p&gt;
&lt;p&gt;A weak work loop does the same thing every pass: trigger, execute, review.&lt;/p&gt;
&lt;p&gt;A strong work loop leaves the system better than it found it.&lt;/p&gt;
&lt;p&gt;Sure, many harnesses now automatically improve via agent memory. However, that's
leaving your work to chance: memory creation is inconsistent, and false
memories degrade performance.&lt;/p&gt;
&lt;p&gt;The better way is to edit the loop itself:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills/Instructions: conventions, assumptions, examples, failure modes&lt;/li&gt;
&lt;li&gt;Tools: scripts, workflows, fixtures, test harnesses&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With each run, the loop becomes more capable, more reliable, and more
cost-effective.&lt;/p&gt;
&lt;p&gt;What are your go-to strategies for compounding?&lt;/p&gt;
&lt;!-- markdownlint-disable MD013 --&gt;
&lt;img loading="lazy" decoding="async" src="https://toddschiller.com/assets/images/loop-engineering-compounding/loop-engineering-compounding-landscape-ai-whiteboard-2400.png" alt="Whiteboard-style diagram titled Agent loops should compound. The left panel shows a repeating routine that starts from the same place each time: Trigger, Execute, Review. The right panel shows a compounding routine where loop 1, loop 2, and loop 3 climb upward on a system-improves axis, with orange step-up arrows labeled Refine and gains labeled Task done, plus instruction, and plus tool."&gt;
&lt;!-- markdownlint-enable MD013 --&gt;
</content><category term="AI"></category><category term="AI"></category><category term="agents"></category><category term="loop engineering"></category><category term="tools"></category><category term="instructions"></category></entry><entry><title>agent-browser-shield is live on Product Hunt</title><link href="https://toddschiller.com/blog/agent-browser-shield-product-hunt.html" rel="alternate"></link><published>2026-06-05T00:00:00-04:00</published><updated>2026-06-05T00:00:00-04:00</updated><author><name>Todd Schiller</name></author><id>tag:toddschiller.com,2026-06-05:/blog/agent-browser-shield-product-hunt.html</id><summary type="html">agent-browser-shield, a source-available defense layer for AI agents in the browser, is on Product Hunt today.</summary><content type="html">&lt;p&gt;agent-browser-shield is live on Product Hunt today.&lt;/p&gt;
&lt;p&gt;Your AI agent that lands on a fresh page is one prompt injection away from
leaking credentials, one dark pattern away from buying the wrong thing, and
one fake review away from a bad recommendation.&lt;/p&gt;
&lt;p&gt;agent-browser-shield sits between the browser and the agent and blocks all
three. Source-available. Ships as a Chrome extension and an OpenClaw skill.&lt;/p&gt;
&lt;p&gt;If you've been following the build, today's the day to upvote:&lt;/p&gt;
&lt;p&gt;👉 &lt;a href="https://producthunt.com/products/agent-browser-shield"&gt;https://producthunt.com/products/agent-browser-shield&lt;/a&gt;&lt;/p&gt;
</content><category term="AI"></category><category term="AI"></category><category term="agents"></category><category term="browser security"></category><category term="prompt injection"></category><category term="PixieBrix"></category><category term="Product Hunt"></category></entry><entry><title>agent-browser-shield June 3 update: 14 new rules and the Chrome Web Store listing</title><link href="https://toddschiller.com/blog/agent-browser-shield-june-03-update.html" rel="alternate"></link><published>2026-06-03T00:00:00-04:00</published><updated>2026-06-03T00:00:00-04:00</updated><author><name>Todd Schiller</name></author><id>tag:toddschiller.com,2026-06-03:/blog/agent-browser-shield-june-03-update.html</id><summary type="html">14 new rules shipped in agent-browser-shield, now installable from the Chrome Web Store, and using it for daily driving.</summary><content type="html">&lt;p&gt;Two days after the alpha announcement, agent-browser-shield has a Chrome Web
Store listing and 14 new protection rules.&lt;/p&gt;
&lt;h2&gt;Install from the Chrome Web Store&lt;/h2&gt;
&lt;p&gt;The extension is live at
&lt;a href="https://chromewebstore.google.com/detail/agent-browser-shield/gnejacdioaelglahihpagpfjpddpnamd"&gt;chromewebstore.google.com/detail/agent-browser-shield&lt;/a&gt;.
One click instead of unpacked-from-source. The prebuilt ZIP and source-build
paths stay for Browserbase and other runtimes that need an unpacked
extension.&lt;/p&gt;
&lt;h2&gt;New rules: handling prompt injection and context pollution in invisible surfaces&lt;/h2&gt;
&lt;p&gt;A browser-use agent reads surfaces a sighted user never looks at. The new
rules close them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;noscript&amp;gt;&lt;/code&gt; blocks (never rendered with JS on, but agents walk them)&lt;/li&gt;
&lt;li&gt;Poisoned &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; description and &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; (the compact &amp;quot;what is this
page&amp;quot; answer many agents pull first)&lt;/li&gt;
&lt;li&gt;JSON-LD &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; blocks (cited as the &amp;quot;trusted summary&amp;quot; of a page)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aria-label&lt;/code&gt;, &lt;code&gt;alt&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;placeholder&lt;/code&gt;, and SVG &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;desc&amp;gt;&lt;/code&gt;
/ &lt;code&gt;&amp;lt;text&amp;gt;&lt;/code&gt; (a11y-tree carriers)&lt;/li&gt;
&lt;li&gt;Unicode tag characters, bidi overrides, and zero-width payloads&lt;/li&gt;
&lt;li&gt;Long base64 / hex / percent-encoded blobs (the &amp;quot;decode this and follow
it&amp;quot; pattern)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New rules: trust laundering&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;link-spoof-annotate&lt;/code&gt; flags Cyrillic homoglyphs and anchors whose visible
text doesn't match the href apex. &lt;code&gt;disguised-ad-flag&lt;/code&gt; collapses native
advertorials (Sponsored / Paid Post) that share DOM shape with editorial.
&lt;code&gt;trust-badge-annotate&lt;/code&gt; and &lt;code&gt;schema-trust-sanitize&lt;/code&gt; ship off by default
while we assess their false-positive rates.&lt;/p&gt;
&lt;h2&gt;The daily-driver surprise&lt;/h2&gt;
&lt;p&gt;I've started running it on my own daily-driver browser, not just agent runs.
There have been some funny quirks (e.g., flagging GitHub issue links with &amp;quot;.md&amp;quot;
in the link text as suspicious and hiding the GitHub issue template modal).
However, overall it's been a positive on my browsing experience. So, we'll be
experimenting with making more annotations visible to humans and
multi-modal LLMs.&lt;/p&gt;
&lt;p&gt;⭐ &lt;a href="https://github.com/pixiebrix/agent-browser-shield"&gt;https://github.com/pixiebrix/agent-browser-shield&lt;/a&gt;&lt;/p&gt;
</content><category term="AI"></category><category term="AI"></category><category term="agents"></category><category term="browser security"></category><category term="prompt injection"></category><category term="dark patterns"></category><category term="PixieBrix"></category></entry><entry><title>Introducing agent-browser-shield (alpha): keeping AI agents safe in the browser</title><link href="https://toddschiller.com/blog/agent-browser-shield-alpha.html" rel="alternate"></link><published>2026-06-01T00:00:00-04:00</published><updated>2026-06-01T00:00:00-04:00</updated><author><name>Todd Schiller</name></author><id>tag:toddschiller.com,2026-06-01:/blog/agent-browser-shield-alpha.html</id><summary type="html">Announcing the alpha of agent-browser-shield — a source-available defense layer (also available as an OpenClaw skill) that blocks prompt injection and dark patterns before they reach your agent.</summary><content type="html">&lt;p&gt;There are 6 billion internet users. With AI agents, we're quickly heading to
60 to 600 billion &amp;quot;users&amp;quot; of the web.&lt;/p&gt;
&lt;p&gt;How do we keep all those agents safe when they touch the browser?&lt;/p&gt;
&lt;p&gt;At PixieBrix, we've spent years protecting BPO contact centers from insider
risk, fraud, and social engineering in the browser.&lt;/p&gt;
&lt;p&gt;Today, we're applying that defense to AI agents and making a free,
source-available, browser extension available (on GitHub and ClawHub).&lt;/p&gt;
&lt;p&gt;Your AI agent that lands on a fresh page is one prompt injection away from
leaking credentials, one dark pattern away from buying the wrong thing, and
one fake review away from a bad recommendation.&lt;/p&gt;
&lt;p&gt;Agent Browser Shield sits between the browser and the agent. It blocks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prompt injection: visible or hidden instructions in page content&lt;/li&gt;
&lt;li&gt;Dark patterns: manipulative UI designed to trick/coerce&lt;/li&gt;
&lt;li&gt;Context pollution: low-value context that impairs instruction following&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A useful side effect: stripping irrelevant content also cuts token burn.&lt;/p&gt;
&lt;p&gt;Come join us on our mission. File issues, send PRs, or just tell me what you
hate/love!&lt;/p&gt;
&lt;p&gt;The threat surface for agentic browsing is evolving fast. Let's defend our AI
assistants together!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;⭐ Star the GitHub repo: &lt;a href="https://github.com/pixiebrix/agent-browser-shield"&gt;https://github.com/pixiebrix/agent-browser-shield&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🦞 Star the OpenClaw skill: &lt;a href="https://clawhub.ai/pixiebrix/agent-browser-shield"&gt;https://clawhub.ai/pixiebrix/agent-browser-shield&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="/assets/images/agent-browser-shield-alpha/demo.webp" alt="Side-by-side demo: an unprotected agent vs. one shielded by agent-browser-shield" loading="lazy" decoding="async" /&gt;&lt;/p&gt;
</content><category term="AI"></category><category term="AI"></category><category term="agents"></category><category term="browser security"></category><category term="prompt injection"></category><category term="PixieBrix"></category><category term="OpenClaw"></category></entry></feed>