KI-Verwendung bei "größeren" Programmierprojekten, sowie bspw. VBA

ch0815

Cadet 3rd Year
Registriert
Jan. 2024
Beiträge
34
Das sind nun 2 Fragen, gehören aber irgendwie zusammen:
Ich bin kein Programmierer, darf aber ab und zu beruflich etwas skripten früher regelmäßig python und shell-script, jetzt hab ich nur noch Windows und mach hier nur gelegentlich etwas. Zuletzt etwas in python, javascript und html mit Hilfe von github copilot in vs-code. Davon hab ich auch nur begrenzt Ahnung aber es hat funktioniert.
Da der copilot über vscode Zugriff auf das ganze Projektverzeichnis hat, kann er ja alle Skripte nachschauen, trotzdem hat er keinen dauerhaften Gesamtüberblick über das Projekt und muss bei Bedarf jedesmal neu nachschauen in den entsprechenden Skripten.

Kann man das ändern, so dass sich die KI Dinge des Projektes quasi dauerhaft merkt? Wenn man versteht was ich meine.

Und jetzt aktuell mache ich etwas in Access und VBA, von beidem habe ich bis jetzt noch wenig Ahnung. Problem ist hier, dass man nur VBA-Code nach vscode bringen kann, den dann der copilot direkt sieht. Muss man dann aber für jedes Modul oder Codeschnippsel hinter Steuerelementen etc. separat machen. Die KI hat mir rubberduckvba empfohlen, damit kann man zumindest leichter exportieren und wieder importieren. Aber trotzdem extrem nervig.
Die MS IDE für VBA ist ja eher Schrott...

Das andere Problem sind aber die Dinge in Access (oder jedem anderen Office-Programm), die der User manuell zusammenklicken muss, Abfragen, Formulare, Tabellen anlegen etc.
Das muss ich der KI alles mühsam beschreiben, und v.a. vergisst der copilot dann später wie jetzt diese oder jene Tabelle hieß und schlägt plötzlich neue Namen vor, was mich dann erst recht verwirrt.
Gibts da keine andere Lösung?

Gut, der Nebeneffekt ist, dass ich dadurch auch selbständig was lerne, trotzdem ists extrem mühsam so.

Dazu kommt noch, dass das ganze auf einer VM des Kunden implementiert wird, wo jeglicher Zugriff auf KIs gesperrt ist.
Daher läuft copilot auf meinem Rechner, Text kann von meinem Rechner in die VM kopiert werden, umgekehrt nicht (da muss mans verschlüsselt per mail schicken...)
 
ch0815 schrieb:
Kann man das ändern, so dass sich die KI Dinge des Projektes quasi dauerhaft merkt? Wenn man versteht was ich meine.
Ja: Einfach eine "AGENTS.md" Datei in dein Projektverzeichnis legen - diese Datei liest die KI sozusagen immer. Dort kannst du Dinge reinschreiben über das gewünschte Verhalten oder das Projekt. MD heißt "Markdown" - im Grunde reine Textdatei aber du kannst Formatierungen einfügen.

Ich schreibe da gerne einen Projektüberblick rein und ein Kapitel "Verhalten" bzw. "Behavior" da steht dann sowas wie: "Don't touch code unasked - show me you changes first", "Obey to DRY and YAGNI principles"..

Du kannst ihn aber auch anweisen sich sachen zu merken: "Notiere was ich dire gerade gesagt hab damit due es dir merkst" Dann wird er sich selbst eine md Datei schreiben.



Von VBA habe ich leider keine Ahnung. Hilft vielleicht das: https://marketplace.visualstudio.com/items?itemName=local-smart.excel-live-server ?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ch0815
Ich würd einen Schritt weitergehen und dem Agent sagen er soll selbst so ein File erstellen :D Das ist auch insofern manchmal notwendig weil das Context Window in einer Session manchmal zu groß wird. Claude Code beginnt dann ohnehin von selbst die Conversation zu komprimieren aber ein Manifest in dem das Gedächtnis und Rules festgehalten werden ist immer vorteilhaft.
 
