Nachdem Microsoft Skills auf MCP legt: Warum ist Discovery noch JSON? SEP-2640, skill://index.json und skills/list

Stand 22. September 2026: Microsofts Demo vom 16. September verlagert Spezialisten-Schleifen in vom Eltern geladene Skills über MCP. Die Anleitung darf Markdown bleiben; Discovery ist weiter JSON. SEP-2640 ist Accepted, nicht Final — skill://index.json und skills/list laufen parallel.

Vorab: Sitzt ein Skill auf MCP, darf die Anleitung Markdown bleiben. Der Entdeckungsvertrag ist weiter JSON. Am 16. September 2026 hat Tommaso Stocchi vom Microsoft Agent Framework einen Vergleich veröffentlicht: ein Skigebiet-Berater wechselte von „jeder Spezialist fährt sein eigenes Modell“ zu „der Parent lädt bei Bedarf einen Skill und ruft MCP-Tools direkt auf.“ Services bleiben verteilt. Das Reasoning wandert in den Parent-Kontext. Der 11.-September-Text dieser Seite zu MCP / Skills / Tools / Subagents hat die vier Schichten behandelt. Dieser Text ergänzt nur, was danach passiert ist: wie das Entdeckungsdokument aussieht, wo SEP-2640 wirklich steht, und warum Sie weiter zuerst eine JSON-Datei prüfen.

Stand 22. September 2026. SEP-2640 (die Skills Extension) wurde am 3. September als Accepted markiert. Es ist nicht Final. Die Microsoft-Demo pinnt einen historischen Draft von skill://index.json. Der neuere Draft nutzt skills/list und skills/get. Zwei Entdeckungsformen sind im Feld. Kompatibilität ist die bessere erste Frage als „haben Skills Agenten ersetzt“.

Was am 16. September tatsächlich erschienen ist

Stocchis Beitrag heißt From Specialist Agents to Distributed Skills over MCP. Der Skigebiet-Berater rief früher vier Spezialisten über A2A: Wetter, Sicherheit, Skitraining, Liftverkehr. Jeder Spezialist besaß Instructions, Tools und einen Modell-Loop. Der zweite Pfad macht dieselben Domain-Services zu MCP-Providern: jeder veröffentlicht eine Description, eine SKILL.md und typisierte MCP-Tools. Der Berater nutzt MAFs SkillsProvider und MCPSkillsSource für Entdeckung und Laden. SkillToolsMiddleware hängt die Tools dieses Providers nach erfolgreichem load_skill an den nächsten Modell-Turn.

Web-Recherche bleibt ein gewöhnliches Agent-Tool. Der Hybrid ist Absicht: Autonomie behalten, wo Sie sie brauchen; eine begrenzte Kompetenz zum Skill machen. Die vier MCP-Endpunkte liegen unter /skillsmcp. Die Resource-Fläche ist üblicherweise nur:

skill://index.json
skill://<skill-name>/SKILL.md

skill:// benennt eine Resource auf einer bereits konfigurierten MCP-Verbindung. Es ist kein Hostname, und Skill-Prosa darf keinen neuen Netz-Hop öffnen. Authentifizierung, Transport und Autorisierung bleiben in Infrastruktur und Code, nicht im Markdown.

Das ist nicht MCP, das A2A ersetzt

Das Original zieht eine klare Linie. A2A übergibt eine Aufgabe an einen anderen Reasoner. Ein Distributed Skill übergibt eine Kompetenz und ihre Operationen an den aktuellen Reasoner. Eine Tabelle reicht:

AnliegenAgent als Tool (A2A)Distributed Skill
Was der Parent entdecktEinen Spezialisten-Agenten, den er aufrufen kannEine Kompetenz, die er laden kann
Wo Spezialisten-Instructions laufenDer Modell-Kontext des SpezialistenDer Modell-Kontext des Parent
Wer Domain-Operationen wähltDas Spezialisten-ModellDas Parent-Modell
Was remote läuftEin Spezialisten-Loop und seine ToolsMCP-Tools und ihre Backend-Services
Was verteilt bleibtAgenten, Services, DatenSkill-Provider, Services, Daten

Name und Description der Agent Card werden zum Entdeckungseintrag. Der System-Prompt wird SKILL.md. Tool-Parameter werden MCP Input- / Output-Schemas. Business-Services bleiben hinter den Tool-Handlern. Endpunkt, Auth und Transport auf der Card gehören nicht in die Skill-Description. Das passt zum 11.-September-Text: Skills sind die Anleitung, MCP ist die Buchse, Tools sind der Vertrag. Geändert hat sich, wie die Anleitung entdeckt wird — nicht ein Zusammenfall der drei Schichten in eine.

Der Entdeckungsvertrag: skill://index.json

Ein Orchestrierer braucht nicht jede Anleitung bei jedem Request. Er braucht ein Verzeichnis, das zum Routen reicht. Der Index des Wetter-Providers in der Demo ist:

{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "weather",
      "type": "skill-md",
      "description": "Weather intelligence agent providing real-time conditions, forecasts, and storm alerts for the ski resort",
      "url": "skill://weather/SKILL.md"
    }
  ]
}

