We’ve come a long way in how what AI is capable of doing, and how we are using language models to code, do research and knowledge work, or simply as personal assistants. Back in May we looked at how to use agentic tools like Claude Code, Codex, Cursor, Mistral Vibe, OpenClaw, or anything else.
This event’s mission it is to give you a behind-the-scenes intuition of what happens when doing so, by building a so-called Harness from scratch. Thinking it through properly from the very beginning allows us then to go through and understand many more complex concepts later. We welcomed both people who haven’t seen a single line of code, and computer scientists curious about agentic systems.
Overview
The Harness
When using AI, there are essentially 3 layers to that.
the Interface (what you see)
the harness
the model (produces only text, f.ex. Claude Opus 5.5)
text→+ harnessmodel→text
loop
web searchfile searchedit filesrun commandsschedulingimage generation
Fix the failing test
fix the failing test
Read math.test.js
Ran npm test1 failed
Edited math.js+1 −1
Ran npm test12 passed
Fixed: add() subtracted instead of adding. All 12 tests pass.
Reply…Opus 5.5
the interface
the harness
the model
Three layers: the interface you see, the harness around it, and a model that only turns text into text.
The harness uses the LLM to create the user experience of agents we all know. It establishes the agentic loop, tool calls, context management, orchestration capabilities and more. We looked at each of those in detail.
We’re starting with an empty Python file, land on an AI chat, and finish with a system that can change files on our computer and do (pretty much) anything that Claude Code can do. We’re keeping track of the following Pseudo-Code as we are writing Python. The intuition and understanding is what is valuable here.
our request
an answer
Tell the AI: Answer in short sentences.
Answer in short sentences. Btw if you want to run a terminal command, answer with exactly this line:
tool: run_command(command)
and then end your response immediately.
repeat forever
1.
2.
3.
4.
5.
Ask the user: What do you want to say?
LLMSend to AI: “Hi Claude, my name is Fabian”Send user request to AISend answer from 1. to AISend answer from 1. and everything BEFORE to AISend answer and everything BEFORE to AI
Hi Fabian, how can I help you?Get the AI answer
if the AI answer starts with "tool: run_command(…)": run command and send the AI: “It has been run, the following was returned: …”if the AI answer starts with "tool: run_command(…)"
execute command and send result to AI
if the AI answer does NOT start with "tool…", done
send to a separate AI
“Is this safe?” yes / no
yes?
send to a separate AI
“Is the goal met?” yes / no
no? keep going
Permissions
/goal
From one LLM call to an agent: a loop, a tool, and a check before running it.
Memory
Lastly, we added a memory system to our agent, by giving it a file to write memory instructions into, and adding that to the system prompt. We also explored concepts like dreaming, where AI optimizes it’s memory in the background.