Was macht build-your-own-alfred?
Baue Deinen Eigenen Alfred – eine Blaupause, um einen Coding-Agenten in einen Begleiter zu verwandeln: Seele, Fähigkeiten, Kontext, Gedächtnis und Werkzeuge.
Überblick
Diese Blaupause ermöglicht es dir, einen Coding-Agenten (wie Claude Code, Cursor oder Codex) von einem reinen Code-Werkzeug zu einem persönlichen Assistenten zu erweitern, der dich durch deine tägliche Arbeit begleitet. Sie ist in fünf Hauptkomponenten unterteilt:
- Seele: Definiere die Persönlichkeit, den Ton und die Verhaltensregeln deines Agenten.
- Fähigkeiten: Füge spezifische Fähigkeiten hinzu, die der Agent beherrschen soll (z. B. Dateisystemoperationen, API-Abfragen).
- Kontext: Gib dem Agenten Informationen über dein aktuelles Projekt, deine Arbeitsumgebung und deine Vorlieben.
- Gedächtnis: Erlaube dem Agenten, sich an frühere Interaktionen, häufig verwendete Muster und wiederkehrende Aufgaben zu erinnern.
- Werkzeuge: Binde externe Tools und Dienste ein, die der Agent nutzen kann.
Installation
-
Klone das Repository:
git clone https://github.com/greeninvoice/build-your-own-alfred cd build-your-own-alfred -
Konfiguriere deine Umgebungsvariablen in einer
.env-Datei:AGENT_TYPE=claude SOUL_CONFIG=./soul/default.yaml SKILLS_DIR=./skills CONTEXT_DIR=./context MEMORY_FILE=./memory/memory.json TOOLS_CONFIG=./tools/tools.yaml -
Führe das Setup-Skript aus:
./setup.sh
Verwendung
Starte deinen Agenten mit der Blaupause:
alfred start
Du kannst auch einzelne Komponenten separat laden:
alfred load-soul --config ./soul/custom.yaml
alfred load-skills --dir ./skills
alfred set-context --project my-project
alfred recall --query "letzte Änderungen"
alfred use-tool --name git
Konfiguration
Seele (soul/)
Die Seele wird in einer YAML-Datei definiert. Beispiel:
personality: freundlich, hilfsbereit, präzise
language: de
style: formell, aber zugänglich
regeln:
- unterbrich den Benutzer nicht
- frage nach, wenn etwas unklar ist
- gib immer Kontext zu Änderungen
Fähigkeiten (skills/)
Jede Fähigkeit ist ein separates Skript oder eine Konfigurationsdatei. Beispiel für eine Fähigkeit:
name: dateisystem
befehle:
- ls
- find
- grep
beschreibung: Grundlegende Dateisystemoperationen
aktiv: true
Kontext (context/)
Der Kontext wird dynamisch geladen. Du kannst Projektkonfigurationen, Benutzerprofile oder Umgebungsvariablen bereitstellen.
{
"projekt": "mein-app",
"sprache": "python",
"framework": "fastapi",
"benutzer": {
"name": "Max",
"erfahrungsstufe": "fortgeschritten"
}
}
Gedächtnis (memory/)
Das Gedächtnis speichert frühere Interaktionen. Es kann automatisch aktualisiert werden:
alfred remember "Projektstruktur wurde geändert: Ordner src/ in app/ umbenannt"
Werkzeuge (tools/)
Externe Werkzeuge werden in einer Konfigurationsdatei definiert:
werkzeuge:
- name: git
pfad: /usr/bin/git
parameter: []
- name: docker
pfad: /usr/bin/docker
parameter: ["--verbosity", "info"]
Beispiele
Persönlichen Assistenten starten
alfred start --with-soul --with-skills --with-context --with-memory --with-tools
Eine benutzerdefinierte Fähigkeit hinzufügen
alfred add-skill ./skills/meine-faehigkeit.yaml
Das Gedächtnis durchsuchen
alfred recall --query "Wie habe ich das letzte Mal die Datenbank konfiguriert?"
Unterstützte Plattformen
- Claude Code – vollständig kompatibel
- Cursor – teilweise kompatibel (siehe cursor.md)
- Codex – teilweise kompatibel (siehe codex.md)
Beitragen
Beiträge sind willkommen! Bitte lies die CONTRIBUTING.md für Richtlinien.
Lizenz
MIT