<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>schristoph.online</title><link>https://schristoph.online/tags/handson/</link><description>Personal homepage and blog of Stefan Christoph</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Stefan Christoph. All rights reserved.</copyright><lastBuildDate>Tue, 14 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://schristoph.online/tags/handson/index.xml" rel="self" type="application/rss+xml"/><item><title>Building Agents That Read the Web Right</title><link>https://schristoph.online/blog/building-agents-that-read-the-web-right/?utm=rss-feed</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://schristoph.online/blog/building-agents-that-read-the-web-right/</guid><description>&lt;h2 id="the-other-side-of-the-coin">The Other Side of the Coin&lt;/h2>
&lt;p>In a recent article, I made my website AI-agent friendly [1], adding llms.txt, Markdown output, and content negotiation to a Hugo site on AWS. That article was about the &lt;em>producer&lt;/em> side: how to serve content that agents can consume efficiently.&lt;/p>
&lt;p>But I left a question unanswered: &lt;strong>what does it look like from the agent&amp;rsquo;s perspective?&lt;/strong>&lt;/p>
&lt;p>In this article, I&amp;rsquo;m building two agents. Same task, same website, same model. The only difference: one reads the web the old way, the other uses the infrastructure I just built. The code is written with the Strands Agents SDK [2], an open-source framework from AWS for building AI agents in Python.&lt;/p></description></item><item><title>Making My Website AI-Agent Friendly — Here's What Changed</title><link>https://schristoph.online/blog/making-website-ai-agent-friendly/?utm=rss-feed</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://schristoph.online/blog/making-website-ai-agent-friendly/</guid><description>&lt;h2 id="the-test-that-failed">The Test That Failed&lt;/h2>
&lt;p>Last weekend, I pointed an AI agent at my own blog and asked it a simple question about an article I&amp;rsquo;d just published, my hands-on experiment with self-reflection on Amazon Bedrock [12]: &lt;em>&amp;ldquo;What scored 3/15 and why?&amp;rdquo;&lt;/em>&lt;/p>
&lt;p>The agent received 29,099 bytes of HTML. After stripping navigation, CSS, scripts, headers, and footers, only about 4,600 characters of actual content remained, 69% of the response was noise. The agent consumed 6,083 input tokens, then gave a confused answer about &amp;ldquo;personal growth.&amp;rdquo; It couldn&amp;rsquo;t find the article content buried in the markup.&lt;/p></description></item><item><title>When Thinking Twice Helps — And When It Doesn't</title><link>https://schristoph.online/blog/when-thinking-twice-helps/?utm=rss-feed</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://schristoph.online/blog/when-thinking-twice-helps/</guid><description>&lt;h2 id="the-saturday-morning-experiment">The Saturday Morning Experiment&lt;/h2>
&lt;p>Last Saturday, I installed a Python library, pointed it at Amazon Bedrock, and asked a model the same questions three times, with zero, one, and three rounds of self-reflection.&lt;/p>
&lt;p>The results surprised me.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"> Q Refl Time Acc Comp Nuan Total
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1 0 3.0s 4 3 3 10
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1 1 5.5s 4 2 3 9
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1 3 8.8s 4 3 4 11
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2 0 2.6s 4 2 2 8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2 1 5.7s 4 2 2 8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2 3 8.5s 4 2 2 8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 3 0 3.1s 1 1 1 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 3 1 5.2s 1 1 1 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 3 3 8.6s 1 1 1 3
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Q is the question number, Refl the number of self-reflection rounds (0 = straight answer, 1 = one revision, 3 = three revisions). Acc, Comp, and Nuan are the judge&amp;rsquo;s scores for Accuracy, Completeness, and Nuance, each on a 1-5 scale, 15 max total.&lt;/p></description></item></channel></rss>