Zu Hause kostenlos Agenten bauen: Open-Source-Tools und Modelle
Du kannst ein funktionsfähiges Multi-Agenten-System auf deinem Laptop bauen — ausschließlich mit kostenlosen Tools und Open-Source-Modellen. Keine Kreditkarte, keine API-Rate-Limits, keine Vendor-Abhängigkeit. Der Kompromiss? Langsamere Inferenz und etwas geringere Leistungsfähigkeit. Aber zum Lernen, Experimentieren und für kleine Automatisierungen reicht das mehr als aus.
Am Ende dieses Leitfadens hast du einen lokalen Recherche-Agenten, der auf deiner eigenen Hardware läuft — Websuche, Dateilesen, Informationssynthese — vollständig kostenlos.
Das Argument für Open-Source-Agenten
Kostenrealität
Die Claude-API-Preise sind für Produktions-Workloads vertretbar, aber Lernen und Experimentieren summiert sich schnell. Lokale Inferenz eliminiert diese Sorge vollständig — unendliche Iterationen zum Nulltarif.
Datenschutz und Datenkontrolle
Manche Workloads dürfen nicht zu Cloud-APIs. Patientendaten, proprietärer Code, sensible Geschäftslogik — all das profitiert davon, auf der eigenen Maschine zu bleiben. Lokale Modelle liefern dasselbe intelligente Verhalten, ohne dass Daten das Hardware verlassen.
Der Realitätscheck
Open-Source-Modelle mit 7–13B Parametern liegen bei komplexem Reasoning, Code-Generierung und Instruktionsbefolgung merklich hinter Frontier-Modellen zurück. Für Produktion, wo Genauigkeit zählt, sind kommerzielle APIs die bessere Wahl. Für Lernen und Prototyping sind lokale Modelle ausgezeichnet.
Das richtige Open-Source-LLM wählen
LLM-Familien
- Llama (Meta): Die am breitesten unterstützte Familie. Llama 3 ist besonders leistungsfähig.
- Mistral: Hervorragendes Qualitäts-/Parameter-Verhältnis. Mistral-7B übertrifft seine Größe.
- Phi (Microsoft): Extrem effiziente kleine Modelle. Phi-3 Mini läuft ohne GPU.
- Qwen (Alibaba): Starke mehrsprachige Leistung.
Modellgröße und Hardware-Anforderungen
| Modell | Parameter | Quantisierung | VRAM | Geschwindigkeit | Qualität |
|---|---|---|---|---|---|
| Phi-3 Mini | 3,8B | 4-Bit | 4 GB | Sehr schnell | Gut |
| Mistral-7B | 7B | 4-Bit | 8 GB | Schnell | Gut |
| Llama-3-8B | 8B | 4-Bit | 8 GB | Schnell | Sehr gut |
| Llama-3-13B | 13B | 4-Bit | 10 GB | Mittel | Sehr gut |
| Mixtral-8x7B | 46,7B (MoE) | 4-Bit | 24 GB | Langsam | Exzellent |
Quantisierung: Warum sie wichtig ist
Quantisierung komprimiert Modellgewichte, um weniger Speicher zu benötigen. Ein 7B-Modell in voller Präzision braucht ~28 GB RAM. Dasselbe Modell mit 4-Bit-Quantisierung braucht ~4 GB — mit minimalem Qualitätsverlust.
Einstiegspunkte nach Hardware:
- Laptop (8–16 GB RAM): Phi-3 Mini oder Mistral-7B mit 4-Bit
- Desktop mit mittlerer GPU: Mistral-7B oder Llama-3-8B mit GPU-Beschleunigung
- Desktop mit High-End-GPU: Mixtral-8x7B oder Llama-3-70B mit 4-Bit
Lokale Inferenz einrichten
Ollama: Der einfachste Einstieg
# Installation auf macOSbrew install ollama
# Installation auf Linuxcurl -fsSL https://ollama.com/install.sh | sh
# Mistral-7B herunterladenollama pull mistral
# Leichtere Option für schwächere Hardwareollama pull phi3
# Inferenz-Server startenollama serveFunktionalität prüfen:
curl http://localhost:11434/api/generate -d '{ "model": "mistral", "prompt": "Was ist ein KI-Agent in einem Satz?", "stream": false}'LM Studio: Grafische Alternative
LM Studio ist eine Desktop-Anwendung mit grafischer Oberfläche zum Herunterladen und Ausführen von Modellen. Es stellt einen OpenAI-kompatiblen API-Endpunkt bereit.
Open-Source-Agenten-Frameworks
| Framework | Am besten für | Lernkurve |
|---|---|---|
| LangChain | Breite Tool-Unterstützung | Mittel |
| LangGraph | Workflows mit Zustandsmaschinen | Mittel-Hoch |
| AutoGen | Multi-Agenten-Gespräche | Niedrig |
| CrewAI | Rollenbasierte Multi-Agenten | Niedrig-Mittel |
Starte mit AutoGen oder LangChain. AutoGen ist schneller zum Prototypen; LangChain gibt mehr Kontrolle über den Agenten-Loop.
Deinen ersten Agenten bauen: Lokaler Recherche-Assistent
Umgebungseinrichtung
python3 -m venv agent-envsource agent-env/bin/activatepip install langchain langchain-ollama langchain-community duckduckgo-searchDer vollständige Agent
#!/usr/bin/env python3"""Lokaler Recherche-Agent mit Ollama + LangChainVoraussetzungen: - ollama serve (läuft im Hintergrund) - ollama pull mistral - pip install langchain langchain-ollama langchain-community duckduckgo-search"""
import jsonfrom langchain_core.tools import toolfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_ollama import ChatOllamafrom langchain.agents import AgentExecutor, create_react_agentfrom duckduckgo_search import DDGS
@tooldef search_web(query: str) -> str: """Sucht im Web nach Informationen mit DuckDuckGo.""" try: with DDGS() as ddgs: results = list(ddgs.text(query, max_results=5)) if not results: return "Keine Ergebnisse gefunden." return json.dumps( [{"title": r["title"], "snippet": r["body"], "url": r["href"]} for r in results], indent=2 ) except Exception as e: return f"Suche fehlgeschlagen: {e}"
@tooldef read_file(filepath: str) -> str: """Liest eine lokale Datei und gibt ihren Inhalt zurück.""" try: with open(filepath, "r") as f: return f.read() except FileNotFoundError: return f"Datei nicht gefunden: {filepath}"
@tooldef calculate(expression: str) -> str: """Wertet einen einfachen arithmetischen Ausdruck sicher aus.""" try: result = eval(expression, {"__builtins__": {}}, {}) return str(result) except Exception as e: return f"Berechnungsfehler: {e}"
llm = ChatOllama( model="mistral", base_url="http://localhost:11434", temperature=0.3,)
prompt = ChatPromptTemplate.from_messages([ ("system", """Du bist ein Recherche-Assistent. Beantworte Fragen mit deinen Tools.
Verfügbare Tools: {tool_names}Tool-Beschreibungen: {tools}
Folge genau diesem Format:Thought: Was muss ich herausfinden?Action: tool_nameAction Input: die Eingabe für das ToolObservation: Tool-Ergebnis... (bei Bedarf wiederholen)Thought: Ich habe jetzt genug Informationen.Final Answer: deine vollständige Antwort"""), ("user", "{input}"), ("placeholder", "{agent_scratchpad}"),])
tools = [search_web, read_file, calculate]agent = create_react_agent(llm, tools, prompt)agent_executor = AgentExecutor( agent=agent, tools=tools, verbose=True, max_iterations=8, handle_parsing_errors=True,)
if __name__ == "__main__": result = agent_executor.invoke({ "input": "Was sind die drei beliebtesten Open-Source-LLMs gerade? Nenne die Namen und je eine Schlüsseleigenschaft." }) print(f"\nENDGÜLTIGE ANTWORT:\n{result['output']}")Ausführen
# Terminal 1: Ollama startenollama serve
# Terminal 2: Agenten ausführenpython research_agent.pyFähigkeiten erweitern: Tools ohne APIs
Lokaler Datenbankzugriff
import sqlite3
@tooldef query_database(sql: str) -> str: """Führt eine schreibgeschützte SQL-Abfrage auf der lokalen Datenbank aus.""" try: conn = sqlite3.connect("data.db") cursor = conn.cursor() cursor.execute(sql) rows = cursor.fetchall() columns = [desc[0] for desc in cursor.description] conn.close() return json.dumps([dict(zip(columns, row)) for row in rows], indent=2) except Exception as e: return f"Datenbankfehler: {e}"Lokale Dokumentensuche mit Embeddings
pip install sentence-transformers chromadbfrom sentence_transformers import SentenceTransformerimport chromadb
model = SentenceTransformer("all-MiniLM-L6-v2")client = chromadb.Client()collection = client.create_collection("docs")
@tooldef search_docs(query: str) -> str: """Durchsucht lokale Dokumente nach semantischer Ähnlichkeit.""" results = collection.query( query_embeddings=[model.encode(query).tolist()], n_results=3 ) return json.dumps(results["documents"][0], indent=2)Reale Einschränkungen und Lösungen
Latenz
Rechne mit 2–30 Sekunden pro Inferenzschritt. Strategien:
- Agenten mit weniger Schritten entwerfen; einfacher ist schneller
- Tool-Aufrufe wo möglich bündeln
Genauigkeitslücken
Gegenmaßnahmen:
- Kürzere, explizitere Prompts — Das erwartete Format genau angeben
- Komplexe Aufgaben in Schritte aufteilen
- Tool-Ausgaben validieren bevor sie an den Agenten zurückgegeben werden
- Temperatur 0,1–0,3 für Tool-Nutzung verwenden
Deployment: Vom Laptop zum Dauerbetrieb
Docker
FROM python:3.12-slimRUN pip install langchain langchain-ollama langchain-community duckduckgo-searchCOPY research_agent.py .ENV OLLAMA_HOST=host.docker.internal:11434CMD ["python3", "research_agent.py"]Systemd-Dienst (Linux)
sudo systemctl enable ollamasudo systemctl start ollamaTiefer gehen: Multi-Agenten-Systeme zu Hause
def run_pipeline(question: str) -> str: research_result = researcher.invoke({"input": question}) final_output = writer.invoke({ "input": f"Schreibe basierend auf dieser Recherche eine klare Zusammenfassung:\n{research_result['output']}" }) return final_output["output"]Open-Source-Agenten-Entwicklung ist heute praktikabel. Der Weg: Ollama für Inferenz, LangChain oder AutoGen für den Agenten-Loop, DuckDuckGo für die Suche, und das Dateisystem deiner Maschine für alles andere.
Fang einfach an — mit dem Recherche-Agenten oben. Lass ihn laufen. Dann füge ein zweites Tool hinzu. Dann einen zweiten Agenten.
Verwandte Artikel
- Einführung in die Agentische Entwicklung
- Tool-Nutzungsmuster: Zuverlässige Agent-Tool-Schnittstellen entwickeln
- Multi-Agenten-Muster: Orchestratoren, Worker und Pipelines
- Ihren ersten MCP-Server bauen