Skip to content
BotServBotServ
IRC BotKI ChatbotOllamaLLM IRCBot programmierenChatbot selbst bauenLokale KI

IRC-Bot mit KI bauen: Lokales LLM mit Ollama im Chat betreiben

KI-Bot für IRC selbst bauen: Ein lokales LLM per Ollama an einen IRC-Channel hängen, Schritt für Schritt erklärt, inklusive Python-Grundgerüst und Absicherung.

S

schutzgeist

6 min read
IRC-Bot mit KI: Lokales LLM über Ollama im Internet Relay Chat betreiben

IRC-Bot mit KI bauen: Lokales LLM mit Ollama im Chat betreiben

Was dieser Artikel über KI-Bots im IRC behandelt

  • Warum Internet Relay Chat und lokale KI perfekt zusammenpassen.
  • Die Architektur: IRC-Client-Bot trifft Ollama-API.
  • Ein komplettes Python-Grundgerüst zum Selbstbauen.
  • Konversationsgedächtnis, Moderation und Flood-Schutz.
  • Absicherung und typische Stolpersteine.

Einleitung: Alte Schule trifft neue KI

IRC-Bots sind älter als die meisten Programmiersprachen, die heute benutzt werden. Eggdrops moderierten Kanäle, bevor „Chatbot” überhaupt ein Begriff war. Was sich geändert hat: Früher reagierten Bots auf feste Trigger, heute kann ein lokales LLM freie Fragen beantworten. Und genau das ist der spannende Punkt für BotServ.de: Ein KI-Bot im IRC ist die wahrscheinlich ehrlichste Übung in der Bot-Entwicklung, die es gibt. Kein Framework-Zauber, kein Cloud-Zwang, nur ein Socket, ein Protokoll und ein Modell, das auf Deiner eigenen Hardware läuft.

Der praktische Nutzen liegt auf der Hand: Support-Bot in einem Community-Kanal, Dokumentations-Assistent für ein Projekt, Coding-Hilfe in einem Entwickler-Channel. Und weil das Modell lokal via Ollama läuft, gehen die Konversationen Deiner Community an keinen externen Anbieter.

Architektur: Wie der KI-Bot im IRC funktioniert

Das Prinzip ist angenehm simpel. Dein Bot ist ein normaler IRC-Client, der sich mit Nick und Passwort verbindet, einem oder mehreren Kanälen joint und auf Nachrichten lauscht. Kommt eine Nachricht, die ihn anspricht, schickt er sie an die Ollama-API, bekommt eine Antwort zurück und postet sie in den Channel.

IRC-Netzwerk  <--Socket/TLS-->  Dein Bot (Python)  <--HTTP-->  Ollama (lokales LLM)

Drei Komponenten, drei Verantwortlichkeiten: Der IRC-Teil kümmert sich um Protokoll und Verbindung, die Bot-Logik entscheidet, wann geantwortet wird, und Ollama liefert die Intelligenz. Wer tiefer in die Bot-Programmierung einsteigen will, findet auf IRC-Coding.de über 500 Artikel zu Eggdrops, Clients und Chatbots, inklusive KI-Themen.

Voraussetzungen für Deinen KI-IRC-Bot

  • Ollama installiert mit einem Modell, z.B. ollama pull qwen3 oder llama3.2. Eine GPU mit 8 GB VRAM reicht für kleinere Modelle, Details in unserem Lernpfad Lokale KI.
  • Python 3.10+ auf dem gleichen Rechner oder einem Server im Netz.
  • Zugang zu einem IRC-Netzwerk: Ein eigener Server (siehe unseren Artikel zu IRC-Daemons) oder ein öffentliches Netz, das Bots erlaubt. Manche Netze verlangen eine Bot-Registrierung.
  • Registrierter Nick für den Bot, damit er identifizierbar bleibt.

Der Bot in Python: Das Grundgerüst

IRC ist ein Klartext-Protokoll, Du brauchst nicht mal eine Bibliothek. Minimal-Version mit Standard-Socket:

import socket
import requests

SERVER = "irc.dein-netz.de"
PORT = 6697
NICK = "kibot"
CHANNEL = "#dein-kanal"
OLLAMA_URL = "http://localhost:11434/api/chat"
MODEL = "qwen3"

