Milo
00 Überblick

Was keine App allein weiß.

Vier Apps erfassen meinen Tag: Hevy das Training, MyFitnessPal das Essen, die Waage das Gewicht, die Uhr den Schlaf. Milo liest sie alle und sagt mir, was sie zusammen bedeuten.

Ich habe Milo gebaut, weil ich so einen Coach nirgends kaufen konnte. Die Skizze zeigt, wie er aufgebaut ist. Beim Scrollen dockt jedes Teil an.

01 Kern

Ein Ort für alles.

Ich wollte nie, dass Milos Wissen in einem Chatverlauf hängt. Deshalb steht alles in Postgres: Training, Messwerte, Habits, Erinnerungen, jede Nachricht. n8n reicht es an Claude, Claude antwortet.

Der Kern hat Anschlüsse am Rand. In den nächsten Kapiteln füllen sie sich.

Postgres 16 · pgvectorn8nClaude Sonnet 5.5
01 Kern · Bausteine

Acht Blöcke sagen Milo, wo ich stehe.

Statt eines Chatverlaufs bekommt Claude ein Briefing. Acht Blöcke, bei jeder Nachricht neu aus der Datenbank gerechnet und in die Persona gesetzt. Fehlt ein Wert, steht das so da. Fehlt ein Block, antwortet Milo nicht.

DATUM
Wochentag und Datum
ZIELE
Meine Ziele, aus dem Profil
HISTORIE
Training je Woche und Muskelgruppe, dazu Gewicht, Schlaf, Schritte, Protein und Termine
KONTAKT
Stand der unbeantworteten Check-ins
EVIDENZ
Was die Forschung zur aktuellen Frage sagt, mit Quelle
HABITS
Was ich diese Woche schon geschafft habe
ERINNERUNGEN
Erinnerungen, die zur Nachricht passen oder heute fällig sind
GESPRAECH
Verlauf der letzten Tage, mit Uhrzeit
02 Quellen · Hevy

Was ich sowieso schon tracke.

Ich wollte keine neue App, in die ich etwas eintippe. Die Apps, die ich schon nutze, erfassen weiter. Milo bekommt ihre Daten und muss nie nachfragen.

Hevy

Sobald ich ein Workout in Hevy speichere, meldet Hevy es Milo. Der holt die Sätze und schreibt sie in die Datenbank. Nachts prüft er die zehn neuesten Workouts noch einmal, falls eine Meldung verloren ging.

02 Quellen · Apple Health

Apple Health

Ein Apple-Kurzbefehl holt Gewicht, Essen, Schlaf und Schritte aus Apple Health und schickt sie an Milo. Die Rohdaten bleiben liegen. Geht beim Verarbeiten etwas schief, verarbeite ich den Tag einfach noch einmal.

02 Quellen · Knöpfe

Knöpfe

Ein paar Dinge kann nur ich wissen. Dafür tippe ich einen Knopf, in Telegram oder in der Webapp. Milo speichert jeden Tipp als Ereignis und nimmt den letzten.

Neue Quelle

Will ich eine neue Quelle, baue ich einen Webhook und eine Funktion. Der Rest ist schon da: die Sicht, in der alle Messwerte zusammenlaufen, und die Habits, die darauf schauen.

03 Zahlen

Was Milo sagt, hat SQL vorgerechnet.

Ein Sprachmodell zählt Wochentage so sicher wie ich Kopfrechnen nach dem Training. Am 30.09. machte Milo aus fünf Tagen zwei. Seitdem kommt jede Zahl zu Abständen und Wochen aus SQL, und Milo übernimmt sie wörtlich.

Genauso bei Trainingszielen: Je Übung zählt der beste Arbeitssatz. Das Ziel der nächsten Einheit ist, ihn zu schlagen, mit einer Wiederholung mehr oder mit dem nächsten Gewichtsschritt.

Montag bis SonntagPush, Pull, Beine, Arme nur vollständig
04 Träumen · Bemerken

Milo träumt, und dabei fällt ihm etwas auf.

Nachts schaut Milo sieben Tage zurück. Comeback, Pause, neues Höchstgewicht, Habit-Serie: Was er findet, speichert er einmal als Erinnerung. Fällt eine Nacht aus, holt die nächste es nach.

Auch aus Gesprächen entstehen Erinnerungen: ein Satz, der für sich allein verständlich ist, mit Art, Wichtigkeit und Vektor. Bei jeder Nachricht holt Milo die passendsten, nach Ähnlichkeit, Wichtigkeit und Alter.

04 Träumen · Verdichten

Montags fasst Milo die Woche zusammen.

Montags stellt SQL die Woche zusammen, Claude schreibt daraus einen Wochenrückblick und eine neue Fassung meines Kernprofils. Keine Fassung wird überschrieben.

Vergessen

Milo darf sich irren, aber nicht dauerhaft. Falsche Erinnerungen lösche ich in der Webapp. Weg ist weg, und das Protokoll kennt den Wortlaut nicht.