Das ist der Agent-Skills-Entdeckungsindex mit MCP-Semantik: url ist eine Resource-URI, kein https-Host. $schema zeigt auf Discovery 0.2.0 auf schemas.agentskills.io. Die Description beantwortet, wann die Kompetenz zu nutzen ist. SKILL.md beantwortet wie — benennt Operationen wie weather_forecast, Bereiche, Einheiten und ein Verbot, Beobachtungen zu erfinden. Typen und Grenzen dieser Operationen kommen weiter aus dem JSON Schema in MCP tools/list.

Beim Start zieht der Parent den Katalog und tools/list über MCP. Das Modell sieht zuerst Skill-Zusammenfassungen und Lade-Helfer, nicht jedes Operations-Schema. Nach load_skill("weather") hängt die Middleware diese Gruppe an. Ein Tool im Kontext ist noch keine Ausführung.

SEP-2640: Accepted, nicht Final

SEP-2640 ist die Skills-Bindung auf dem Extensions Track: Agent Skills über MCP Resources ausliefern. Die Extension-ID ist io.modelcontextprotocol/skills. Verzeichnislayout, YAML-Frontmatter und Progressive Disclosure bleiben bei der Agent-Skills-Spezifikation. Die SEP bindet nur den Transport.

Stand der Prüfung vom 10. September in Stocchis Beitrag: die Revision vom 3. September markierte Accepted und verschob die Entdeckung auf skills/list und skills/get (paginiert; Einträge tragen uri, geparstes Frontmatter und ein Resource-Manifest mit sha256:-Digests). Der passende PR war noch offen. Die Demo pinnt einen früheren Draft: sie liest skill://index.json und implementiert die neuen Methoden nicht. Das Incubation-Repo ist weiter Experimental.

Schreiben Sie kein „Final am 13. September“ aus zweiter Hand in eine Produktions-Checkliste. Was am 22. September 2026 feststeht: Accepted, nicht Final, zwei Entdeckungsformen in Gebrauch. Den Draft-Index als Kern-MCP-Pflicht zu behandeln, widerspricht der Fußnote im Beitrag selbst.

Der Tool-Vertrag ist weiter JSON Schema

Die Forecast der Demo nimmt hours mit Range(1, 24) und UseStructuredContent. Das SDK veröffentlicht die Tool-Definition. Der Handler prüft den Bereich, dann ruft er den Domain-Service. SKILL.md steuert, welches Tool gewählt wird. Es ersetzt nicht das Parameter-Schema und nicht die serverseitigen Checks.

Autoritative Operationen kommen aus tools/list. Ausführung ist tools/call. Anleitungen sind resources/read. Alle drei Hops sind JSON-RPC. Ein Skill kann „paginieren“ sagen; er kann Ihren Cursor nicht persistieren. Er kann einen Freigabe-Schritt erwähnen; er kann Autorisierung nicht durchsetzen. Das ist dieselbe Schicht wie warum Tool Calling von JSON Schema abhängt: Prosa wählt eine Straße, der Vertrag lehnt illegale Arguments ab.

Drei gepaarte Läufe: schneller, nicht günstiger bei Tokens

Derselbe Prompt („Wetter und Wartezeit bedacht, wo soll ich starten?“), dieselbe Aspire-App, gpt41, drei frische Conversations. Der A2A-Pfad nutzte 6 / 6 / 7 Modellaufrufe (Spezialisten können überlappen). Der Skills-Pfad nutzte jedes Mal 3: load_skill, dann direkte MCP-Operationen, dann die finale Antwort. Die mittlere Client-Wall-Clock lag bei etwa 6,35 s gegen 15,48 s.

Die Tokens sind nicht gefallen. Über drei Läufe beobachtete die Skills-Seite etwa 13.533 gegen etwa 11.134 bei A2A — rund 22 % mehr. Weniger Modell-Hops sind kein kleinerer kumulativer Kontext: Anleitungen, Gruppen-Schemas und Ergebnisse stapeln sich über die drei Aufrufe. Die A2A-Cache-Zähler waren unvollständig. Das ist keine Rechnung und keine kontrollierte Studie. Das Original sagt das: drei Paare, kein Beweis gleicher Korrektheit oder Vollständigkeit.

Die strukturelle Beobachtung ist ein Satz: was Sie weglassen, ist der verschachtelte Spezialisten-Loop, nicht die JSON-Roundtrips. Entdeckungsindizes, Tool-Schemas, strukturierte Ergebnisse hoppen weiter. Sie leben nur als ein paar Verträge im Parent-Kontext statt als Rede jedes Spezialisten.

Zwei Entdeckungsformen, Hosts die sich verfehlen

Der Riss war schon im August–September 2026 sichtbar. UseMcpSkills in Microsoft.Agents.AI.Mcp liest weiter skill://index.json. Ein Server, der nur skills/list implementiert, bekommt „no index resource“. Ein Server, der nur den Index ausliefert, ohne Extension-Deklaration oder Digests, ist für einen neueren Host unsichtbar. Manche Hosts markieren index-basierte Server bereits als Legacy.