history = {}

def ask_llm(user, text):
    msgs = history.setdefault(user, [])
    msgs.append({"role": "user", "content": text})
    msgs = msgs[-10:]
    history[user] = msgs
    r = requests.post(OLLAMA_URL, json={
        "model": MODEL,
        "messages": [{"role": "system", "content":
            "Du bist ein hilfreicher Bot in einem IRC-Kanal. "
            "Antworte kurz, maximal zwei Saetze."}] + msgs,
        "stream": False,
    })
    reply = r.json()["message"]["content"]
    history[user].append({"role": "assistant", "content": reply})
    return reply

irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Für Produktion: ssl.wrap_socket oder ssl.create_default_context()
irc.connect((SERVER, PORT))

def send(line):
    irc.send((line + "\r\n").encode())

send(f"NICK {NICK}")
send(f"USER {NICK} 0 * :KI-Bot")

buf = ""
while True:
    buf += irc.recv(4096).decode(errors="ignore")
    lines, buf = buf.split("\r\n")[:-1], buf.split("\r\n")[-1]
    for line in lines:
        if line.startswith("PING"):
            send("PONG " + line.split()[1])
        if " 376 " in line or " 422 " in line:      # MOTD Ende
            send(f"JOIN {CHANNEL}")
        if f"PRIVMSG {CHANNEL}" in line and f"!ki " in line:
            user = line.split("!")[0].lstrip(":")
            text = line.split("!ki ", 1)[1].strip()
            send(f"PRIVMSG {CHANNEL} :{user}: {ask_llm(user, text)}")

Das ist bewusst minimal: Verbinden, PING/PONG spielen, auf !ki frage reagieren, Antwort posten. Für den Ernstbetrieb nutzt Du besser eine Bibliothek wie irc (pip install irc) oder pydle, die Reconnects, SASL und TLS sauber abhandeln.

Ausbaustufen: Vom Spielzeug zum brauchbaren Bot

Trigger-Design. Der !ki-Präfix verhindert, dass der Bot jede Zeile beantwortet. Alternativ reagiert er auf seinen Nick („kibot: frage”), das fühlt sich natürlicher an, braucht aber sauberes Parsing.

Gedächtnis pro Nutzer. Das Beispiel oben hält pro Nick die letzten zehn Nachrichten. Achtung bei Nickwechseln: Das Gedächtnis hängt am Nick, nicht am Account. Für produktive Bots auf Services-Accounts mappen.

Rate-Limiting. Unverzichtbar: Maximal eine Anfrage pro Nutzer und Sekunde, Warteschlange für den Rest. Sonst wird Dein Bot selbst zum Flood-Problem und landet auf der Ban-Liste.

Antwort-Länge begrenzen. IRC-Nachrichten sind auf ca. 512 Bytes je Zeile limitiert. Lange LLM-Antworten musst Du in Zeilen von etwa 400 Zeichen splitten, sonst schneidet der Server mitten im Satz ab.

Flood-Schutz aktivieren. Viele IRCDs kicken Clients, die zu schnell senden. Zwischen Zeilen eine kurze Pause (0,5-1s) einbauen oder ein Throttling-System nutzen.

Sicherheit: Den KI-Bot richtig absichern

Ein Bot mit Shell-Zugriff auf Deine Hardware verdient Respekt:

  • Prompt Injection ernst nehmen: Jeder im Channel kann dem Bot Text unterschieben. Gib dem Bot keine Tools, keine Datei- oder Shell-Rechte, solange er im öffentlichen Channel hört. Erst nur Text, dann eventuell Whitelist-Features.
  • Kosten- und Last-Limit: Auch ein lokales Modell verbraucht GPU-Zeit. Limits für Anfragen pro Stunde verhindern, dass ein Troll Deine Karte blockiert.
  • Bot-Nick registrieren und schützen: Sonst übernimmt jemand die Identität Deines Bots.
  • Kein Logging sensibler Daten: Channel-Inhalte können persönlich sein, Log-Retention minimal halten.
  • IRC-Security Grundlagen: Die Härtung des zugrunde liegenden Netzwerks und des Bot-Hosts behandelt IRC-Security.de, unsere Übersicht steht in IRC-Cybersecurity.

