Gedächtnis: Wie Agenten lernen
Agenten können komplexe Anweisungen befolgen, Werkzeuge nutzen und autonom über Stunden hinweg arbeiten. Doch stellen Sie ihnen dieselbe Frage zweimal, müssen sie von vorne beginnen. Obwohl wir Agenten fähig gemacht haben, haben wir noch nicht herausgefunden, wie man ihnen das Lernen beibringt. In diesem Artikel betrachten wir die verschiedenen Arten von Gedächtnis und wie sie in Agenten implementiert werden können.
Was ist Gedächtnis?
Der Begriff “Gedächtnis” wird oft vage verwendet. Ist es der Chatverlauf? Das Kontextfenster? Die Vektordatenbank? Lassen Sie uns präzise sein. Es gibt drei Arten von Gedächtnis, die für Agenten von Bedeutung sind:
Sitzungs-Gedächtnis
Das Gesprächs-Kontext. Was vor fünf Nachrichten gesagt wurde. Dies ist ein gelöstes Problem: Nachrichten in einer Datenbank speichern, sie vor jeder Antwort abrufen und dem Kontext hinzufügen. Sitzungs-Gedächtnis ist nützlich, aber begrenzt. Es verschwindet, wenn das Gespräch endet. Es ist kein echtes Gedächtnis, sondern nur Kontext.
Benutzer-Gedächtnis
Fakten über einen bestimmten Benutzer, die über Sitzungen hinweg bestehen bleiben. Vorlieben, Ziele, Einschränkungen. Wenn ein Benutzer sagt: “Ich interessiere mich für KI-Aktien und habe eine moderate Risikobereitschaft”, ist das wertvoll, um es nicht nur für dieses Gespräch, sondern für jedes zukünftige Gespräch mit diesem Benutzer zu merken. Dies ist mächtig, aber es ist immer noch kein Lernen. Benutzer-Gedächtnis bezieht sich auf das Abrufen, nicht auf die Verbesserung.
Erlerntes Gedächtnis
Hier wird Wissen aufgebaut. Während Agenten mit der Welt interagieren, entdecken sie Erkenntnisse, die allgemein anwendbar sind, nicht nur für einen Benutzer, sondern für jeden, der ähnliche Fragen stellt. Wenn Ihr Finanzagent entdeckt, dass “bei der Vergleich von ETFs sowohl die Kostenquote als auch der Tracking-Fehler berücksichtigt werden sollten”, ist diese Erkenntnis es wert, gespeichert zu werden, nicht nur, weil ein Benutzer gefragt hat, sondern weil sie den Agenten besser bei ETF-Vergleichen für alle macht. Das Schöne daran: Wissen kumuliert. Je mehr der Agent lernt, desto besser wird er. Und im Gegensatz zu Gewichtsanpassungen ist dieses Wissen greifbar: Sie können es inspizieren, bearbeiten, löschen. Kein erneutes Training erforderlich.
Wie Gedächtnis Lernen ermöglicht
Die zentrale Erkenntnis ist: Lernen bedeutet, sich zu erinnern, was funktioniert hat. Ohne Gedächtnis sind Agenten zustandslos. Jede Sitzung ist Tag eins:
- Ohne Gedächtnis: Entdeckt dieselben Muster erneut
- Mit Gedächtnis: Sucht frühere Erkenntnisse, bevor sie handelt
- Wiederholt dieselben Fehler
- Wendet Erkenntnisse aus früheren Sitzungen an
- Stellt dieselben Fragen erneut
- Aufbau von Fachwissen im Laufe der Zeit
- Kann nicht auf vorherigem Erfolg aufbauen
- Wird besser, je mehr Sie es nutzen
Das Beste daran: Das Modell muss sich nicht verbessern, damit das System besser wird. Lernen geschieht beim Abrufen, nicht bei Gewichten. Und während sich Modelle verbessern, verbessert sich Ihr System ebenfalls – kostenlos. Ich nenne dies GPU Poor Continuous Learning: kontinuierliche Verbesserung ohne Feinabstimmung, erneutes Training oder jegliche Infrastruktur, die traditionell für Modell-Updates erforderlich ist. Nur eine Wissensbasis, die im Laufe der Zeit intelligenter wird.
Drei Muster für das Gedächtnis von Agenten
Hier sind drei Muster, wie Sie Gedächtnis implementieren können, mit einem Bonus am Ende.
Muster 1: Sitzungs-Gedächtnis
Speichern Sie Nachrichten in einer Datenbank, rufen Sie sie vor jeder Antwort ab und fügen Sie sie dem Kontext hinzu. Agno bietet dies standardmäßig – geben Sie Ihrem Agenten einfach eine Datenbank.
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.google import Gemini
from agno.tools.yfinance import YFinanceTools
agent_db = SqliteDb(db_file="tmp/agents.db")
agent = Agent(
model=Gemini(id="gemini-3-flash-preview"),
tools=[YFinanceTools()],
db=agent_db,
add_history_to_context=True,
num_history_runs=5,
)
if __name__ == "__main__":
session_id = "finance-session" # Turn 1: Analyze a stock
agent.print_response("Quick investment brief on NVIDIA", session_id=session_id)
# Turn 2: Agent remembers NVDA from turn 1
agent.print_response("Compare that to Tesla", session_id=session_id)
# Turn 3: Recommendation based on full conversation
agent.print_response("Which looks like the better investment?", session_id=session_id)
Muster 2: Benutzer-Gedächtnis
Erinnern Sie sich an Fakten über den Benutzer über Sitzungen hinweg. Der MemoryManager extrahiert Vorlieben automatisch und speichert sie in der Datenbank.
from agno.agent import Agent
from agno.memory import MemoryManager
from agno.models.google import Gemini
from agno.db.sqlite import SqliteDb
agent_db = SqliteDb(db_file="tmp/agents.db")
memory_manager = MemoryManager(
model=Gemini(id="gemini-3-flash-preview"),
db=agent_db,
)
agent = Agent(
model=Gemini(id="gemini-3-flash-preview"),
memory_manager=memory_manager,
enable_user_memory=True,
)
# Erste Konversation — Vorlieben extrahiert und gespeichert
agent.print_response(
"Ich interessiere mich für KI-Aktien. Meine Risikobereitschaft ist moderat.", user_id="investor@example.com",
)
# Spätere Konversation — Agent erinnert sich
agent.print_response(
"Welche Aktien würden Sie mir empfehlen?", user_id="investor@example.com",
)
Muster 3: Erlerntes Gedächtnis
Jetzt fügen wir erlerntes Gedächtnis hinzu: Erkenntnisse, die über einen einzelnen Benutzer hinaus gelten. Der Schlüssel ist ein benutzerdefiniertes Werkzeug, das Erkenntnisse in einer Wissensbasis speichert.
import json
from datetime import datetime, timezone
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.knowledge import Knowledge
from agno.models.google import Gemini
from agno.vectordb.chroma import ChromaDb
agent_db = SqliteDb(db_file="tmp/agents.db")
learnings_kb = Knowledge(
name="Agent Learnings",
vector_db=ChromaDb(
name="learnings",
persistent_client=True,
search_type=SearchType.hybrid,
),
)
def save_learning(title: str, learning: str) -> str:
""" Speichern Sie eine wiederverwendbare Erkenntnis in der Wissensbasis. """
payload = {
"title": title.strip(),
"learning": learning.strip(),
"saved_at": datetime.now(timezone.utc).isoformat(),
}
learnings_kb.add_content(
name=payload["title"], text_content=json.dumps(payload),
)
return f"Saved: '{title}'"
agent = Agent(
model=Gemini(id="gemini-3-flash-preview"),
tools=[save_learning],
knowledge=learnings_kb,
search_knowledge=True,
db=agent_db,
)
Was macht ein gutes Lernen aus?
Ein Lernen ist es wert, gespeichert zu werden, wenn es:
- Speziell ist: “Tech P/E-Verhältnisse liegen typischerweise zwischen 20-35x” und nicht “P/E variiert”
- Umsetzbar ist: Kann auf zukünftige Anfragen angewendet werden
- Generalisierbar ist: Nützlich über dieses eine Gespräch hinaus
Die meisten Anfragen sollten KEIN Lernen produzieren, und das ist in Ordnung.
Fazit
Die Implementierung von Gedächtnis in Agenten ist entscheidend für deren Fähigkeit, zu lernen und sich zu verbessern. Durch die Unterscheidung zwischen Sitzungs-, Benutzer- und erlerntem Gedächtnis können Entwickler Agenten schaffen, die nicht nur reagieren, sondern auch aus ihren Erfahrungen lernen und sich weiterentwickeln.










Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!