Communitygithub.com

kingiol/Mido

TypeScript-SDK für servergesteuerte Agenten-Schleifen mit fortsetzbaren clientseitigen Tools, MCP-Integration, AG-UI-Adaptern und dauerhaften Protokollverträgen.

Was ist Mido?

Das kingiol/Mido SDK ist ein TypeScript-Framework, das servergesteuerte Agenten-Schleifen ermöglicht, bei denen clientseitige Tools nach einer Unterbrechung (z. B. durch Benutzereingabe) nahtlos fortgesetzt werden können. Es integriert das Model Context Protocol (MCP) für die Kommunikation mit KI-Modellen und bietet Adapter für AG-UI-Komponenten. Das SDK definiert dauerhafte Protokollverträge (Durable Protocol Contracts), die den gesamten Lebenszyklus einer Agenten-Interaktion – von der Initialisierung bis zur Ausführung von Tools – klar strukturieren und absichern. Es ist besonders nützlich für Entwickler, die komplexe, mehrschrittige Workflows mit menschlicher Beteiligung und externen Tools in TypeScript realisieren möchten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add kingiol/Mido

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Mido?

TypeScript-SDK für servergesteuerte Agenten-Schleifen mit fortsetzbaren clientseitigen Tools, MCP-Integration, AG-UI-Adaptern und dauerhaften Protokollverträgen.

Überblick

Mido ermöglicht es, servergesteuerte Agenten-Schleifen zu definieren, bei denen der Client (z. B. ein Editor oder eine Web-Oberfläche) Tools bereitstellt, die nach einer Unterbrechung wieder aufgenommen werden können. Das SDK verwendet das Model Context Protocol (MCP), um die Kommunikation mit einem KI-Modell zu standardisieren, und bietet Adapter für AG-UI-Komponenten, um eine flexible Benutzeroberfläche zu erstellen.

Hauptfunktionen

  • Server-run loops: Der Server steuert die Abfolge der Interaktionen, während der Client die Ausführung von Tools steuert.
  • Resumable client-side tools: Tools können nach Benutzereingaben oder anderen Unterbrechungen fortgesetzt werden, ohne den gesamten Zustand zu verlieren.
  • MCP integration: Standardisierte Schnittstelle für KI-Modell-Kommunikation über das Model Context Protocol.
  • AG-UI adapters: Vorgefertigte Adapter für die Integration mit AG-UI-Komponenten.
  • Durable protocol contracts: Strukturierte Verträge, die den gesamten Agenten-Lebenszyklus definieren und absichern.

Installation

npm install @kingiol/mido

Grundlegende Nutzung

import { MidoAgent } from '@kingiol/mido';
import { DurableProtocol } from '@kingiol/mido/contracts';

const agent = new MidoAgent({
  protocol: DurableProtocol.create({
    onClientTool: async (tool, context) => {
      // Tool-Ausführung auf Client-Seite
    },
    onResume: async (state) => {
      // Zustand wiederherstellen
    }
  }),
  mcp: {
    // MCP-Konfiguration
  }
});

await agent.run();

Durable Protocol Contracts

Ein dauerhafter Protokollvertrag definiert die Phasen und Übergänge einer Agenten-Interaktion:

  • init – Initialisierung des Agenten
  • waiting – Warten auf Eingabe oder Tool-Aufruf
  • executing – Ausführung eines clientseitigen Tools
  • resuming – Fortsetzung nach einer Unterbrechung
  • completed – Abschluss der Agenten-Schleife

Jeder Vertrag stellt sicher, dass der Zustand konsistent bleibt und Unterbrechungen nahtlos behandelt werden.

MCP-Integration

Mido verwendet das Model Context Protocol (MCP), um Anfragen an ein KI-Modell zu senden und Antworten zu verarbeiten. Die MCP-Konfiguration erfolgt über die mcp-Option des Agenten:

const agent = new MidoAgent({
  mcp: {
    endpoint: 'https://api.example.com/mcp',
    schema: 'mcp-schema.json',
    tools: ['tool1', 'tool2']
  }
});

AG-UI-Adapter

Mido bietet Adapter für die Integration mit AG-UI-Komponenten, sodass Sie eine benutzerfreundliche Oberfläche für Ihren Agenten erstellen können:

  • AgUiAgentAdapter – Verbindet den Agenten mit einer AG-UI-Komponente
  • AgUiToolAdapter – Stellt clientseitige Tools in AG-UI dar
import { AgUiAgentAdapter } from '@kingiol/mido/adapters';

const uiAdapter = new AgUiAgentAdapter(agent);
uiAdapter.mount('#root');

Lizenz

MIT

Verwandte Skills