🦾 LocalClaw – Multi-Agenten KI-System mit lokalem LLM

Modulares Agenten-Framework mit dynamischer Registrierung, Telegram-Gateway und automatischer Workflow-Orchestrierung

PythonOllamaTelegramMulti-AgentOCR

🚀 Ihr eigenes Multi-Agenten-System – lokal & souverän?

Vereinbaren Sie ein unverbindliches Strategiegespräch

📞 02406 803 7603 ✉️ info@computerkumpel.de

📊 Business Value

Ein modulares Multi-Agenten-System, das spezialisierte KI-Agenten dynamisch lädt, koordiniert und über Telegram als natürliche Schnittstelle bereitstellt. Vollständig lokal betrieben – ideal für datenschutzkritische Umgebungen.

🧩
Modulare Agenten
Jeder Agent ist eine eigenständige Python-Klasse mit config.json. Neue Fähigkeiten werden dynamisch zur Laufzeit registriert.
🔀
Workflow-Engine
Der Workflow-Coordinator zerlegt komplexe Anfragen in Teilschritte, delegiert an Spezialagenten und aggregiert Ergebnisse.
📱
Telegram-Gateway
Vollständige Telegram-Integration mit Foto-OCR, Sprachnachrichten-Transkription und TTS-Antworten.

💻 Technische Architektur

Das System verwendet dynamisches Modul-Loading mit importlib, um Agenten zur Laufzeit zu entdecken und zu instanziieren.

🔄
Dynamic Import
Agenten werden via importlib dynamisch geladen. Neue Agenten-Ordner werden automatisch erkannt und registriert.
📅
Calendar Agents
Spezielle Kalender-Agenten mit integriertem Date-Resolver für natürliche Zeitangaben wie "nächsten Dienstag".
👁️
Vision + OCR
Bildverarbeitung mit OCR-Text-Erkennung und automatischer Termin-Extraktion aus Fotos.

📝 Echte Code-Snippets

Dynamisches Agenten-Loading – das Herz des modularen Systems:

def load_agent(agent_name: str, agent_dir: str, llm_client: LLMClient):
    importlib.invalidate_caches()
    root_dir = os.getcwd()
    if root_dir not in sys.path:
        sys.path.append(root_dir)
    
    subpackage = f"agents.{agent_name}"
    if subpackage not in sys.modules:
        importlib.import_module(subpackage)
    
    module_name = f"{subpackage}.agent"
    if module_name in sys.modules:
        module = importlib.reload(sys.modules[module_name])
    else:
        module = importlib.import_module(module_name)
    
    for name, obj in inspect.getmembers(module):
        if inspect.isclass(obj) and issubclass(obj, BaseAgent) and obj is not BaseAgent:
            return obj(agent_dir, llm_client)
    return None

Workflow-Koordination mit Kontext-Weitergabe:

for i, step in enumerate(steps):
    step_agent = step.get("agent")
    step_task = step.get("task")
    
    combined_task = f"{step_task}\n[Kontext: {json.dumps(context, ensure_ascii=False)}]" if context else step_task
    
    if step_agent == "agent_creator":
        step_result_json = agents[step_agent].handle_task(combined_task, list(agents.keys()))
        update_registry(agents, sub_llm)
    else:
        step_result_json = agents[step_agent].handle_task(combined_task)

Telegram-Gateway mit Sprachnachrichten-Verarbeitung:

if 'voice' in msg:
    is_voice_input = True
    file_id = msg['voice']['file_id']
    file_path_on_tg = get_file_path(telegram, file_id)
    
    transcription = voice_utils.process_voice_message(bot_token, file_path_on_tg)
    
    if transcription:
        telegram.send_message(chat_id, f"📝 \" {transcription} \"", parse_mode="HTML")
        text = transcription

🔧 Technologie-Stack

Python 3 Ollama minimax-m2.7 Telegram Bot API importlib inspect JSON SSL

🚀 Kernfunktionen