Condividi tramite


Funzionalità sperimentali nel kernel semantico

Il kernel semantico introduce funzionalità sperimentali per fornire l'accesso anticipato alle nuove funzionalità in continua evoluzione. Queste funzionalità consentono agli utenti di esplorare le funzionalità all'avanguardia, ma non sono ancora stabili e possono essere modificate, deprecate o rimosse nelle versioni future.

Scopo delle funzionalità sperimentali

L'attributo Experimental svolge diversi scopi chiave:

  • Segnala instabilità : indica che una funzionalità è ancora in continua evoluzione e non ancora pronta per la produzione.
  • incoraggia il feedback anticipato : consente agli sviluppatori di testare e fornire input prima che una funzionalità sia completamente stabilizzata.
  • gestisce le aspettative: assicura agli utenti di comprendere che le funzionalità sperimentali possono avere supporto o documentazione limitate.
  • facilita l'iterazione rapida: consente al team di perfezionare e migliorare le funzionalità in base all'utilizzo reale.
  • Guide collaboratori: aiuta i gestori e i collaboratori a riconoscere che la funzionalità è soggetta a modifiche significative.

Implicazioni per gli utenti

L'uso di funzionalità sperimentali include alcune considerazioni:

  • potenziali modifiche di rilievo: api, comportamento o intere funzionalità possono cambiare senza preavviso.
  • Supporto Limitato – Il team di Semantic Kernel può fornire supporto limitato o nessun supporto per le funzionalità sperimentali.
  • problemi di stabilità: le funzionalità possono essere meno stabili e soggette a problemi imprevisti di comportamento o prestazioni.
  • documentazione incompleta: le funzionalità sperimentali potrebbero avere documentazione incompleta o obsoleta.

Eliminazione degli avvisi delle funzionalità sperimentali in .NET

In .NET SDK le funzionalità sperimentali generano avvisi del compilatore. Per eliminare questi avvisi nel progetto, aggiungere gli ID di diagnostica pertinenti al file di .csproj:

<PropertyGroup>
  <NoWarn>$(NoWarn);SKEXP0001,SKEXP0010</NoWarn>
</PropertyGroup>

Ogni funzionalità sperimentale ha un codice di diagnostica univoco (SKEXPXXXX). L'elenco completo è disponibile in EXPERIMENTS.md.

Uso di funzionalità sperimentali in .NET

In .NET le funzionalità sperimentali vengono contrassegnate usando l'attributo [Experimental]:

using System;
using System.Diagnostics.CodeAnalysis;

[Experimental("SKEXP0101", "FeatureCategory")]
public class NewFeature 
{
    public void ExperimentalMethod() 
    {
        Console.WriteLine("This is an experimental feature.");
    }
}

Supporto delle funzionalità sperimentali in altri SDK

  • Python e Java non hanno un sistema di funzionalità sperimentale predefinito come .NET.
  • Le funzionalità sperimentali in python possono essere contrassegnate usando avvisi (ad esempio, warnings.warn).
  • In Javagli sviluppatori usano in genere annotazioni personalizzate per indicare le funzionalità sperimentali.

Sviluppo e contributo alle funzionalità sperimentali

Contrassegno di una funzionalità come sperimentale

  • Applicare l'attributo Experimental alle classi, ai metodi o alle proprietà:
[Experimental("SKEXP0101", "FeatureCategory")]
public class NewFeature { }
  • Includere una breve descrizione che spiega perché la funzionalità è sperimentale.
  • Usare tag significativi come secondo argomento per classificare e tenere traccia delle funzionalità sperimentali.

Procedure consigliate per la codifica e la documentazione

  • seguire gli standard di codifica: mantenere le convenzioni di codifica del kernel semantico.
  • Scrivere unit test – Assicurarsi che le funzionalità di base siano garantite e impedire le regressioni.
  • documenta tutte le modifiche: aggiornare la documentazione pertinente, inclusa EXPERIMENTS.md.
  • Usare GitHub per discussioni : aprire problemi o discussioni per raccogliere commenti e suggerimenti.
  • Considerare i flag di funzionalità – Dove appropriato, usare i flag di funzionalità per permettere la scelta di aderire o meno.

Comunicazione delle modifiche

  • Documentare chiaramente gli aggiornamenti, le correzioni o le modifiche sostanziali.
  • Fornire indicazioni sulla migrazione se la funzionalità è in continua evoluzione.
  • Contrassegnare i problemi di GitHub pertinenti per tenere traccia dello stato di avanzamento.

Futuro delle funzionalità sperimentali

Le funzionalità sperimentali seguono uno dei tre percorsi seguenti:

  1. Passaggio a stabile - Se una caratteristica è ben accolta e tecnicamente valida, può essere promossa a stabile.
  2. Deprecazione & Rimozione - Le funzionalità che non sono allineate agli obiettivi a lungo termine possono essere rimosse.
  3. Sperimentazione Continua – alcune funzionalità possono rimanere sperimentali per un periodo illimitato mentre vengono iterate.

Il team del kernel semantico si impegna a comunicare gli aggiornamenti sperimentali delle funzionalità tramite le note sulla versione e gli aggiornamenti della documentazione.

Essere coinvolti

La community svolge un ruolo fondamentale nel modellare il futuro delle funzionalità sperimentali. Inviare commenti e suggerimenti tramite:

  • Problemi di GitHub: segnalare bug, richiedere miglioramenti o condividere preoccupazioni.
  • Discussioni & Pull Request – partecipare alle discussioni e contribuire direttamente alla codebase.

Sommario

  • Funzionalità sperimentali consentire agli utenti di testare e fornire feedback sulle nuove funzionalità nel kernel semantico.
  • possono cambiare frequentemente, hanno un supporto limitato e richiedono cautela quando vengono usati nell'ambiente di produzione.
  • Collaboratori devono seguire le procedure consigliate, usare [Experimental] correttamente e documentare correttamente le modifiche.
  • Gli utenti possono eliminare gli avvisi per le funzionalità sperimentali, ma devono rimanere aggiornati sull'evoluzione.

Per i dettagli più recenti, vedere EXPERIMENTS.md.