Zuletzt bearbeitet:
Nein, die KI kann sich nicht dauerhaft Dinge merken. Das wäre sehr teuer da es sehr große Datenmengen wären. Die KIs cachen ein bißchen, also innerhalb einer Konversation wird da nicht immer alles neu berechnet solange man nicht zu lange wartet mit dem antworten.

Sowas wie AGENTS.md kann helfen, aber die wird jedes Mal neu eingelesen und das sind dann auch Token die du bezahlen musst.

Access und VBA darin sind alte Technologien. Agentenbasierte KI funktioniert halt am besten mit rein textbasiertem Code, irgendwie muss die da ja navigieren, suchen und editieren können.

Das Setup mit der VM ist halt Blödsinn, oder die Daten so sensitiv dass sie halt wirklich nicht in einer KI landen. Wenn der Kunde das so will und die Arbeitsmittel vorgibt, dann musst du den Kram per Hand schreiben, wie früher.
 
Für Coding auf jedenfall Claude AI nutzen. Mit Abstand die beste KI dafür.

Damit kann ich über Wochen an einem Projekt arbeiten mit konsistenten Ergebnissen
 
Ok, danke schon mal, also gehts tatsächlich nicht viel anders. AGENTS.md ist aber ein gutes Stichwort, danke.


Dalek schrieb:
Access und VBA darin sind alte Technologien. Agentenbasierte KI funktioniert halt am besten mit rein textbasiertem Code, irgendwie muss die da ja navigieren, suchen und editieren können.
Klar, das ist ja hier das Problem, dass die Office-Sachen Mischungen aus Klicki-Oberfläche und Code sind.
Wenn hinter den zusammenklickbaren Sachen auch direkt überall Code stünde, wäre es kein so großes Problem, ist ja aber wohl nicht so.
Und was heißt veraltet? MS Office und VBA sind ja nicht veraltet, ist ja alles aktuell. Das Arbeitsprinzip passt halt nicht zu reinen LLMs.


Dalek schrieb:
Das Setup mit der VM ist halt Blödsinn, oder die Daten so sensitiv dass sie halt wirklich nicht in einer KI landen. Wenn der Kunde das so will und die Arbeitsmittel vorgibt, dann musst du den Kram per Hand schreiben, wie früher.
Die Daten sind tlw. sehr sensibel, weil teuer ermittelt, und wir arbeiten mit CAD, Designdaten, die sind eh hochsensibel und da brauchen wir auch entsprechend ausgestattete VMs (128 GB RAM bspw.).

Ich bins schon von meinem früheren Projekt gewohnt mit Fake-Daten zu arbeiten auf dem lokalen Rechner, und da zu entwickeln und das dann auf der Kunden VM zu implementieren und mit den realen Daten zu testen. Ist halt so. Ich bin mir sicher dass man beim Kunden entsprechende Berechtigungen beantragen kann um KI zu nutzen, aber das dürfte ein Aufwand wie bei ner Behörde sein, und für nur sporadisch was machen wird das evtl. eh abgelehnt. Ist keine ganz kleine Firma. Je größer desto behördenähnlicher.
Die kleine website die ich da gebastelt hatte um Daten zu visualisieren läuft komplett lokal ohne webserver, da ich gar nicht erst versucht habe für das bisschen einen webserver zu beantragen, ich kenne das aus dem früheren Projekt wo es aber zumindest absolut notwendig war einen zu haben.
Ergänzung ()

Micha- schrieb:
Für Coding auf jedenfall Claude AI nutzen. Mit Abstand die beste KI dafür.
ich hab die Access-Sache nicht in vscode begonnen sondern im chat auf github, dort aber auf Claude Sonnet 4.6 gestellt. Ich mach da nur sporadisch was, deswegen hat er in dieser session wohl auch schon einiges vergessen.
bin dann mit dem vba code des Hauptmoduls doch in vscode umgezogen, wahrscheinlich werde ich da nochmal komplett neu anfangen (im Moment lerne ich ja haupsächlich) und mal sehen ob ich auch das Access-Projekt in einer AGENTS.md beschreiben kann, das wäre sowieso eh nicht verkehrt, das auszuformulieren soweit ich schon weiß wo es hingeht.
 
Zuletzt bearbeitet:
Die KI kann auch selbst die agents.md erstellen
 
