What a harness is and how to build one with Claude Agent SDK
A harness is custom code built around an AI agent to make it more effective for specific workflows. The speaker demonstrates building a Sentry bug-fixing harness using Claude Agent SDK, explaining how structured constraints, opinionated tooling, and custom prompts enable AI agents to solve complex tasks more reliably than general-purpose coding tools.
Summary
The episode demystifies the concept of an AI 'harness,' defining it simply as code wrapped around an AI agent that makes it more useful for specific use cases. A harness consists of three core components: specific context, specific actions the AI can take, and specific desired outcomes. Harnesses are most valuable when workflows are repetitive and combine both deterministic and non-deterministic steps, such as bug fixing, production incident management, PR preparation, or support escalation handling.
The speaker built a Sentry debugging harness for his company ChatParity as a practical example. Rather than using general-purpose tools like Claude Code or Codex directly, the harness provides a more structured approach where users simply paste a Sentry link and the system automatically knows the intent and required workflow. The harness architecture includes a terminal UI frontend, Claude Agent SDK as the core engine, opinionated adapters for external tools (Sentry, Linear, GitHub, Vercel), and an artifact store that saves evidence from each run for future reference.
Key design decisions include making tool integrations highly specific rather than general—the Sentry adapter, for example, pulls only relevant bug-related data rather than exposing the entire API. The harness enforces specific outcomes like documenting fixes in Linear and generating structured reports. Custom prompts are embedded directly in the workflow rather than relying on prompt engineering at runtime, ensuring consistency. The speaker uses Sonnet 3.5 as the model and built a custom interface (TUI) to interact with the agent, though harnesses can take many forms: CLIs, web apps, or other interfaces.
The speaker notes that building this harness required iterative prompting even with advanced models—both GPT and Claude initially resisted incorporating AI and wanted overly deterministic solutions. The actual implementation is relatively simple, spanning about eight files with specific functions for hunting bugs, integrating data sources, and outputting structured artifacts including HTML reports and investigation briefs. The development process involved running dueling AI coding sessions to help build the harness itself.
A critical insight from building this harness is that agents can solve very specific problems better when constrained by structure rather than left open-ended. The speaker contrasts this with the common approach of giving AI agents free-form queries and tools. By encoding specific workflows, tool policies, and output requirements into a harness, the speaker achieved more predictable, efficient outcomes. The speaker also hypothesizes that all complex AI tools like Cursor, Claude Code, and Codex are essentially harnesses—structured wrappers around AI that guide behavior toward specific goals rather than general-purpose interfaces.
About this episode
<p>Everybody is saying, “It’s not the model, it’s the harness,” but almost nobody stops to explain what a harness actually is. So I did. I built one live on the show: a Sentry bug-debugging harness for my company ChatPRD, using the Claude Agent SDK, a custom terminal UI built with the Ink library, and opinionated adapters for Sentry, Linear, GitHub, and Vercel. The harness handles evidence gathering, root-cause analysis, and follow-up artifact creation, all without me needing to type “dear agent, please fix this bug” ever again. I also walk through the architecture, share the code structure, and give you the exact process I used so you can build your own harness for any repetitive, structured workflow in your business.</p><p><br /></p><p><strong>What you’ll learn:</strong></p><ol><li>What a harness actually is</li><li>When to build a harness versus when to stick with a general-purpose tool like Claude Code or Codex</li><li>How to encode specific permissions into a harness</li><li>The three components every harness needs</li><li>How I used GPT-5.5 and Claude Opus to build the harness code itself (and where they both initially resisted)</li><li>How to structure the artifacts your harness produces so the whole team can use the output</li></ol><p>—</p><p><strong>Brought to you by:</strong></p><p><a href="https://bolt.new/partner/howiai" rel="noopener noreferrer" target="_blank"><strong>Bolt.new</strong></a>—Turn your idea into a real product</p><p><a href="https://www.customer.io/howiai" rel="noopener noreferrer nofollow" target="_blank"><strong>Customer.io</strong></a>—Build customer engagement campaigns from a single prompt</p><p>—</p><p><strong>In this episode, we cover:</strong></p><p>(00:00) What is an AI harness?</p><p>(03:19) When to build a harness</p><p>(04:33) Why Claire picked bug triage</p><p>(06:00) Why not just use Claude Code?</p><p>(07:48) Demo: The custom harness interface</p><p>(11:04) Architecture: runs, tasks, tools, and artifacts</p><p>(13:44) Building it with Codex and Claude</p><p>(15:08) Code map and file layout</p><p>(16:51) A look at the code</p><p>(19:18) The live investigation result</p><p>(21:01) How to build your own harness</p><p>—</p><p><strong>Tools referenced:</strong></p><p>• Claude Agent SDK (Anthropic): <a href="https://code.claude.com/docs/en/agent-sdk/overview" rel="ugc noopener noreferrer" target="_blank">https://code.claude.com/docs/en/agent-sdk/overview</a></p><p>• Claude Sonnet 4.6 (model used inside the harness): <a href="https://www.anthropic.com/news/claude-sonnet-4-6" rel="ugc noopener noreferrer" target="_blank">https://www.anthropic.com/news/claude-sonnet-4-6</a></p><p>• Claude Opus (used to build the harness): <a href="https://www.anthropic.com/claude/opus" rel="ugc noopener noreferrer" target="_blank">https://www.anthropic.com/claude/opus</a></p><p>• GPT-5.5 (Codex, used to build the harness): <a href="https://openai.com/index/introducing-gpt-5-5/" rel="ugc noopener noreferrer" target="_blank">https://openai.com/index/introducing-gpt-5-5/</a></p><p>• Ink (terminal UI library for Node.js): <a href="https://github.com/vadimdemedes/ink" rel="ugc noopener noreferrer" target="_blank">https://github.com/vadimdemedes/ink</a></p><p>• Sentry (error monitoring): <a href="https://sentry.io/" rel="ugc noopener noreferrer" target="_blank">https://sentry.io/</a></p><p>• Linear (project management): <a href="https://linear.app/" rel="ugc noopener noreferrer" target="_blank">https://linear.app/</a></p><p>• GitHub: <a href="https://github.com/" rel="ugc noopener noreferrer" target="_blank">https://github.com/</a></p><p>• Vercel: <a href="https://vercel.com/" rel="ugc noopener noreferrer" target="_blank">https://vercel.com/</a></p><p>—</p><p><strong>Where to find Claire Vo:</strong></p><p>ChatPRD: <a href="https://www.chatprd.ai/" rel="ugc noopener noreferrer" target="_blank">https://www.chatprd.ai/</a></p><p>Website: <a href="https://clairevo.com/" rel="ugc noopener noreferrer" target="_blank">https://clairevo.com/</a></p><p>LinkedIn: <a href="https://www.linkedin.com/in/clairevo/" rel="ugc noopener noreferrer" target="_blank">https://www.linkedin.com/in/clairevo/</a></p><p>X: <a href="https://x.com/clairevo" rel="ugc noopener noreferrer" target="_blank">https://x.com/clairevo</a></p><p>—</p><p>Production and marketing by <a href="https://penname.co/" rel="ugc noopener noreferrer" target="_blank">https://penname.co/</a>. For inquiries about sponsoring the podcast, email [email protected].</p>
Key Insights
- The speaker argues that a harness is fundamentally just structured code around an AI agent, but the mystery around the term has obscured its simplicity—it's code that provides specific context, actions, and desired outcomes.
- The speaker claims that existing popular AI tools like Cursor, Claude Code, and Codex are themselves complex harnesses rather than truly general-purpose systems, and that this framework applies to all structured AI solutions.
- The speaker demonstrates that making tool integrations highly opinionated and specific—rather than exposing general APIs—results in better agent performance, as shown in the Sentry adapter that provides only bug-relevant data pulls.
- The speaker found that advanced AI models initially resisted building harnesses and wanted overly deterministic solutions, requiring explicit and iterative prompting to incorporate agentic behavior where appropriate.
- The speaker argues that constraining agent behavior through encoded workflows, tool policies, and embedded custom prompts produces more consistent and reliable outcomes than open-ended prompting of general-purpose tools.
Topics
Transcript
A harness is some code around an AI agent that makes it more effective. Why we've seen people build these specific use case harnesses is sometimes with a specific job, you just want to micromanage a little bit. You just want to be more prescriptive about how that job gets done. I'm going to show you how it works, and then we will talk about how I built it. So the interface I built for my harness is a terminal ui the harness core is run on claude agent sdk and then it's connected to real tools so it's connected to sentry for cell and then it's connected to linear and github in terms of getting tasks done i think…
Full transcript available for MurmurCast members
Sign Up to AccessMore from How I AI
This solo builder runs 24/7 local AI on his own hardware | Alex Finn
Alex Finn, a solo builder, discusses his setup of multiple local AI machines (Mac Studios, DGX Spark, RTX 5090) running 24/7 to power autonomous workflows for software development, security scanning, and market research. He explains why local models unlock unlimited AI usage compared to cloud APIs, and demonstrates his 'software factory' with automated build and review loops using Claude Code.
GPT-5.6 Sol vs. Claude Fable: Why OpenAI’s new model crushes my benchmark
A creator conducts a detailed benchmark comparing OpenAI's new GPT-5.6 models (Sol, Terra, Luna) against Claude Fable across real-world tasks like PRD writing, prototyping, and coding. GPT-5.6 Sol emerges as the superior choice for practical product development, offering better design uniqueness, clearer communication, and more effective collaboration despite Fable's theoretical intelligence.
How I run autonomous coding agents from my phone with OpenAI Symphony + Linear | Alessio Fanelli (Kernel Labs)
Alessio Fanelli demonstrates how to run autonomous coding agents from a phone using OpenAI's Symphony framework integrated with Linear, showing practical applications from Pokemon card arbitrage to small business automation. He emphasizes moving from agent prompting to agent management through cloud-based orchestration and shares how AI enables efficient scaling of traditionally manual, inefficient business processes.
Sonnet 5 review: I ran 64 generations to find out if it's worth it
The creator develops the 'How I AI Bench,' a custom evaluation framework combining human vibe checks with LLM judging to assess AI models on practical tasks like PRD writing, prototyping, and agentic coding. Testing five frontier models including Claude Sonnet 5, the results reveal significant disagreements between automated scoring and human preference, with Sonnet 4.6 and Gemini 3 Pro ranking highest despite Sonnet 5 being the newest release.