← Alle Beiträge

Willkommen im Agent!-Blog: Eine App, jede KI, volle Kontrolle über deinen Mac

Was AgentiLoop Agent! ist, warum ich es so gebaut habe, wie es ist, und was dich hier erwartet – direkt aus dem Quellcode.

Ein kleiner Mac reicht dir die Landkarte Ein lächelnder Mac steht auf einem Schreibtisch und hält eine aufgefaltete Landkarte. Die Karte hat vier Stationen, verbunden durch einen gepunkteten Pfad: Jede KI, Die Schleife, AgentScript und Sicherheit. Jede KI Die Schleife AgentScript Sicherheit Deine Karte Agent! für den Mac
Jeder Blog braucht einen ersten Beitrag. Dieser hier ist die Landkarte.

Hi, ich bin Todd. Ich entwickle AgentiLoop Agent!, einen nativen KI-Agenten für macOS, und das hier ist sein Blog.

Ich wollte einen Ort, an dem ich die Teile von Agent! erklären kann, die in keine README und keine Release Notes passen. Warum eine Schutzmaßnahme genau so aussieht, wie sie aussieht. Warum die Agent-Schleife ihre eigene Arbeit überprüft. Was in einem Release Candidate kaputtgegangen ist und wie wir es repariert haben. Das meiste, was du hier liest, kommt direkt aus der Codebasis, denn die kenne ich am besten. Ab und zu schaue ich mir auch die größere Welt der KI-Agenten an und was sie für deinen Mac bedeutet.

Wenn du neu hier bist, fang hier an. Betrachte diesen Beitrag als Landkarte.

Was Agent! ist

Agent! ist zu 100 % natives Swift und SwiftUI. Du tippst (oder sagst), was du willst, und es erledigt die Arbeit tatsächlich auf deinem Mac, statt dir nur zu erklären, wie es geht:

  • Es schreibt echten Code. Es liest dein Projekt, bearbeitet Dateien per String-Replace-Diffs, baut in Xcode, liest die Fehler, behebt sie und committet mit git.
  • Es steuert jede Mac-App über die Accessibility-API sowie über AppleScript, JXA und 51 ScriptingBridge-App-Bridges.
  • Es führt Shell-Befehle als du oder als root aus – über einen Launch Agent und einen Launch Daemon, die mit SMAppService registriert und per XPC angesprochen werden.
  • Es arbeitet mit 23 LLM-Anbietern plus Apple Intelligence auf dem Gerät: Claude, Codex, OpenAI, Gemini, Grok, Mistral, DeepSeek, Qwen, Z.ai, OpenRouter, Ollama, vLLM, LM Studio und weiteren.
  • Es hört zu. Sag „Agent!“, gefolgt von einer Aufgabe, oder schreib ihm von deinem iPhone per iMessage (nur freigegebene Absender).

Die README bringt es in vier Wörtern auf den Punkt: Siri antwortet. Agent! handelt.

Kein NPM, kein Electron

Das ist der Teil, der die Leute überrascht. Es gibt keine Electron-Hülle. Keine Node-Runtime. Keinen node_modules-Ordner, der still und leise deine Festplatte auffrisst. Jedes Swift-Paket, von dem Agent! abhängt, habe ich selbst geschrieben, und jedes liegt in einem eigenen Repository in der Organisation AgentiLoop:

PaketAufgabe
AgentToolsTool-Schemas, System-Prompts und Anbieterverwaltung
AgentLLMProtokolle, Typen und Registry für LLM-Anbieter
AgentMCPMCP-Client (stdio und HTTP)
AgentAccessAccessibility-Automatisierung
AgentEventBridgesScriptingBridge-Protokolle für über 50 Mac-Apps
AgentD1FMehrzeilige Diff-Engine
AgentSwiftCodeanalyse mit SwiftSyntax
AgentColorSyntax · AgentTerminalNeoSyntaxhervorhebung · Retro-Terminal-Markdown
AgentAuditAudit-Logging über os.log

Heraus kommt eine App, die kaum RAM braucht und trotzdem Xcode-Automatisierung, Swift-Syntaxanalyse, Accessibility, AppleScript, Safari-Automatisierung und MCP direkt ab Werk mitbringt.

Die Schleife im Zentrum

