310 lines
4.5 KiB
Plaintext
310 lines
4.5 KiB
Plaintext
# AI Code Assistant
|
|
|
|
Ein modularer KI-gestützter Coding-Assistent mit Tool-Ausführung, Datei-Kontextverwaltung und optionaler selbstreflektierender Agentenlogik.
|
|
|
|
---
|
|
|
|
# Übersicht
|
|
|
|
Dieses Projekt ist ein erweiterbarer AI-Code-Assistent, der entwickelt wurde, um:
|
|
|
|
* Code zu verstehen und zu erklären
|
|
* Dateien zu bearbeiten und zu verwalten
|
|
* Code auszuführen und Fehler zu analysieren
|
|
* Dynamisch Tools zu verwenden
|
|
* Antworten iterativ zu verbessern
|
|
|
|
Die Anwendung kombiniert einen agentischen Workflow mit einer Reflexions-Engine, um qualitativ hochwertige Antworten und Code-Verbesserungen zu erzeugen.
|
|
|
|
---
|
|
|
|
# Projektstruktur
|
|
|
|
```
|
|
main.py
|
|
|
|
src/
|
|
│
|
|
├── backend/
|
|
│ ├── chat_manager.py
|
|
│ ├── reflection_engine.py
|
|
│ ├── execution_engine.py
|
|
│ ├── file_manager.py
|
|
│ ├── llm_client.py
|
|
│ ├── system_prompter.py
|
|
│ ├── tools.py
|
|
│ └── ...weitere Backend-Module
|
|
│
|
|
└── ui/
|
|
└── ...Frontend- und UI-Dateien
|
|
```
|
|
|
|
---
|
|
|
|
# Architektur
|
|
|
|
## main.py
|
|
|
|
Der Einstiegspunkt der Anwendung.
|
|
|
|
Verantwortlich für:
|
|
|
|
* Initialisierung der Anwendung
|
|
* Starten der Streamlit-Oberfläche
|
|
* Verbinden aller Backend-Komponenten
|
|
* Laden der UI
|
|
|
|
---
|
|
|
|
# Backend (`src/backend`)
|
|
|
|
Enthält die gesamte Kernlogik der Anwendung.
|
|
|
|
---
|
|
|
|
## chat_manager.py
|
|
|
|
Zentrale Steuerungseinheit des Assistenten.
|
|
|
|
Aufgaben:
|
|
|
|
* Verwaltung der Konversation
|
|
* Agentischer Tool-Loop
|
|
* Datei-Kontextverwaltung
|
|
* Integration der Reflection Engine
|
|
* Tool-Ausführung
|
|
* Kommunikation zwischen UI und Backend
|
|
|
|
Der `ChatManager` bildet das Herzstück der Anwendung.
|
|
|
|
---
|
|
|
|
## reflection_engine.py
|
|
|
|
Implementiert den selbstreflektierenden Agenten-Workflow.
|
|
|
|
Funktionen:
|
|
|
|
* Bewertung von Antworten
|
|
* Analyse von Schwächen
|
|
* Iterative Verbesserung von Antworten
|
|
* Qualitätsbewertung über Score-System
|
|
* Automatisches Stoppen bei erreichter Qualität
|
|
* Unterstützung von Tool-Aufrufen während der Verbesserung
|
|
|
|
---
|
|
|
|
## execution_engine.py
|
|
|
|
Verantwortlich für:
|
|
|
|
* Ausführen von Dateien
|
|
* Ausführen von Code-Snippets
|
|
* Erfassen von stdout und stderr
|
|
* Rückgabe von Debug-Logs
|
|
|
|
---
|
|
|
|
## file_manager.py
|
|
|
|
Verwaltet:
|
|
|
|
* Lesen von Dateien
|
|
* Schreiben von Dateien
|
|
* Aktive Datei-Kontexte
|
|
|
|
---
|
|
|
|
## tools.py
|
|
|
|
Definiert verfügbare Tools und das Tool-Registry-System.
|
|
|
|
Beispiele:
|
|
|
|
* read_file
|
|
* edit_file
|
|
* execute_file
|
|
* execute_code
|
|
* search
|
|
|
|
---
|
|
|
|
## llm_client.py
|
|
|
|
Kommunikation mit dem verwendeten LLM/API.
|
|
|
|
---
|
|
|
|
## system_prompter.py
|
|
|
|
Erstellt dynamische Systemprompts inklusive:
|
|
|
|
* Datei-Kontext
|
|
* Tool-Beschreibungen
|
|
* Laufzeitinformationen
|
|
|
|
---
|
|
|
|
# UI (`src/ui`)
|
|
|
|
Enthält sämtliche Frontend- und Benutzeroberflächen-Komponenten.
|
|
|
|
Mögliche Funktionen:
|
|
|
|
* Chat-Oberfläche
|
|
* Dateiansicht
|
|
* Tool-Aktivitätsanzeige
|
|
* Reflection-Status
|
|
* Ausgabe von Logs und Fehlern
|
|
|
|
---
|
|
|
|
# Reflection-System
|
|
|
|
Der Assistent kann Antworten automatisch analysieren und verbessern.
|
|
|
|
Ablauf:
|
|
|
|
1. Initiale Antwort erzeugen
|
|
2. Antwort bewerten
|
|
3. Schwächen identifizieren
|
|
4. Antwort verbessern
|
|
5. Wiederholen bis Qualitätsziel erreicht ist
|
|
|
|
---
|
|
|
|
## Reflection Workflow
|
|
|
|
```
|
|
Benutzeranfrage
|
|
↓
|
|
Erste Antwort
|
|
↓
|
|
Kritik & Analyse
|
|
↓
|
|
Qualitätsbewertung
|
|
↓
|
|
Verbesserung
|
|
↓
|
|
Optimierte Antwort
|
|
```
|
|
|
|
---
|
|
|
|
## Reflection-Konfiguration
|
|
|
|
Im `ChatManager`:
|
|
|
|
```python
|
|
self.reflection_enabled = True
|
|
self.reflection_max_rounds = 3
|
|
self.reflection_threshold = 8.5
|
|
```
|
|
|
|
---
|
|
|
|
## Reflection aktivieren/deaktivieren
|
|
|
|
```python
|
|
chat_manager.set_reflection(
|
|
enabled=True,
|
|
max_rounds=3,
|
|
threshold=8.5
|
|
)
|
|
```
|
|
|
|
---
|
|
|
|
# Features
|
|
|
|
* Tool-basierter KI-Agent
|
|
* Iterative Antwortverbesserung
|
|
* Selbstreflektierende Analyse
|
|
* Datei-Kontextintegration
|
|
* Code-Ausführung
|
|
* Modulare Architektur
|
|
* Streamlit-UI
|
|
* Dynamische Tool-Registry
|
|
* Debug- und Fehleranalyse
|
|
* JSON-basierte Agent-Kommunikation
|
|
|
|
---
|
|
|
|
# Installation
|
|
|
|
## 1. Repository klonen
|
|
|
|
```bash
|
|
git clone <repository-url>
|
|
cd <projektname>
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Virtuelle Umgebung erstellen
|
|
|
|
### Windows
|
|
|
|
```bash
|
|
python -m venv venv
|
|
venv\Scripts\activate
|
|
```
|
|
|
|
### Linux / macOS
|
|
|
|
```bash
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Abhängigkeiten installieren
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
---
|
|
|
|
# Anwendung starten
|
|
|
|
Die Anwendung wird über Streamlit gestartet:
|
|
|
|
```bash
|
|
streamlit run main.py
|
|
```
|
|
|
|
---
|
|
|
|
# Beispielanfragen
|
|
|
|
## Code erklären
|
|
|
|
```
|
|
Was macht diese Funktion?
|
|
```
|
|
|
|
---
|
|
|
|
## Datei bearbeiten
|
|
|
|
```
|
|
Füge Kommentare zu dieser Datei hinzu
|
|
```
|
|
|
|
---
|
|
|
|
## Datei ausführen
|
|
|
|
```
|
|
Führe die aktuelle Datei aus
|
|
```
|
|
|
|
---
|
|
|
|
## Fehler analysieren
|
|
|
|
```
|
|
Warum tritt dieser Fehler auf?
|
|
``` |