Projektüberblick
GenericAgent ist ein äußerst minimalistisches, sich selbst weiterentwickelndes autonomes Agent-Framework. Sein Kern umfasst nur ~3K Zeilen Code: Mit 9 atomaren Tools plus einer Agent-Loop von ca. 100 Zeilen verleiht es jedem beliebigen LLM die Fähigkeit zur systemweiten Steuerung des lokalen Computers.
Die Designphilosophie ist besonders interessant: Keine Fähigkeiten voraussetzen—Fähigkeiten durch Evolution gewinnen. Für jede gelöste neue Aufgabe wird bei GenericAgent die Ausführungsstrecke automatisch zu einem Skill „eingefroren“. Je länger man es nutzt, desto mehr Skills sammelt sich an—und daraus entsteht ein Baum, der vollständig dir gehört: eine eigene Skill-Tree, der aus dem 3K-Zeilen-Seed-Code wächst.
TIP
Noch besser: Dieses Projekt hat auf arXiv einen技术论文, der die Designidee „token-effizient + Maximierung der Informationsdichte im Kontext“ belegt.
Im Vergleich zu OpenClaw (~530K Zeilen Code) geht GenericAgent den minimalistischen Weg—die Bereitstellung ist einfach (pip install + API Key), es braucht keine aufwendige Multi-Service-Orchestrierung, aber es behält dennoch die zentralen Kernfähigkeiten bei: vollständige Browser-Steuerung, Tastatur- und Mausbedienung sowie die Steuerung mobiler Geräte via ADB usw.
Schwierigkeitsgrad / Dauer / Nutzen
- Schwierigkeit: Einsteigerfreundlich, keine tiefgehenden Programmierkenntnisse nötig
- Dauer: ca. 30 Minuten
- Nutzen: GenericAgent-Deployment- & -Konfiguration beherrschen + Integration in die drei wichtigsten IM-Plattformen WeChat/QQ/Feishu, um jederzeit und überall per Smartphone einen KI-Computer zu steuern
Zielgruppe
- Backend- oder Full-Stack-Entwickler mit 1–5 Jahren Erfahrung
- Nutzer, die einen persönlichen KI-Assistenten und automatisierte Workflows aufbauen möchten
- Personen mit Interesse an Agent-Technologie, die schnell ausprobieren wollen, wie „KI wirklich für dich arbeitet“
- Bedarf an IM-Integration für mehrere Plattformen (z. B. Remote-Steuerung des Computers über WeChat/QQ)
Wichtige Abhängigkeiten & Umgebung
| Kategorie | Anforderungen |
|---|---|
| Python | 3.11 oder 3.12 (verwende nicht 3.14, da es mit pywebview nicht kompatibel ist) |
| Betriebssystem | Windows / macOS / Linux |
| LLM-Unterstützung | Claude / GPT-4o / Gemini / Kimi / MiniMax u. a. gängige Modelle |
| Netzwerk | Netzwerkumgebung, die auf LLM-APIs zugreifen kann |
| Optional | streamlit / pywebview (Desktop-GUI), pycryptodome / qrcode (WeChat) |
WARNING
GenericAgent selbst stellt keine LLM-API bereit—du musst dir deinen API Key selbst besorgen. Es wird empfohlen, einen Umleitungs-/Relay-Dienst zu verwenden, der Claude/GPT unterstützt: meist günstiger und in China stabiler erreichbar. Beispiel: Defapi—offiziell zu der Hälfte des Preises, unterstützt das komplette Claude/GPT-Portfolio und kann kompatible Protokolle automatisch erkennen.
Vollständige Projektstruktur
GenericAgent/
├── agentmain.py # Haupteinstieg, unterstützt den Kommandozeilenmodus
├── launch.pyw # Desktop-GUI-Startskript
├── agent_loop.py # Kern-Agent-Loop (ca. 100 Zeilen)
├── llmcore.py # LLM-Session-Management
├── ga.py # GenericAgentHandler, Memory & Tool-Dispatching
├── frontends/ # IM-Plattformadapter
│ ├── wechatapp.py # WeChat Bot
│ ├── qqapp.py # QQ Bot
│ ├── fsapp.py # Feishu Bot
│ ├── tgapp.py # Telegram Bot
│ ├── wecomapp.py # Bot für Business WeChat
│ ├── dingtalkapp.py # DingTalk Bot
│ ├── tuiapp.py # Terminal-UI
│ └── ...
├── assets/
│ ├── mykey_template.py # API-Key-Konfigurationsvorlage
│ ├── tools_schema.json # Definitionen für 9 atomare Tools
│ ├── sys_prompt*.txt # Systemprompts
│ └── tmwd_cdp_bridge/ # Browser-Injection-Plugin
├── memory/ # Verzeichnis für Memory/Speicher
└── temp/ # Temporäre Dateien & Logs
Schritt-für-Schritt-Anleitung
Step 1: Projekt & Abhängigkeiten installieren
Zuerst das Repository klonen und die Basisabhängigkeiten installieren:
# Repository klonen
git clone https://github.com/lsdefine/GenericAgent.git
cd GenericAgent
# Basisabhängigkeiten installieren
pip install requests
# GUI-Abhängigkeiten (Desktop-Modus)
pip install streamlit pywebview
# oder Abhängigkeiten für Terminal-UI installieren
pip install requests textual
TIP
Die Designidee von GenericAgent lautet „Agent installiert die Umgebung selbst“. Daher musst du nicht vorher zu viele Abhängigkeiten installieren. Lass den Agent selbst den Code lesen und sagen: „Bitte installiere alle benötigten Python-Abhängigkeiten“—er erledigt das für dich.
Step 2: API Key konfigurieren
Konfigurationsvorlage kopieren:
cp assets/mykey_template.py mykey.py
Bearbeite mykey.py und trage deine LLM-Konfiguration ein. Unten ist ein Beispiel mit Defapi (hier: Claude):
# Claude via Defapi-Relay nutzen (offiziell halbierter Preis)
native_claude_config = {
'name': 'claude-defapi', # Anzeigename
'apikey': 'sk-ant-your-defapi-key', # Key von Defapi
'apibase': 'https://api.defapi.org', # Defapi-Endpunkt
'model': 'claude-sonnet-4-6', # oder claude-opus-4-7
'fake_cc_system_prompt': True, # Relay-Dienst muss aktiviert sein
'thinking_type': 'adaptive',
'max_tokens': 16384,
}
WARNING
Wenn du einen Relay-Dienst vom CC-switch-Typ nutzt (z. B. Defapi, anyrouter usw.), musst du fake_cc_system_prompt: True setzen. Für echte Anthropic-Official-Endpunkte (direkt mit sk-ant--Prefix) ist das nicht nötig.
GenericAgent erkennt automatisch das Protokoll anhand des Variablennamens:
- enthält
native+claude→ NativeClaudeSession (nativer Tool-Feld-Ansatz) - enthält
native+oai→ NativeOAISession (OpenAI-natives Tool-Feld) - enthält
claude(ohnenative) → ClaudeSession (Text-Protokoll-Tools)
Step 3: GenericAgent starten
Zuerst testen, ob der Kommandozeilenmodus korrekt läuft:
python agentmain.py
Du solltest die Eingabeaufforderung > sehen und eine Anweisung eingeben, um zu testen:
> Erstelle auf dem Desktop eine hello.txt mit dem Inhalt „Hello World“
Wenn alles stimmt, führt der Agent die Aufgabe aus und gibt das Ergebnis zurück.
Zum Desktop-GUI-Modus wechseln:
python launch.pyw
Step 4: WeChat Bot integrieren
Der WeChat Bot unterstützt persönliches WeChat-QR-Login und ist damit am einfachsten zu integrieren.
Zusätzliche Abhängigkeiten installieren:
pip install pycryptodome qrcode requests
Konfiguration (optional—ohne geht es auch, aber empfohlen wird eine Whitelist):
Füge in mykey.py hinzu:
# WeChat-Whitelist: WeChat-ID eintragen; wenn leer, sind alle Nutzer erlaubt
wechat_allowed_users = []
WeChat Bot starten:
python frontends/wechatapp.py
Beim ersten Start erscheint ein QR-Code-Fenster. Scanne den Code mit WeChat, um zu bestätigen. Nach erfolgreichem Login wird dein WeChat zur Oberfläche, über die du mit GenericAgent sprichst.
TIP
Die Kommandos des WeChat Bots sind identisch mit denen der Desktop-Version: /new für ein neues Gespräch und /continue um historische Sessions wiederherzustellen.
Step 5: QQ Bot integrieren
Der QQ Bot nutzt die offizielle QQ-Roboter-API und benötigt kein Public-Webhook—er empfängt Nachrichten über eine WebSocket-Long-Connection.
Abhängigkeiten installieren:
pip install qq-botpy
Konfiguration:
- Erstelle unter QQ Open Platform einen Bot, um AppID und AppSecret zu erhalten
- Füge in
mykey.pyhinzu:
qq_app_id = "DEINE_APP_ID"
qq_app_secret = "DEIN_APP_SECRET"
qq_allowed_users = ["user_openid"] # oder ['*'] um alle zu erlauben
QQ Bot starten:
python frontends/qqapp.py
Nach der ersten Nachricht an den Bot wird die openid des Users in temp/qqapp.log gespeichert.
Step 6: Feishu Bot integrieren
Der Feishu Bot unterstützt viele Nachrichtstypen—Text, Rich Text, Bilder, Dateien, Audio sowie interaktive Karten usw.
Abhängigkeiten installieren:
pip install lark-oapi
Konfiguration:
- Erstelle auf der Feishu Open Platform eine Enterprise-„Self-built“-App und hole AppID sowie AppSecret
- Füge in
mykey.pyhinzu:
fs_app_id = "cli_xxxxxxxxxxxxxxxx"
fs_app_secret = "xxxxxxxxxxxxxxxx"
fs_allowed_users = ["ou_xxxxxxxxxxxxxxxx"] # oder ['*'] um alle zu erlauben
Feishu Bot starten:
python frontends/fsapp.py
TIP
Ein großes Highlight des Feishu Bots ist die Unterstützung für Vision-Modelle: Beim ersten Senden von Bildern werden diese auf echte multimodale Weise an einen Backend-Server geschickt, der OpenAI Vision-kompatibel ist. Wenn dein Agent Bilder „sehen“ soll, ist Feishu die beste Integrationsmöglichkeit.
Step 7: Validieren & Feintuning
Alle Bots unterstützen diese allgemeinen Kommandos:
/new- neues Gespräch starten und aktuellen Kontext löschen/continue- verfügbare wiederherstellbare Session-Snapshots auflisten/continue N- den N-ten historischen Gesprächsverlauf wiederherstellen
Test, ob Multi-Plattform gleichzeitig integriert werden kann:
Wenn du mehrere Bots gleichzeitig laufen lassen willst, öffne einfach mehrere Terminalfenster:
# Terminal 1: WeChat
python frontends/wechatapp.py
# Terminal 2: QQ
python frontends/qqapp.py
# Terminal 3: Feishu
python frontends/fsapp.py
WARNING
Mehrere Bots teilen sich dieselben memory/- und temp/-Verzeichnisse; die Memory ist unter Plattformen hinweg gemeinsam nutzbar. Das ist ein Vorteil (konsistenter Kontext über Plattformen), aber auch ein potenzielles Risiko—stelle sicher, dass dein Use Case zu diesem Design passt.
Häufige Probleme & Troubleshooting
1. Authentifizierungsfehler nach API-Key-Konfiguration
Ursache:Variablennamen falsch geschrieben oder falsche Konfiguration von fake_cc_system_prompt
Lösung:
- Stelle sicher, dass der Variablenname die richtigen Schlüsselwörter enthält (z. B.
native_claude,oai_configusw.) - Relay-Dienst muss
fake_cc_system_prompt: Truesetzen - Prüfe, ob
apibasekorrekt ist (z. B. Defapi nutzthttps://api.defapi.org)
2. Nach WeChat-QR-Scan Login schlägt fehl
Ursache:WeChat-Risiko-/Kontrollmechanismen begrenzen Login auf neuen Geräten
Lösung:
- Login auf dem Handy bestätigen (manchmal ist eine zweite Bestätigung nötig)
- Sicherstellen, dass das WeChat-Konto kein ungewöhnliches Verhalten zeigt
- Bot-Nutzungsfrequenz reduzieren, um nicht in Risiko-/Kontrollregeln zu geraten
3. QQ Bot erhält keine Nachrichten
Ursache:Der Bot ist nicht aktiviert oder Berechtigungen wurden falsch konfiguriert
Lösung:
- Auf der QQ Open Platform prüfen, ob der Bot aktiviert ist
- Prüfen, ob das Event-Subscription korrekt hinzugefügt wurde (dafür muss
Private Chat Messageabonniert werden) temp/qqapp.logansehen, um zu prüfen, ob die User-openid korrekt gespeichert wird
4. Feishu Bot reagiert sehr langsam
Ursache:LLM-Inferenz ist an sich langsam oder die Netzwerk-Latenz ist hoch
Lösung:
- Nutze ein schnelleres Modell (z. B. GPT-4o-mini, MiniMax-M2)
- Latenz vom Netzwerk zur LLM-API prüfen
max_tokensangemessen reduzieren, um die Antwort auf das erste Token zu beschleunigen
5. Bot kann den Gesprächskontext nicht speichern
Ursache:Das Kommando /new wurde ausgeführt oder die Session ist abgelaufen
Lösung:
- Mit
/continuehistorische Sessions wiederherstellen - Prüfen, ob im
memory/-Verzeichnis Schreibrechte vorhanden sind - Prüfen, ob es in
temp/model_responses/Session-Aufzeichnungen gibt
6. Beim Start Laufzeitfehler: ModuleNotFoundError
Ursache:Fehlende Dependency-Pakete
Lösung:
# Lass den Agent selbst installieren
> Bitte installiere alle benötigten Python-Abhängigkeiten
# oder manuell häufige Abhängigkeiten installieren
pip install requests pycryptodome qrcode streamlit pywebview
Weiterführende Lektüre / Fortgeschrittene Richtung
Browser-Automatisierungsfähigkeiten
Sobald du die Web-Tools entsperrst, kann GenericAgent in einemechten Browser mit deiner eingeloggten Session agieren:
> Führe web setup sop aus und entsperre die web tools
Danach kannst du es so verwenden:
> Öffne Taobao, suche nach iPhone 16 und sortiere nach Preis
> Gehe zu Bilibili und schaue dir die zuletzt angesehenen Videos an
Das Browser-Plugin befindet sich in assets/tmwd_cdp_bridge/ und unterstützt gängige Browser wie Chrome/Edge.
Detaillierte Erklärung des Self-Evolution-Mechanismus
Der Kernunterschied von GenericAgent liegt darin, dass nach jeder erledigten Aufgabe der Ausführungspfad automatisch zu einem Skill festgeschrieben wird. Beim nächsten Mal, wenn eine ähnliche Aufgabe auftaucht, kann man den Skill direkt aufrufen—ohne erneut herumzutesten.
Das bedeutet:
- Je länger du es nutzt, desto besser versteht der Agent deinen Arbeitsworkflow
- Der Skill-Baum gehört vollständig dir und ist nicht mit „vorgefertigten Skills“ anderer identisch
- Aus 3K-Zeilen-Seed-Code können sich unbegrenzte Möglichkeiten entwickeln
Skill-Bibliothek-Ökosystem
Die Community hat bereits Skill-Bibliotheken im Millionenbereich gesammelt (WeChat-Artikel). Du kannst:
- Den Agent suchen lassen:
Hilf mir, einen Skill für XXX zu finden - Direkten Import machen:
Besuche XXX und führe diesen Skill aus
Advanced-Modus
Alle erweiterten Funktionen von GenericAgent sind selbstdokumentierend—frage den Agent einfach direkt:
| Modus | Frage Agent |
|---|---|
| Reflect (Reflexion) | Sieh dir meinen Code an und sag mir, wie man deinen Reflect-Modus aktiviert |
| Geplante Aufgaben | Sieh dir meinen Code an und sag mir, wie man deinen Modus für geplante Aufgaben aktiviert |
| Plan (Planung) | Sieh dir meinen Code an und sag mir, wie man deinen Plan-Modus aktiviert |
| Subagent | Sieh dir meinen Code an und sag mir, wie man deinen Subagent-Modus aktiviert |
| Autonome Exploration | Sieh dir meinen Code an und sag mir, wie man deinen autonomen Explorationsmodus aktiviert |
TIP
Das ist die Kernidee von GenericAgent: Code ist Dokumentation. Der Agent kann seinen eigenen Quellcode verstehen—jede Funktion kann direkt bei ihm erfragt werden.
Programmierfähigkeiten im Vergleich zu Claude Code
Viele Entwickler haben eine Frage: Kann GenericAgent Claude Code oder Codex ersetzen?
Antwort: Ja, aber nicht vollständig.
Programmierfähigkeiten von GenericAgent
GenericAgent führt beliebigen Code über das code_run-Tool aus. In Kombination mit Dateioperationen wie file_read/file_write/file_patch ist die Programmierfähigkeit vollständig. Solange du ein Modell einsetzt, das gut programmiert (z. B. Claude oder GPT-4o), kann es:
- Dateien lesen und schreiben
- Befehle in der Kommandozeile ausführen
- Code debuggen
- Logik von Code erklären
# Claude als Backend konfigurieren
native_claude_config = {
'apikey': 'your-key',
'apibase': 'https://api.defapi.org',
'model': 'claude-sonnet-4-6',
'fake_cc_system_prompt': True,
}
Und dann direkt mit natürlicher Sprache programmieren:
> Schreibe mir eine Funktion für QuickSort und führe Tests aus
> Implementiere einen HTTP-Server in Python
> Erkläre, wie diese React-Komponente funktioniert
Unterschiede zu Claude Code / Codex
| Feature | GenericAgent | Claude Code / Codex |
|---|---|---|
| Programmierfähigkeit | Vollständig (Datei + Codeausführung) | Vollständig |
| Kontextverbrauch | <30K Tokens (sehr sparsam) | 200K–1M Tokens (größerer Kontext) |
| Evolutionsfähigkeit | Jede Aufgabe hinterlässt Skills; Skills wachsen zwischen Sessions | Keine Zustands-/Statusinformation zwischen Sessions |
| Bereitstellungsart | pip install + API Key | CLI-Tools + Subscription |
Der entscheidende Unterschied ist: Claude Code arbeitet über sein eigenes Protokoll und Toolchain (ähnlich MCP). GenericAgent kann diese daher nicht direkt anrufen. Aber es gibt folgende indirekte Wege:
Methode 1: Parallel mit Codeg verwenden
Codeg kann GenericAgent + Claude Code + Codex gleichzeitig starten—und in derselben UI zusammenarbeiten:
# GenericAgent und Codeg im selben Workspace-Hauptordner ablegen
/workspace/
├── GenericAgent/
└── codeg/
# Codeg erkennt GenericAgent automatisch und nutzt es parallel
Methode 2: Über API-Relay/Umleitung
Die NativeClaudeSession von GenericAgent verwendet ein Claude-Code-kompatibles Protokoll. Wenn ein Relay-Dienst (z. B. Defapi) Claude-Code-Transparenz unterstützt, kannst du die Programmierschnittstelle von Claude über GenericAgent nutzen:
# GenericAgent programmiere mit Claude-Fähigkeiten
native_claude_config = {
'name': 'claude-defapi',
'apikey': 'your-defapi-key',
'apibase': 'https://api.defapi.org',
'model': 'claude-sonnet-4-6',
'fake_cc_system_prompt': True, # Claude-Code-Protokoll-Durchleitung
}
Fazit
| Problem | Antwort |
|---|---|
| Kann GenericAgent programmieren? | Ja—Dateioperationen + Codeausführung sind vollständig |
| Kann es Claude Code direkt aufrufen? | Nein—Claude Code ist ein separates Tool |
| Kann es wie Claude Code programmieren? | Ähnlich, aber das Erlebnis hängt vom Backend-Modell ab |
| Kann man es parallel nutzen? | Ja—das Codeg-Projekt unterstützt die Zusammenarbeit mehrerer Agents |
TIP
Wenn du sowohl die Claude-Code-Programmier-Experience als auch die Automatisierungsfähigkeit von GenericAgent willst, probiere Codeg + GenericAgent: In einer Unterhaltung arbeiten mehrere Agents gleichzeitig zusammen—Claude Code fokussiert aufs Schreiben von Code, GenericAgent übernimmt die Automatisierung.
Referenz
- GitHub: lsdefine/GenericAgent
- Technischer Bericht: arXiv:2604.17091
- Einsteiger-Tutorial: Datawhale Hello GenericAgent
- Konfigurationsanleitung für Feishu: assets/SETUP_FEISHU.md