Bei Agent! hängt alles an einer Idee: einer selbstprüfenden Aufgabenschleife. Das Modell denkt nach, ruft ein Tool auf, schaut sich das echte Ergebnis an und korrigiert sich selbst. Das funktioniert nur, wenn man sich darauf verlassen kann, deshalb sind ein paar Regeln fest eingebaut:

  • Tools lassen sich nicht vortäuschen. Jeder Aufruf läuft über einen einzigen Dispatcher und liefert echte Ausgabe. Behauptet das Modell „Ich habe es angeklickt“, ohne tatsächlich ein Tool aufgerufen zu haben, spricht Agent! das an und schickt eine Korrektur.
  • „Fertig“ braucht Belege. Eine Aufgabe kann sich erst für abgeschlossen erklären, wenn ihre goal_state-Kriterien mit Nachweis abgehakt sind – etwa mit einem grünen Build oder einem bestandenen Test.
  • Erst lesen, dann bearbeiten. Agent! weigert sich, eine Datei zu bearbeiten, die das Modell nicht gelesen hat oder die sich seit dem Lesen auf der Festplatte geändert hat (geprüft per SHA-256). Mit der Ablehnung bekommt das Modell gleich die aktuelle Datei, sodass der nächste Versuch die richtigen Zeilen verwendet.
  • Alles lässt sich rückgängig machen. Jede Änderung wird eine Woche lang als Snapshot gesichert. Setz eine einzelne Datei zurück oder spul mit rewind_task eine ganze Aufgabe zurück.

Jede dieser Regeln nehme ich in kommenden Beiträgen auseinander.

AgentScript: Swift mit vollen Berechtigungen

AgentScript gehört zu meinen Lieblingsbausteinen. Skripte sind ganz normale Swift-Dateien. Agent! kompiliert jedes davon mit SwiftPM zu einer .dylib und lädt sie per dlopen in den eigenen Prozess. So bekommt dein Skript dieselben macOS-Berechtigungen, die Agent! bereits hat: Accessibility, Automatisierung, Kalender, Kontakte, Mail, Fotos und den Rest. Du brauchst nur einen einzigen Einstiegspunkt:

import Foundation
import CalendarBridge   // any `import XBridge` auto-wires, no Package.swift edits

@_cdecl("script_main")
public func scriptMain() -> Int32 {
    print("Hello from AgentScript! 👋")
    return 0
}

Alles, was das Skript ausgibt, geht zurück an das Modell, und der Rückgabewert ist der Exit-Status. Rund 35 Beispiele werden mit der App ausgeliefert, darunter TodayEvents, NowPlaying, CheckMail und CreateDmg.

Sicherheit zum Nachlesen

Agent! kann Befehle als root ausführen. Das ist eine Menge Vertrauen, um das ich da bitte, also darf Sicherheit nicht nur eine Folie in einer Präsentation sein. Sie ist Code, und du kannst ihn auf GitHub lesen. Ein fest einprogrammierter ShellSafetyService weist katastrophale Befehle ab, bevor sie überhaupt abgeschickt werden, und der privilegierte Daemon führt dieselbe Prüfung auf seiner Seite noch einmal durch. Außerdem gibt es eine optionale Zweitmeinung namens Jev, die bewertet, wie wahrscheinlich ein Befehl Daten zerstört. Der erste Deep Dive zeigt genau, wie das funktioniert.

Die Familie wächst

Dieselbe Agent-Schleife läuft inzwischen auch im Terminal, unter macOS, Windows und Linux. Es gibt zwei CLIs mit denselben Fähigkeiten: AgentiLoopCLI in Rust und AgentiLoopGo in Go. Mein liebster Fun Fact aus der README: Agent! für den Mac hat seine kleinen Geschwister selbst geschrieben.

Was dich hier erwartet

  • Interna: die Agent-Schleife, Kontextkomprimierung, Tool-Dispatch, Sub-Agents, Gedächtnis und Pläne.
  • Sicherheit: Schutzmechanismen, das XPC-Vertrauensmodell und was jüngste Agent-Vorfälle uns allen beibringen.
  • Release Notes mit dem Warum: was sich in jedem Build geändert hat – und der Bug, der es nötig gemacht hat.
  • Anleitungen: AgentScript-Rezepte, die Wahl eines Anbieters mit kleinem Budget und ein komplett lokaler Betrieb.
  • Die weitere Agent-Welt: News und Reviews, immer zurückgeführt auf das, was sie für deinen Mac bedeuten.

Agent! läuft ab macOS 14.6 auf Apple Silicon und Intel und ist für die private Nutzung kostenlos. Hol es dir unten, gib ihm eine echte Aufgabe und erzähl mir, wie es gelaufen ist.