Skip to content
BotServBotServ
Codebase MemoryKI-AgentCodingSpeicherRAG

Codebase Memory

Codebase Memory verstehen: Langzeitgedächtnis für Code-Agenten und Wissensaufbau aus Projekten.

S

schutzgeist

2 min read
Codebase Memory für Code-Agenten

Codebase Memory

Was dieser Artikel behandelt

  • Was Codebase Memory bedeutet und wozu es dient.
  • Wie ein Code-Agent aus einem Repository Wissen aufbauen kann.
  • Welche Werkzeuge und Ansätze es dafür gibt.
  • Wie man eine eigene Code-Wissensdatenbank aufbaut.
  • Typische Herausforderungen und Lösungen.

Einleitung

Code-Agenten wie OpenHands oder AutoGen können zwar Code lesen und bearbeiten, aber sie vergessen zwischen den Sitzungen oder übersehen Zusammenhänge. Codebase Memory soll das ändern: Es baut ein Langzeitgedächtnis aus dem Projekt auf, das Agenten bei neuen Aufgaben wieder abfragen können. Statt jedes Mal alle Dateien neu zu lesen, greift der Agent auf eine vorbereitete Wissensdatenbank zurück.

Codebase Memory kurz erklärt

Stell Dir vor, ein Agent würde eine Datei lesen und sich merken: “Die API-Keys werden in config.py geladen, die Validierung passiert in auth.py, und der E-Mail-Versand nutzt den Service aus mailer.py.” Dieses Wissen wird in Vektoren oder einem Graphen gespeichert. Bei der nächsten Aufgabe sucht der Agent danach und muss nicht wieder alles durchforsten.

Ansatz und Werkzeuge

Codebase Memory ist kein einzelnes Tool, sondern ein Konzept. Typische Bausteine sind:

  • Parser - Dateien in sinnvolle Teile zerlegen.
  • Embeddings - Code in Vektoren umwandeln.
  • Vektordatenbank - Chroma, Qdrant oder pgvector speichern das Wissen.
  • Graphen - Abhängigkeiten zwischen Klassen und Funktionen abbilden.

Eigene Codebase Memory aufbauen

  1. Repository parsen: Verwende ein Tool wie tree-sitter oder ast-grep, um Funktionen, Klassen und Imports zu extrahieren.
  2. Chunks erzeugen: Teile den Code in sinnvolle Blöcke.
  3. Embeddings erzeugen: Nutze ein Code-Embedding-Modell wie jina-embeddings oder BAAI/bge-base-en-v1.5.
  4. Vektordatenbank füllen: Speichere Chunks mit Metadaten wie Dateipfad und Zeilennummer.
  5. Abfrage bauen: Der Agent fragt: “Welche Funktionen bearbeiten E-Mail-Validierung?”

Ein simples Beispiel mit Python und Chroma:

import chromadb
from sentence_transformers import SentenceTransformer

client = chromadb.PersistentClient(path="./code_memory")
collection = client.create_collection(name="codebase")
model = SentenceTransformer('BAAI/bge-small-en-v1.5')

# Beispiel-Code-Chunk einfügen
collection.add(
    documents=["def validate_email(email): return '@' in email"],
    metadatas=[{"file": "auth.py"}],
    ids=["id1"]
)

# Abfrage
query = model.encode(["E-Mail Validierung"]).tolist()
results = collection.query(query_embeddings=query, n_results=3)
print(results)

Wofür ist Codebase Memory geeignet?

EinsatzgebietNutzen
Große ProjekteAgent findet schnell relevante Stellen
OnboardingNeue Entwickler können Fragen an den Code-Agenten stellen
RefactoringWissen über Abhängigkeiten hilft bei Änderungen
DokumentationAutomatische Zusammenfassungen aus dem Code

Typische Stolpersteine

  • Code ändert sich - Eine Codebase Memory muss regelmäßig aktualisiert werden.
  • Qualität der Chunks - Zu große oder zu kleine Blöcke verschlechtern die Suche.
  • Privater Code - Bei sensiblen Projekten sollte alles lokal bleiben.

FAQ - Typische Fragen

Brauche ich ein spezielles Tool für Codebase Memory?

Nein. Du kannst es mit einer Vektordatenbank und einem Embedding-Modell selbst bauen. Spezialisierte Tools reduzieren den Aufwand.

Ist Codebase Memory nur für große Projekte sinnvoll?

Nein, aber der Nutzen wächst mit der Projektgröße. Schon bei mittleren Codebases lohnt sich der schnelle Zugriff auf Zusammenhänge.

Quellen

Zurück zum KI Blog
Share:

Nächster Artikel in KI-Agenten

Weiterlesen
CrewAI

Ähnliche Beiträge