<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AI from first principles</title><link>https://piotrgoral.github.io/</link><description>Recent content on AI from first principles</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 13 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://piotrgoral.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>I Studied 10 Harnesses. Here’s What I Found.</title><link>https://piotrgoral.github.io/posts/what-is-a-harness/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://piotrgoral.github.io/posts/what-is-a-harness/</guid><description>&lt;h2 id="in-short"&gt;In short&lt;/h2&gt;
&lt;p&gt;I hear the word &amp;ldquo;harness&amp;rdquo; several times a day, and it seems to mean something different each time. After a while, it gets overwhelming. What belongs where? How do you compare harnesses? And where do you start if you want to build one?&lt;/p&gt;
&lt;p&gt;So I went through research papers, blog posts, books, and podcasts to understand how each source defines a harness (chapter 2). Then I proposed my own framework: prompt, context, LLM agent, and a deliberately narrow harness core: environment, turn lifecycle, and verification (chapter 3). Once that core is in place, the framework can be extended with cross-session memory, interfaces, and observability (chapter 4).&lt;/p&gt;</description></item></channel></rss>