Setzen Sie nicht auf einen Gewinner. Bei einem kleinen Katalog beide ausliefern: einen Draft-Index für ältere Clients, skills/list / skills/get für Hosts, die die Extension deklarieren. Eine fehlende oder leere Auflistung darf nicht als „dieser Server hat keine Skills“ behandelt werden — der Draft erlaubt Teil-Enumeration für große oder generierte Kataloge.

Drei JSON-Dokumente, die Sie weiter lokal prüfen

  1. Das Entdeckungsdokument. Einträge aus skill://index.json oder skills/list: name, type, description, url / uri. Gegen $schema prüfen. Extra-Keys, leere Descriptions oder ein https-Host in url sind Routing-Bugs, keine Textkorrekturen.
  2. Tool-Schemas. inputSchema aus tools/list nehmen. required füllen, additionalProperties: false setzen, Enums und Bereiche anziehen. Namen, die die Skill-Prosa nennt, müssen zur Liste passen.
  3. Strukturierte Ergebnisse. Die Demo schaltet Structured Content ein. Output zurück an den Parent sollte weiter legales JSON sein, dann gegen ein Schema geprüft. Keine ganze Datenbankzeile und keinen Stack zurückgeben. Siehe warum Agenten nach der Agents API noch mehr JSON brauchen.

Das Entdeckungsdokument mit lokalen JSON-Tools prüfen

Bevor Sie MAF oder irgendeinen Host verdrahten, drei Texte im Browser auslegen: den Entdeckungsindex, ein Schema aus tools/list und ein Sample-tools/call-arguments-Objekt.

  • JSON-Validator — ist die Grammatik legal; wenn Sie ein Schema haben, Felder, required und Extra-Keys zusammen prüfen.
  • JSON-Formatierer — einen einzeiligen Index aufklappen und sehen, ob url wirklich skill:// ist.
  • JSON Diff — einen Draft-Index-Eintrag mit einem skills/list-Eintrag vergleichen, damit die zwei Kataloge nicht auseinanderlaufen.

Nichts verlässt den Browser. Den Entdeckungsvertrag stabilisieren, dann den Parent SKILL.md laden lassen. Die Anleitung darf die Formulierung ändern. Feldnamen und URIs sollten nicht jede Woche wandern.

FAQ

Ist SEP-2640 jetzt Final?

Nein. Die Revision vom 3. September ist Accepted. Stocchis Prüfung vom 10. September hatte noch einen offenen PR. Die Demo nutzt einen historischen Draft von skill://index.json. Alte Clients nicht auf eine „schon Final“-Geschichte streichen.

Ersetzen Distributed Skills A2A?

Nicht pauschal. Behalten Sie einen Agenten, wenn Sie einen unabhängigen Lifecycle, privaten Kontext oder ein spezialisiertes Modell brauchen. Zum Skill wechseln, wenn Sie nur Anleitung plus Operationen brauchen. Web-Recherche als Agent-Tool zu lassen, ist genau diese Unterscheidung.

Ist skill:// eine URL, die der Host auflösen soll?

Nein. Es benennt eine Resource auf einer bereits konfigurierten MCP-Verbindung. Skill-Prosa darf sie nicht nutzen, um einen anderen Host zu öffnen.

Wenn ich SKILL.md habe, brauche ich weiter JSON Schema?

Ja. Markdown steuert die Tool-Wahl und wie Ergebnisse zu lesen sind. Typen, Bereiche und Pflichtfelder kommen weiter aus dem tools/list-Schema und einer Prüfung, die Sie selbst fahren.

Reicht skill://index.json allein?

Für einige aktuelle Microsoft-Clients ja. Für Hosts auf dem neueren Draft nein. Bei einem kleinen Katalog beide ausliefern. Eine Form allein ist für die andere Hälfte unsichtbar.

Ist der Skills-Pfad günstiger?

In der Demo war die Wall-Clock schneller, die beobachteten Tokens lagen etwa 22 % höher. Es ist keine kontrollierte Studie. Zuerst Routing und strukturierte Ergebnisse vergleichen, dann die Rechnung.

Fazit

Die Demo vom 16. September hat nicht verkündet, dass Agenten obsolet sind. Sie hat verkündet: eine Kompetenz, die kein verschachteltes Reasoning braucht, kann Anleitung und Operationen ausliefern, mit einer JSON-Entdeckungsfläche. Service-Grenzen bleiben. Was Sie weglassen, ist der Spezialisten-Modell-Loop. Was Sie weiter halten, ist der Entdeckungsindex, das Tool-Schema und das strukturierte Ergebnis.

SEP-2640 ist weiter Accepted. Der Draft-Index und skills/list leben eine Weile nebeneinander. Die drei JSON-Dokumente zuerst in einem lokalen Validator glattziehen, dann an einen Host geben. Die Schichtung vom 11. September hält weiter. Was nicht mehr hält: „ein Skill ist nur ein Ordner auf der Platte.“ Modelle und Harnesses bekommen neue Versionen. name, url und inputSchema sollten nicht mit ihnen lockern.