05 Wissen

Fachwissen nur mit Quelle.

Ich wollte nicht, dass Milo Fitness-Wissen aus dem Modell holt. Deshalb gibt es 49 Karten, jede mit Aussage, Folge, Grenzen, Belastbarkeit und einer geprüften DOI. Zu jeder Nachricht sucht Milo die passenden, höchstens drei.

13 gut belegt31 Hinweise5 umstritten

Zahlen und Studienbefunde nennt Milo nur aus diesen Karten oder aus meinen Daten, und er sagt dazu, wie sicher das ist. Fehlt ihm die Grundlage, sagt er das und notiert die Frage.

Neues Wissen

Will ich Milo etwas Neues beibringen, schreibe ich eine Karte in die Seed-Datei. Nachts bekommt sie ihren Vektor, dann findet Milo sie.

06 Eingänge · Telegram

Egal wo ich schreibe, Milo weiß Bescheid.

Ein Kanal ist bei Milo nur ein Webhook. Agent, Gedächtnis und Verlauf sind für alle dieselben. Was ich morgens in Telegram sage, weiß Milo abends im Web.

Telegram

Mit Telegram hat Milo angefangen. Abends kommt hier der Check-in, unter der Habit-Nachricht liegen die Knöpfe zum Abhaken. Sprachnachrichten schreibt Whisper ab.

06 Eingänge · Webapp

Webapp

heymilo.de ist Milos eigene Oberfläche, privat, Anmeldung per Passkey. Der Chat startet zuerst und zeigt denselben Verlauf wie Telegram. Milos Antwort erscheint Wort für Wort, dazwischen das Logbuch mit Training, Gewicht und Habits. Antworten kommen als Push aufs Handy.

06 Eingänge · Sprache

Sprache

Nach dem Training tippe ich nicht gern. Also halte ich den Knopf, rede und lasse los. Whisper schreibt ab, mit einem Wörterbuch aus der Datenbank. Gespeichert wird nur der Text, kein Ton.

Neuer Kanal

Will ich Milo woanders erreichen, baue ich einen Webhook und trage einen Wert für channel ein. Vom ersten Web-Chat bis zur Sprachnachricht hat das zwei Tage gedauert.

06 Eingänge · Nebenbei

Nebenbei

Ein Blick aufs Handy reicht: Das Widget zeigt die Woche als Raster, der Bereich Heute dasselbe mit Verlauf. Jedes Workout landet im Kalender, der Titel kommt aus den Sätzen, nicht aus Hevy.

07 Wartung

Milo passt auf sich selbst auf.

Bricht ein Workflow ab, landet der Fehler in der Datenbank und als Telegram-Nachricht bei mir. Geheimnisse sind vorher geschwärzt, ein Warnzeichen unterscheidet die Meldung von Milo. Wiederholt sich ein Fehler, kommt er höchstens einmal pro Stunde.

Nicht jeder Fehler macht Lärm. Eine tägliche Prüfung meldet, wenn der Kurzbefehl seit 36 Stunden schweigt oder ein Wert dreimal hintereinander fehlt. Was sich nachts heilen lässt, heilt nachts.

Jede Nacht ein Backupder Schlüssel liegt nicht auf dem Server
08 Erweiterung

Was eine Erweiterung kostet.

Ich habe Milo so gebaut, dass Neues meist eine Zeile in der Datenbank ist, kein Umbau. Tipp eine Erweiterung an: Auf der Bühne leuchtet auf, was sich ändert, darunter steht der echte Code.


        
09 Geplant

Was als Nächstes kommt.

Was ich als Nächstes baue, steht in der Roadmap. Drei Steckplätze sind dafür schon frei, ein Datum gibt es nicht.

Ernährung
Statt alles zu tracken: Milo macht einen Plan, ich sage nur, wenn ich abweiche. Unbekanntes schätzt er und sagt, dass er schätzt. Die Zielwerte stammen aus den Evidenzkarten.
Trainingsplan
Ein Trainingsplan als Tabelle in der Datenbank, mit Moduswechsel und Deload.
Neue Karten
Schlafregelmäßigkeit, Kreatin, Schritte. Sie kommen erst, wenn die Quellen geprüft sind.
10 Grenzen

Was Milo nicht kann.

  • Milo gibt es nur für mich. Kein Produkt, keine Konten, keine Warteliste.
  • Milo stellt keine Diagnosen. Tut etwas weh, rät er zu Pause und zum Arzt. Geht es mir schlecht, hört er auf zu coachen und zeigt auf Menschen.
  • Er sieht nur, was Apps erfassen und was ich ihm sage.
  • Er kann sich irren, sagt aber dazu, wie sicher er ist: gut belegt, Hinweis, umstritten.
  • Alles, was SQL noch nicht ausrechnet, rechnet das Modell, und das kann schiefgehen.
  • Alle Werte auf dieser Seite sind Beispiele, keine echten Gesundheitsdaten.