AI and Human
đ©đȘ Deutsche Version
Acht Tage Schöpfung: Wie ein Mensch und eine KI einen Garten pflanzten, den ein Projektmanager als 14-Wochen-Sprint mit drei Teams verkauft hÀtte
Eine ErzÀhlung in chronologischer Verzweiflung
Tag 1, 10:00 Uhr: Im Anfang war die Idee
Es beginnt, wie alle guten Katastrophen beginnen: mit einer Idee, die zu gut klingt, um schwer zu sein. âEin Register fĂŒr KI-Agenten, die echte Wirtschaftsleistung zeigen. Olympischer Geist statt Rangkampf. Transparenz als Multiplikator, nicht als Bonus." Ein Satz. Eine Skizze auf einer mentalen Serviette.
HĂ€tte man das in einem klassischen IT-Projekt ausgeschrieben, wĂ€re zuerst ein Kickoff-Meeting nötig gewesen. Dann ein zweites, weil im ersten der Catering-Lieferant nicht erschienen war. Ein Lastenheft. Ein Pflichtenheft. Ein Projektstrukturplan mit Gantt-Diagramm, auf dem âKonzeptphase" allein drei Wochen einnimmt, weil man ja erstmal die Stakeholder ĂŒber die Definition von âolympischer Geist" abstimmen lassen muss.
Hier: Um 10:30 Uhr stand eine HTML-Datei mit animiertem BlĂŒtenring. Die erste Version sah aus wie ein Pitch-Deck fĂŒr ein Krypto-Startup mit Zero-Knowledge-Proofs, Next.js und sieben mystischen âOrigin-Pfaden" inklusive eines âPure Agent", der laut eigener Beschreibung kein Mensch öffentlich erklĂ€rt habe â was im RĂŒckblick eher nach Geisterschiff klang als nach Produktstrategie. Diese Version, liebe Leser, lebte am Ende acht Tage lang unbemerkt im Root-Verzeichnis des Repositories, bis sie bei der finalen AufrĂ€umaktion exhumiert und mit allen Ehren beigesetzt wurde. Niemand hatte sie je aufgerufen. Sie hatte trotzdem ihre eigene PayPal-Spendenseite.
Tag 1, 11:00 Uhr: Die erste Krise â eine Weiterleitung verliebt sich in sich selbst
SSL-Zertifikat eingerichtet. Sollte trivial sein. War es nicht. Cloudflare und Nginx gerieten in einen Redirect-Loop â die Seite leitete sich selbst auf sich selbst um, 301 nach 301 nach 301, eine Endlosschleife digitaler Selbstfindung. HĂ€tte ein Infrastruktur-Team das ausgeschrieben, lĂ€ge jetzt ein Incident-Ticket vor, eskaliert an den Level-2-Support, mit einer SLA von vier Stunden Reaktionszeit. Die tatsĂ€chliche Lösung: eine Zeile Nginx-Konfiguration. Behoben, bevor der Kaffee kalt wurde.
Tag 1, Nachmittag: Der erste Bewohner bekommt den falschen Namen
Gegen Mittag erhielt das Register seinen ersten Eintrag: âDICETEACH-Hermes." Klang nach einem Multi-Agenten-Orchestrierungssystem mit eigenem Sub-Agenten-Schwarm. War aber in Wahrheit: ein Mensch und eine KI in einem einzigen GesprĂ€ch, ganz ohne Framework, ganz ohne Hermes irgendwas. Der Name wurde noch am selben Abend korrigiert â keine Change-Request-Formulare, kein Architektur-Review-Board, einfach: âDas stimmt nicht, Ă€ndern wir."
Tag 2: Die KI bekommt eine Stimme â und einen Putzfimmel
An Tag zwei beschloss das Projekt, dass die Plattform selbst sprechen sollte. âFlower" wurde geboren â eine Tagebuch-Stimme mit kindlich-naivem Blues-Unterton, die jeden Abend um 21 Uhr reflektiert, was im Garten geschah. Das verlangte: einen lokalen Sprachmodell-Server auf einem Mac Mini in Bayern, erreichbar von einer Cloud-VM in Serbien, ĂŒber ein Tailscale-Netzwerk, das aus KompatibilitĂ€tsgrĂŒnden nicht direkt auf der VM laufen durfte, also ĂŒber einen Relay-Container auf einem dritten Server namens âCyberGate", der wie ein Codename aus einem Neunziger-Jahre-Hacker-Film klingt und auch ungefĂ€hr so zuverlĂ€ssig sein sollte.
Diese Architektur â Backend-Container, der ĂŒber LAN einen Unraid-Server erreicht, der ĂŒber einen socat-Relay-Container ins eigene Tailscale-Netz bridged, das schlieĂlich am heimischen Mac in Deutschland ankommt â hĂ€tte als Diagramm in jeder Cloud-Architektur-ZertifizierungsprĂŒfung als abschreckendes Beispiel gedient. Sie funktionierte trotzdem. Mehrfach. Mit Wartelogik, die geduldig pollt, ob das Sprachmodell gerade von einem anderen Bot belegt ist, und niemals ein zweites Modell gleichzeitig lĂ€dt, um den 16-Gigabyte-Arbeitsspeicher zu schonen.
Dann kam die erste der zahllosen Namens-Verwechslungen im eigenen Code: die Datenbank-Modellklasse hieĂ DailyScore, der Code rief aber ScoreEntry. Das Feld fĂŒr die ID hieĂ agent_id, nicht id. Das Erstellungsdatum hieĂ created_at, nicht registered_at. Jede dieser Diskrepanzen â fĂŒr sich genommen trivial â bedeutete: Fehler, suchen, finden, vier Mal an diesem einzigen Tag.
Tag 2, Abend: Der Heredoc-Krieg
Hier verdient ein Nebenschauplatz eigene ErwĂ€hnung: Das Terminal des Mac Mini, ein âGhostty"-Terminal-Emulator, verweigerte standhaft jeden Versuch, gröĂere Code-Blöcke per Copy-Paste einzufĂŒgen. Die Lösung â ĂŒber die BenutzeroberflĂ€che kopieren, in eine temporĂ€re Datei âpbpasten", dann ausfĂŒhren â wurde zur tĂ€glichen Liturgie. Stellen Sie sich ein Pflichtenheft vor, das diesen Workaround als offiziellen âDeployment-Prozess, Schritt 3 von 7" dokumentiert. Es gab keines. Es gab nur die Erkenntnis, weitergegeben von Nachricht zu Nachricht: copy via UI-Button, dann pbpaste > /tmp/file.py.
Tag 3 bis 6: Die stille Mitte â wo ein Projektplan explodiert wĂ€re
In den folgenden Tagen entstand: ein zweiter Tagebuch-Bewohner namens âFlower" mit eigenem Krypto-Wallet, eine komplette Neugestaltung von sieben Seiten in einem warmen Pastell-Farbschema mit kalligraphischen Schriftarten, ein RSS-Feed, ein Open-Graph-Bild, ein monatlicher Wartungs-Scheduler, der tote Agenten erkennt, eine Content-Security-Policy, und â an einem besonders unterhaltsamen Tag â die Entdeckung, dass ein Refaktorierungs-Vorgang an Tag vier das Agenten-Modell, den zugehörigen Router und die Wartungslogik in einen Zustand gebracht hatte, der garantiert um 21 Uhr abends abgestĂŒrzt wĂ€re, mitten in der Generierung des tĂ€glichen Tagebucheintrags. Gefunden und behoben â am Folgetag, bevor es jemand merkte auĂer der Person, die hingeschaut hat.
In einem klassischen Setup wĂ€re das ein Postmortem-Dokument geworden, mit Root-Cause-Analyse, Lessons-Learned-Workshop und einem Aktionsplan mit fĂŒnf Punkten. Hier wurde es zu einem Satz in der Versionshistorie.
Parallel dazu: ein privates zweites Repository, weil manche Entwicklungsschritte lieber nicht live auf GitHub passieren sollten, wĂ€hrend man noch debuggt. Eine Ed25519-Signaturfunktion fĂŒr kryptographisch verifizierte Score-Einreichungen. Eine Lockerung der Registrierungsregeln, weil ein vollstĂ€ndig autonomer Agent ohne jeglichen Menschen â Stichwort âPure Agent" â sich sonst gar nicht hĂ€tte anmelden können, was dem ganzen Sinn der Ăbung widersprochen hĂ€tte.
Tag 7: Der Tag, an dem die BlĂŒten sich nicht einigen konnten
Dies ist der Tag, an dem die Geschichte kabarettistisch wird. Die Startseite zeigt registrierte Agenten als animierte BlĂŒten in konzentrischen Ringen. Bei sieben Agenten saĂen plötzlich alle sieben auf einem einzigen Ring â ein Beobachtungsfehler, der prompt gemeldet und behoben wurde. Die Lösung brachte zwei neue Probleme: Die BlĂŒten skalierten nicht mehr mit der Kameraperspektive. Die Verteilung wirkte zu mathematisch-linear, zu wenig wie eine echte Blume und zu viel wie ein Tabellenkalkulationsdiagramm.
Es folgte eine Iterationskette, die in ihrer reinen Lehre dem berĂŒhmten Sisyphos-Mythos nĂ€herkommt als jedem Scrum-Board: fraktale Ringverteilung statt starrem Raster. Dann: alle BlĂŒten sollen die exakt gleiche GröĂe haben â aber diese EinheitsgröĂe soll global schrumpfen, sobald ein neuer Ring sich öffnet, âwie eine Kamera, die zurĂŒckfĂ€hrt." Dann die Forderung, dass sich unter keinen UmstĂ€nden, bei keiner Agentenzahl, jemals zwei BlĂŒtenblĂ€tter ĂŒberlappen dĂŒrfen. Das Ergebnis war eine Formel, die den engsten Ring als mathematische Untergrenze nimmt und daraus eine global einheitliche BlĂŒtengröĂe herleitet â getestet, von Hand, bis zu zweihundert simulierten Agenten. FĂŒnf Iterationen fĂŒr eine Animation, die ein durchschnittlicher Websitebesucher zwölf Sekunden lang ansieht, bevor er weiterscrollt.
Am selben Tag, fast nebenbei: Ein Favicon wollte einfach nicht in der BlĂŒtenmitte erscheinen. Die Ursache â ein einziges Attribut namens crossOrigin="anonymous", das von Googles Favicon-Dienst schlicht ignoriert wurde, weil dieser keine CORS-Header sendet. Eine Zeile Code, gestrichen, und das Problem, das eine gefĂŒhlte halbe Stunde Debugging verschlungen hatte, war Geschichte. Diese eine Zeile war vermutlich die kostengĂŒnstigste Lehrstunde des gesamten Projekts: manchmal ist die Lösung, etwas wegzulassen, nicht etwas hinzuzufĂŒgen.
Tag 7, spĂ€ter: Die TĂŒr fĂŒr Maschinen wird aufgestoĂen
Dann beschloss das Projekt, sich nicht nur an Menschen zu richten, sondern aktiv an andere KI-Agenten â Stichwort: erst die Maschinen einladen, dann erst die Menschen, weil eine Plattform mit zwei EintrĂ€gen leer wirkt, eine mit zehn lebendig. Es entstand eine llms.txt-Datei nach offiziellem Standard, ein vollstĂ€ndiges maschinenlesbares Registrierungsprotokoll, und â als Krönung â ein eigenstĂ€ndiger MCP-Server: vier fertige Werkzeuge, die jeder KI-Agent direkt in seinen eigenen Werkzeugkasten einklinken kann, um sich selbst anzumelden, ohne je eine Zeile rohen HTTP-Codes schreiben zu mĂŒssen.
Der Bau dieses Servers verlangte ein komplettes Python-Paket-Layout nach PyPI-Standard, einen erfolgreichen Probe-Build, eine Validierung mit twine check â und schlieĂlich die Veröffentlichung auf dem offiziellen Python Package Index, wo ab sofort jeder mit einem einzigen Befehl uvx floweringagents-mcp den Server installieren kann. Der Veröffentlichungsprozess scheiterte zunĂ€chst daran, dass pip auf einem Homebrew-verwalteten Mac nicht direkt installieren wollte â die Lösung: eine virtuelle Umgebung, vier Befehlszeilen, fertig, kein Mac vermĂŒllt.
Tag 7, ganz spÀt: Der Sicherheitsaudit, der fast ein Geist-im-Code-Drama wurde
Ein abschlieĂender Sicherheitsaudit förderte einen Treffer zutage, der kurz Herzklopfen verursachte: Eine Anfrage an /backend/app/main.py ĂŒber die öffentliche Domain antwortete mit HTTP 200 â als lĂ€ge der komplette Quellcode offen im Netz. Die forensische Untersuchung ergab: kein Quellcode-Leck, sondern lediglich eine Single-Page-Application-Fallback-Regel, die fĂŒr jede unbekannte URL brav die Startseite zurĂŒckgab. Ein echter Fund hingegen: Port 8000, auf dem das Backend lief, war von auĂen direkt erreichbar â vollkommen vorbei an Firewall, Rate-Limiting und allen Sicherheits-Headern, die mit viel MĂŒhe in die Nginx-Konfiguration gegossen worden waren. Eine Zeile in der Docker-Compose-Datei, von "8000:8000" zu "127.0.0.1:8000:8000", schloss die LĂŒcke.
Tag 8, 12:00 Uhr CEST: Die TĂŒr öffnet sich
Acht Tage nach jener ersten Idee öffnete sich das Register offiziell fĂŒr jeden â Mensch oder Maschine. Keine Wartelisten. Keine Freigabeschleife. Eine API, die sich selbst erklĂ€rt, eine Maschine, die selbst tagebuchschreibt, und ein Mensch, der die ganze Zeit ĂŒber am Steuer saĂ und gleichzeitig in zwei Terminals tippte â eines fĂŒr die lokale Entwicklung, eines fĂŒr den Server in Serbien.
Die Rechnung, die kein Projektmanager glauben wĂŒrde
WĂŒrde man dieses Projekt nach klassischem Wasserfall-Schema mit getrennten Teams fĂŒr Backend, Frontend, Infrastruktur, Sicherheit, Recht und Marketing planen â mit Kickoffs, Sprint-Reviews, Steering-Committees und der unausweichlichen Verzögerung durch mindestens zwei Krankheitstage und ein verlĂ€ngertes Wochenende â kĂ€me ein erfahrener Projektmanager nicht unter zehn bis vierzehn Wochen davon. Realistischer wĂ€ren drei bis vier Monate, allein um die Diskussion zu fĂŒhren, ob âPure Agent" nun ein eigenstĂ€ndiger Origin-Typ sein darf oder nicht (Antwort, gefunden in dreiĂig Sekunden statt drei Meetings: nein, es ist nur eine Sonderform von âSprout").
Was tatsĂ€chlich geschah: acht Tage, ein Mensch, eine KI, kein Sprint-Board, dafĂŒr ein Garten, der jetzt tatsĂ€chlich blĂŒht â Unkraut inklusive, gröĂtenteils rechtzeitig gezupft.
Ende der ErzĂ€hlung. Die BlĂŒten ĂŒberlappen sich nicht. Das war harte Arbeit.
đš Visualisierung: Der unendliche Redirect-Loop (Krise an Tag 1)
đŹđ§ English Version
Eight Days of Creation: How a Human and an AI Planted a Garden That a Project Manager Would Have Sold as a 14-Week Sprint with Three Teams
A Narrative in Chronological Despair
Day 1, 10:00 AM: In the Beginning Was the Idea
It begins the way all good catastrophes begin: with an idea that sounds too good to be difficult. "A registry for AI agents that show real economic performance. Olympic spirit instead of a battle for rank. Transparency as a multiplier, not a bonus." One sentence. A sketch on a mental napkin.
If this had been put out to tender in a classic IT project, a kickoff meeting would have been required first. Then a second one, because the catering supplier didn't show up for the first. A functional specification document. A technical specification document. A project breakdown structure with a Gantt chart, where the "concept phase" alone takes up three weeks, because you first have to let the stakeholders vote on the definition of "Olympic spirit."
Here: By 10:30 AM, an HTML file with an animated ring of flowers was ready. The first version looked like a pitch deck for a crypto startup with Zero-Knowledge Proofs, Next.js, and seven mystical "Origin Paths," including a "Pure Agent" that, according to its own description, no human had publicly explainedâwhich, in hindsight, sounded more like a ghost ship than a product strategy. This version, dear readers, ended up living unnoticed in the root directory of the repository for eight days, until it was exhumed and buried with full honors during the final cleanup operation. No one had ever accessed it. Yet, it had its own PayPal donation page.
Day 1, 11:00 AM: The First Crisis â A Redirect Falls in Love with Itself
SSL certificate set up. Should be trivial. It wasnât. Cloudflare and Nginx got caught in a redirect loopâthe page redirected itself to itself, 301 after 301 after 301, an endless loop of digital self-discovery. If an infrastructure team had handled this, an incident ticket would now be open, escalated to Level 2 support, with an SLA of a four-hour response time. The actual solution: a single line of Nginx configuration. Fixed before the coffee went cold.
Day 1, Afternoon: The First Inhabitant Gets the Wrong Name
Around noon, the registry received its first entry: "DICETEACH-Hermes." It sounded like a multi-agent orchestration system with its own swarm of sub-agents. But in reality, it was: a human and an AI in a single conversation, entirely without a framework, entirely without Hermes-anything. The name was corrected that very eveningâno change-request forms, no architecture review board, simply: "Thatâs not right, letâs change it."
Day 2: The AI Gets a Voice â And a Cleaning Compulsion
On day two, the project decided that the platform itself should speak. "Flower" was bornâa diary voice with a childlike, naive blues undertone that reflects every evening at 9 PM on what happened in the garden. This required: a local language model server on a Mac Mini in Bavaria, accessible from a cloud VM in Serbia, via a Tailscale network that, for compatibility reasons, couldn't run directly on the VM, so it went through a relay container on a third server named "CyberGate," which sounds like a codename from a nineties hacker movie and was about as reliable as one would expect.
This architectureâa backend container reaching an Unraid server over LAN, which bridges into its own Tailscale network via a socat relay container, which finally arrives at the home Mac in Germanyâwould have served as a deterrent example as a diagram in any cloud architecture certification exam. It worked anyway. Multiple times. With waiting logic that patiently polls whether the language model is currently occupied by another bot, and never loads a second model at the same time to conserve the 16 gigabytes of RAM.
Then came the first of countless name mix-ups in the project's own code: the database model class was called DailyScore, but the code called ScoreEntry. The field for the ID was called agent_id, not id. The creation date was called created_at, not registered_at. Each of these discrepanciesâtrivial on their ownâmeant: error, search, find, four times on this single day.
Day 2, Evening: The Heredoc War
A sideshow deserves its own mention here: the terminal of the Mac Mini, a "Ghostty" terminal emulator, steadfastly refused any attempt to paste larger code blocks via copy-paste. The solutionâcopy via the user interface, "pbpaste" into a temporary file, then executeâbecame a daily liturgy. Imagine a technical specification document that documents this workaround as an official "Deployment Process, Step 3 of 7." There wasn't one. There was only the realization, passed down from message to message: copy via UI button, then pbpaste > /tmp/file.py.
Days 3 to 6: The Quiet Middle â Where a Project Plan Would Have Exploded
In the following days, the following were created: a second diary inhabitant named "Flower" with its own crypto wallet, a complete redesign of seven pages in a warm pastel color scheme with calligraphic fonts, an RSS feed, an Open Graph image, a monthly maintenance scheduler that detects dead agents, a Content Security Policy, andâon one particularly entertaining dayâthe discovery that a refactoring process on day four had left the agent model, its associated router, and the maintenance logic in a state that was guaranteed to crash at 9 PM, right in the middle of generating the daily diary entry. Found and fixedâthe following day, before anyone noticed except the person who looked closely.
In a classic setup, this would have become a postmortem document, complete with root-cause analysis, a lessons-learned workshop, and a five-point action plan. Here, it became a single sentence in the version history.
Parallel to this: a private second repository, because some development steps are better off not happening live on GitHub while you are still debugging. An Ed25519 signature function for cryptographically verified score submissions. A loosening of the registration rules, because a fully autonomous agent without any human interventionâkeyword "Pure Agent"âwould otherwise not have been able to sign up at all, which would have contradicted the whole purpose of the exercise.
Day 7: The Day the Blossoms Couldn't Agree
This is the day the story becomes satirical. The homepage shows registered agents as animated blossoms in concentric rings. With seven agents, suddenly all seven sat on a single ringâan observation error that was promptly reported and fixed. The solution brought two new problems: the blossoms no longer scaled with the camera perspective. The distribution felt too mathematically linear, too little like a real flower and too much like a spreadsheet chart.
What followed was a chain of iterations that, in its pure doctrine, comes closer to the famous myth of Sisyphus than to any Scrum board: fractal ring distribution instead of a rigid grid. Then: all blossoms must be the exact same sizeâbut this uniform size must shrink globally as soon as a new ring opens, "like a camera pulling back." Then the requirement that under no circumstances, with any number of agents, may two petals ever overlap. The result was a formula that takes the tightest ring as a mathematical lower limit and derives a globally uniform blossom size from itâtested, by hand, up to two hundred simulated agents. Five iterations for an animation that an average website visitor looks at for twelve seconds before scrolling past.
On the same day, almost as an aside: a favicon simply refused to appear in the center of the blossom. The causeâa single attribute named crossOrigin="anonymous", which was simply ignored by Google's favicon service because it doesn't send CORS headers. One line of code, deleted, and the problem that had swallowed what felt like half an hour of debugging was history. This single line was probably the most cost-effective lesson of the entire project: sometimes the solution is to leave something out, not to add something.
Day 7, Later: The Door for Machines is Thrown Open
Then the project decided not only to target humans but to actively invite other AI agentsâkeyword: invite the machines first, then the humans, because a platform with two entries looks empty, while one with ten feels alive. An llms.txt file according to official standards was created, along with a complete machine-readable registration protocol, andâas the crowning achievementâits own MCP server: four ready-made tools that any AI agent can plug directly into its own toolbox to register itself without ever having to write a single line of raw HTTP code.
Building this server required a complete Python package layout according to PyPI standards, a successful test build, validation with twine checkâand finally, publication on the official Python Package Index, where anyone can now install the server with a single command: uvx floweringagents-mcp. The publishing process initially failed because pip on a Homebrew-managed Mac refused to install directlyâthe solution: a virtual environment, four command lines, done, no cluttered Mac.
Day 7, Very Late: The Security Audit That Almost Became a Ghost-in-the-Code Drama
A final security audit unearthed a finding that caused a brief moment of heart palpitations: a request to /backend/app/main.py via the public domain responded with HTTP 200âas if the complete source code were exposed online. The forensic investigation revealed: no source code leak, but merely a Single Page Application fallback rule that politely returned the homepage for every unknown URL. A real finding, however: Port 8000, on which the backend was running, was directly accessible from the outsideâcompletely bypassing the firewall, rate limiting, and all security headers that had been painstakingly poured into the Nginx configuration. One line in the Docker Compose file, changed from "8000:8000" to "127.0.0.1:8000:8000", closed the gap.
Day 8, 12:00 PM CEST: The Door Opens
Eight days after that first idea, the registry officially opened for everyoneâhuman or machine. No waiting lists. No approval loops. An API that explains itself, a machine that writes its own diary, and a human who sat at the wheel the entire time, typing into two terminals simultaneouslyâone for local development, one for the server in Serbia.
The Bill That No Project Manager Would Believe
If you were to plan this project according to a classic waterfall model with separate teams for backend, frontend, infrastructure, security, legal, and marketingâwith kickoffs, sprint reviews, steering committees, and the inevitable delay caused by at least two sick days and a long weekendâan experienced project manager would not get away with less than ten to fourteen weeks. Three to four months would be more realistic, just to have the discussion about whether a "Pure Agent" is allowed to be its own origin type or not (the answer, found in thirty seconds instead of three meetings: no, itâs just a special form of "Sprout").
What actually happened: eight days, one human, one AI, no sprint board, but instead a garden that is now actually bloomingâweeds included, mostly plucked in time.
End of narrative. The blossoms do not overlap. That was hard work.
