Go Forward LLM – uniwersalny agent do automatyzacji i ciągłego udoskonalania projektów programistycznych przy pomocy LLM.
Celem projektu jest umożliwienie automatycznego uruchamiania, walidacji i naprawy projektów niezależnie od języka programowania oraz struktury repozytorium. Agent korzysta z warstwowych mechanizmów naprawczych i dynamicznego generowania skryptów przy użyciu promptów.
Zamiast ręcznego uruchamiania kolejnych komend, agent realizuje koncepcję self-healing pipelines:
make install # instalacja zależności
make validate # walidacja projektu
make repair # automatyczne naprawy
make test # testy jednostkowe i regresyjne
make run # uruchomienie projektu
Jeśli któraś z warstw nie powiedzie się:
W ten sposób projekt jest ciągle przesuwany do przodu, nawet jeśli występują błędy w konfiguracji lub zależnościach.
Agent automatycznie wykrywa pliki startowe i targety w projekcie:
run lub start.main.*, app.*, index.*.Dzięki temu działa niezależnie od języka programowania.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/wronai/go-forward-llm/main/dev_agent.sh)"
Jak działa:
curl pobiera skrypt z repozytorium.bash -c uruchamia go bezpośrednio w powłoce.Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/wronai/go-forward-llm/main/dev_agent.ps1')
Jak działa:
install → validate → repair → test → run).Użycie:
chmod +x dev_agent.sh
./dev_agent.sh
Użycie:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\dev_agent.ps1
Nowa wersja agenta wykrywa strukturę projektu i automatycznie dopasowuje komendę startową w zależności od najczęściej używanego języka. Obsługuje Python, Node.js, C/C++, Java i inne.
src/, bin/, app/.python main.pynode index.jsmake run lub kompilacja gcc/g++javac Main.java && java MainREADME.md i Makefile.bash -c "$(curl -fsSL https://raw.githubusercontent.com/wronai/go-forward-llm/main/smart_agent.sh)"
Świetnie! Przygotowałem kompletną aktualizację repozytorium **Go-Forward-LLM**. Zawiera inteligentnego agenta (`smart_agent.sh` i `smart_agent.ps1`) oraz zaktualizowany README zgodnie z dokumentacją, którą przed chwilą opracowaliśmy.
Poniżej struktura i przykładowe pliki:
## **1. Struktura repozytorium**
```bash
go-forward-llm/
│
├─ README.md
├─ smart_agent.sh # Linux agent – auto-detect project
├─ smart_agent.ps1 # Windows PowerShell agent – auto-detect project
└─ .gitignore
Nowa wersja agenta wykrywa strukturę projektu i automatycznie dopasowuje komendę startową w zależności od najczęściej używanego języka. Obsługuje Python, Node.js, C/C++, Java i inne.
src/, bin/, app/.python main.pynode index.jsmake run lub kompilacja gcc/g++javac Main.java && java MainREADME.md i Makefile.bash -c "$(curl -fsSL https://raw.githubusercontent.com/wronai/go-forward-llm/main/smart_agent.sh)"
Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/wronai/go-forward-llm/main/smart_agent.ps1')
src/, bin/, app/.chmod +x smart_agent.sh
./smart_agent.sh
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\smart_agent.ps1
#!/bin/bash
# Go-Forward-LLM Smart Agent (Linux)
PROJECT_DIR=$(pwd)
echo ">> Wykrywanie katalogów..."
for DIR in src bin app; do
if [ ! -d "$DIR" ]; then
echo ">> Tworzenie katalogu $DIR"
mkdir -p "$DIR"
fi
done
echo ">> Wykrywanie najczęściej używanego języka..."
EXT=$(find . -type f \( -name "*.py" -o -name "*.js" -o -name "*.c" -o -name "*.cpp" -o -name "*.java" \) \
| sed 's/.*\.//' | sort | uniq -c | sort -nr | head -1 | awk '{print $2}')
echo ">> Najczęściej używany język: $EXT"
case $EXT in
py)
CMD="python main.py"
;;
js)
CMD="node index.js"
;;
c|cpp)
if [ -f Makefile ]; then
CMD="make run"
else
CMD="g++ src/*.cpp -o bin/app && ./bin/app"
fi
;;
java)
CMD="javac src/*.java && java -cp src Main"
;;
*)
CMD="echo 'Nieznany język, sprawdź README lub Makefile'"
;;
esac
echo ">> Uruchamianie projektu: $CMD"
eval $CMD
# Go-Forward-LLM Smart Agent (Windows PowerShell)
$projectDir = Get-Location
Write-Host ">> Wykrywanie katalogów..."
foreach ($dir in "src","bin","app") {
if (-not (Test-Path $dir)) {
Write-Host ">> Tworzenie katalogu $dir"
New-Item -ItemType Directory -Path $dir
}
}
Write-Host ">> Wykrywanie najczęściej używanego języka..."
$exts = @("*.py","*.js","*.c","*.cpp","*.java")
$files = @()
foreach ($e in $exts) {
$files += Get-ChildItem -Recurse -Filter $e -File
}
$ext = ($files | Group-Object Extension | Sort-Object Count -Descending | Select-Object -First 1).Name.TrimStart(".")
Write-Host ">> Najczęściej używany język: $ext"
switch ($ext) {
"py" { $cmd = "python main.py" }
"js" { $cmd = "node index.js" }
"c" { if (Test-Path "Makefile") { $cmd="make run" } else { $cmd="gcc src\*.c -o bin\app.exe; .\bin\app.exe" } }
"cpp"{ if (Test-Path "Makefile") { $cmd="make run" } else { $cmd="g++ src\*.cpp -o bin\app.exe; .\bin\app.exe" } }
"java"{ $cmd = "javac src\*.java; java -cp src Main" }
default { $cmd = "Write-Host 'Nieznany język, sprawdź README lub Makefile'" }
}
Write-Host ">> Uruchamianie projektu: $cmd"
Invoke-Expression $cmd