Ja klar, aber nur von dem code und dem der schon vorhanden ist. ich denke an eine allgemeine beschreibung des projekts, was soll etwa wie wo gemacht werden.
hier z.b. etliche access-Tabellen zusammenfassen, binäre Anhänge auslagern und entsprechend Abfragen und Formulare erstellen, aber da muss ich eh noch in kleinen Schritten dazu lernen was möglich ist. naja vll. frag ich hier im entsprechenden Bereich dann auch mal nach.
 
@ch0815 Claude mit Openwolf von Github. Projektstruktur + Strukturdiagramm und dann Bugs Listing, DoNotRepeat Listing, Todo Liste usw.. Lässt sich da alles einfügen. Das Cerebrum merkt sich alles wenn du es vor Abschluss deiner täglichen Tätigkeit sicherst und greift dann auf den Wissensstand zurück bei jeder neuen Session.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: madmax2010
Dalek schrieb:
Nein, die KI kann sich nicht dauerhaft Dinge merken. Das wäre sehr teuer da es sehr große Datenmengen wären
Schau dir mal RAG an.
Relativ einfach mit postgres.
Ich habe 100k emails und erheblich mehr Todos, instant messages, notizen und Doku darin und füttere meine lokalen KIs damit.

Zu agents.md und skills haben die anderen schon genug gesagt.



Micha- schrieb:
Für Coding auf jedenfall Claude AI nutzen. Mit Abstand die beste KI dafür.
Fürs frontend definitiv, für performante und komplexe Themen gehe ich gerade eher auf kimi, deepseekv4 und Codex wenn es gut werden soll.
Ich baue gerade aus Spaß ein Betriebssystem. Eigener compiler, hochsprache , 2d ray tracing, Netzwerk stack, Textverarbeitung und minimaler mail client sind schon fertig. Claude ist da hart gescheitert .
Ergänzung ()

ch0815 schrieb:
Ja klar, aber nur von dem code und dem der schon vorhanden ist. ich denke an eine allgemeine beschreibung des projekts, was soll etwa wie wo gemacht werden.
hier z.b. etliche access-Tabellen zusammenfassen, binäre Anhänge auslagern und entsprechend Abfragen und Formulare erstellen, aber da muss ich eh noch in kleinen Schritten dazu lernen was möglich ist. naja vll. frag ich hier im entsprechenden Bereich dann auch mal nach.
All das kannst du auch in markdown files legen und / oder prompte
 
Ich hab mir für vba eine eigene Exportfunktion schreiben lassen. Die Exportiert allen Code aus dem Projekt in eine txt Datei auf dem Desktop. Die txt datei schiebe ich dann in eine KI meiner Wahl und dann legt die KI los.

Einziger Nachteil, die UI kann die KI so erstmal nicht sehen. Aber ggf kann man die auch exoprtieren und hochladen, das hab ich noch nie probiert
 
Dazu hab ich rubberduckvba eingebunden, schreibt ein .bas file raus, das man in vscode öffnen, mit der KI bearbeiten und wieder zurückimportieren kann. Wobei copy-paste eigentlich schneller geht... rubberduckvba fügt in der IDE von MS noch ein paar Funktionen hinzu, hab ich mir aber noch nicht angeschaut. Mach das lieber extern in vscode.
edit: man kann alle module etc. mit rubberduckvba auf einmal exportieren zu Einzelfiles, Import geht nur einzeln anscheinend. Ich nehme an du schreibst alles in eine Datei und liest dann wieder alles komplett ein und aktualisierst den code? das ist natürlich eleganter.
Die UI ist eben das Problem. Ich glaube nicht, dass die irgendwo in code beschrieben ist. Die muss man händisch zusammenklicken. Ist natürlich einfacher für den Anwender.

Ah man kann per

Code:
Application.SaveAsText acForm, "DeinFormularName", "C:\Temp\DeinFormular.txt"

Application.LoadFromText acForm, "DeinFormularName", "C:\Temp\DeinFormular.txt"

Formulare exportieren und auch wieder reimportieren. Ist aber auch mühsam.
 
Zuletzt bearbeitet:
Zurück
Oben