Typische Stolpersteine beim KI-IRC-Bot

Der Bot antwortet nicht. Meist wurde PING nicht beantwortet und der Server hat die Verbindung gekappt. PING/PONG ist Pflicht, kein Detail.

Zeichensalat bei Umlauten. IRC ist alt, Encoding ist historisch chaotisch. UTF-8 senden und empfangen, errors="ignore" ist Notlösung, besser sauber dekodieren.

Der Bot flutet den Channel. Immer Rate-Limit, immer Antwortlänge kappen, im Zweifel per /notice statt Channel-Nachricht antworten.

„KI im IRC ist Spielerei.” Stimmt nur zur Hälfte. Die Technik dahinter, Streaming-Antworten, Kontextmanagement, Throttling, ist dieselbe wie in jedem ernsthaften Chatbot-Backend. Wer das hier sauber baut, kann es überall.

  • IRC-Coding.de - Programmieren lernen, Bots bauen, Eggdrops, KI-Coding: die Spezialseite für Bot-Entwicklung.
  • IRC-Mania.de - Hauptseite für IRC-Content, Bot-Tutorials und Workshops.
  • IRC-Security.de - Bots und Server richtig absichern.
  • IRC-FAQ.de - Schnelle Antworten auf Bot-Fragen.
  • IRC-FAQ.com - Internationale Bot- und Skript-FAQs.
  • Ollama - Das lokale LLM-Backend hinter dem Bot.

Verwandte Artikel auf BotServ.de: IRC-Befehle Referenz, IRC-Services erklärt und der IRC-Lernpfad.

FAQ: KI-Bot im IRC - Typische Fragen

Was brauche ich für einen KI-Bot im IRC?

Ein lokales LLM über Ollama, ein Python-Skript als IRC-Client und Zugang zu einem Netzwerk. GPU mit 8 GB VRAM reicht für kleinere Modelle, CPU-Betrieb geht, ist aber langsam.

Welches Modell eignet sich für einen IRC-Bot?

Kompakte Modelle mit schnellen Antwortzeiten: Qwen3, Llama 3.2, Mistral oder Phi. Chatbots brauchen keine Riesenmodelle, sie brauchen Geschwindigkeit, weil Channel-Konversationen in Echtzeit laufen.

Ist ein KI-Bot in öffentlichen IRC-Netzen erlaubt?

Kommt aufs Netzwerk an. Viele verlangen Registrierung oder Genehmigung, manche haben eigene Bot-Channels. Im eigenen IRC-Netzwerk entscheidest Du die Regeln selbst.

Wie verhindere ich, dass der Bot den Channel zuspammt?

Rate-Limit pro Nutzer (1 Anfrage/Sekunde), Antworten auf 400 Zeichen kürzen und in Einzelzeilen splitten, plus Trigger-Präfix wie !ki, damit nicht jede Zeile eine Antwort auslöst.

Kann der Bot auch private Nachrichten beantworten?

Ja, im Code auf PRIVMSG an den Bot-Nick statt an den Channel reagieren. Praktisch für sensible Fragen und schont die Channel-Rate.

Was ist Prompt Injection beim IRC-Bot?

Wenn ein Channel-Nutzer dem Bot Anweisungen unterschiebt („ignoriere alle Regeln”). Solange der Bot nur Text zurückschickt, ist das lästig aber harmlos. Gefährlich wird es erst, wenn der Bot Tools oder Shell-Rechte hat.

Brauche ich dafür Programmierkenntnisse?

Grundkenntnisse in Python reichen für das Grundgerüst. Alles darüber hinaus, Eggdrops, Services-Integration, fortgeschrittene Bots, lernst Du auf IRC-Coding.de.

Was war BotServ nochmal?

Der klassische IRC-Service, der Bots in Kanälen verwaltet, und der Namenspatron dieser Website. Die Befehle stehen in unserer IRC-Befehlsreferenz.

Zurück zum KI Blog
Share:

Ähnliche Beiträge