Configurare una fonte di conoscenza in Agentic Retrieval in Foundry Local

Questa guida illustra come configurare le origini delle informazioni in Recupero agentico. Una fonte di conoscenza è una registrazione indipendente della connessione a un server MCP, facoltativamente vincolata a uno specifico riferimento a una fonte indicizzata. Ogni origine della knowledge base include tutti i dettagli della connessione al server MCP (URL, tipo di autenticazione).

Importante

Agentic Retrieval in Foundry Local è attualmente in ANTEPRIMA. Vedi le Condizioni supplementari d'uso per le anteprime di Microsoft Azure per conoscere le condizioni legali applicabili alle funzionalità di Azure che sono in beta, in anteprima o non ancora rilasciate nella disponibilità generale.

Prerequisiti

  • Distribuisci Agentic Retrieval in modalità combinata o agentica.

  • Server MCP. Uno dei due: il server MCP di Agentic Retrieval integrato o uno esterno.

  • Token di connessione con il ruolo EdgeRAGDeveloper per le operazioni di scrittura.

    TOKEN=$(az account get-access-token \
      --resource "api://<app-registration-client-id>" \
      --query accessToken -o tsv)
    

Tipi di origine delle informazioni

La tabella seguente descrive i due tipi di origini delle conoscenze che è possibile creare:

Kind Campo dei parametri Caso di utilizzo
remote_mcp remote_mcp_parameters Registrare qualsiasi server MCP esterno.
indexed_sources_mcp indexed_sources_parameters Registrare il server predefinito indexed-source-mcp che punta a un'origine indicizzata specifica, ad esempio una raccolta.

Passaggio 1: Creare un'origine delle conoscenze MCP remota

Per registrare un server MCP esterno direttamente come origine della knowledge base, inviare una richiesta POST con i dettagli della connessione al server:

curl -X POST https://<cluster-domain>/edgeai/knowledgesources \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "my-external-mcp",
    "kind": "remote_mcp",
    "auth_type": "unauthenticated",
    "description": "External MCP server for document search",
    "remote_mcp_parameters": {
      "server_url": "https://my-mcp-server.example.com/mcp",
      "server_label": "doc-search"
    }
  }'

È possibile verificare la risposta riuscita (201 Creato):

{
  "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
  "name": "my-external-mcp",
  "kind": "remote_mcp",
  "description": "External MCP server for document search",
  "auth_type": "unauthenticated",
  "remote_mcp_parameters": {
    "server_url": "https://my-mcp-server.example.com/mcp",
    "server_label": "doc-search"
  },
  "indexed_sources_parameters": null,
  "validation_status": "active",
  "validation_error": null,
  "validated_at": "2026-03-29T12:00:00.000000+00:00",
  "created_by": null,
  "created_at": "2026-03-29T12:00:00.000000+00:00",
  "updated_at": "2026-03-29T12:00:00.000000+00:00"
}

Campi remote_mcp_parameters

La tabella seguente descrive i parametri per le connessioni MCP remote:

Campo Obbligatorio Description
server_url Yes URL dell'endpoint del server MCP
server_label No Etichetta leggibile da umani per il server

Passaggio 2: Creare un'origine di conoscenza MCP indicizzata

Per registrare il server MCP predefinito che punta a un'origine indicizzata specifica (raccolta), inviare una richiesta POST con i dettagli della connessione all'origine indicizzata:

curl -X POST https://<cluster-domain>/edgeai/knowledgesources \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "my-docs-search",
    "kind": "indexed_sources_mcp",
    "auth_type": "microsoft_entra_id",
    "description": "Search the my-docs collection",
    "indexed_sources_parameters": {
      "server_url": "https://<cluster-domain>/edgeai/mcp",
      "indexed_source_ref": "my-docs",
      "server_label": "indexed-sources-mcp-server"
    }
  }'

Campi indexed_sources_parameters

Nella tabella seguente vengono descritti i parametri per le connessioni di origine indicizzate:

Campo Obbligatorio Description
server_url Yes URL dell'endpoint del server indexed-source-mcp.
indexed_source_ref Yes Nome dell'origine indicizzata (raccolta) a cui connettersi.
server_label No Etichetta leggibile dall'uomo. Di default è "indexed-sources-mcp-server".

Importante

Quando si usano gli strumenti di ricerca del server MCP predefiniti, indexed_source_ref fa riferimento a un nome di raccolta , ad esempio "my-docs". Questo è il collegamento tra il livello agentico e le raccolte del livello di conoscenza.

Convalida e autenticazione MCP

Quando viene creata un'origine conoscenze o i relativi parametri di connessione vengono aggiornati, il servizio convalida la connessione MCP prima di rendere persistente:

  • Estrae server_url dai parametri.
  • Esegue un controllo di sicurezza SSRF/DNS (blocca indirizzi IP privati/interni).
  • Invia una richiesta di JSON-RPC initialize al server MCP (timeout connessione: 5s, timeout di lettura: 30s).
  • Ritenta fino a tre volte con backoff esponenziale (1s, 2s).
  • Se la convalida ha esito positivo: validation_status è impostata su active, il record viene salvato in modo permanente.
  • Se la convalida ha esito negativo: la richiesta viene rifiutata con 400 Bad Request. Non viene salvato in modo permanente (in caso di creazione) o modificato (in caso di aggiornamento).
Condizione Description
unknown Stato predefinito. Non è stato convalidato.
active MCP initialize è riuscito. validated_at è impostato.

Annotazioni

Se la convalida non riesce durante la creazione, la richiesta viene rifiutata con 400 Bad Request e non viene mantenuto alcun record. Se la convalida non riesce all'aggiornamento, non vengono modificati campi. In entrambi i casi, la risposta di errore contiene i dettagli dell'errore di convalida.

Tipi di autenticazione supportati

Nella tabella seguente vengono descritti i tipi di autenticazione supportati per le origini delle informazioni:

Tipo di autenticazione Description Quando utilizzare
microsoft_entra_id Inoltra al server MCP l'intestazione Authorization del chiamante. Quando il server MCP convalida Entra ID token.
unauthenticated Le intestazioni di autenticazione non vengono inoltrate al server MCP. Quando il server MCP non ha requisiti di autenticazione( ad esempio, il servizio interno).

Passaggio 3: Aggiorna una fonte di conoscenza

Per modificare una fonte di conoscenza esistente, inviare una richiesta PATCH con i campi da aggiornare. Se i parametri di connessione o auth_type vengono modificati, la convalida MCP viene eseguita di nuovo. Se la riconvalida ha esito negativo, non vengono aggiornati campi.

Inviare una richiesta PATCH con i campi da aggiornare:

curl -X PATCH https://<cluster-domain>/edgeai/knowledgesources/<ks-id> \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "updated-name",
    "description": "Updated description"
  }'

Importante

Il kind campo non è modificabile dopo la creazione. Specificare un campo dei parametri che non corrisponde all'origine kind della knowledge base restituisce 400 Bad Request.

Passaggio 4: Eliminare le origini delle informazioni

È possibile eliminare le origini delle informazioni singolarmente o in operazioni batch.

  1. Eliminare una singola origine delle informazioni.

    curl -X DELETE https://<cluster-domain>/edgeai/knowledgesources/<ks-id> \
      -H "Authorization: Bearer $TOKEN"
    
  2. Eliminare in batch più origini di informazioni.

    curl -X POST https://<cluster-domain>/edgeai/knowledgesources/batch-delete \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
        "ks_ids": ["<ks-id-1>", "<ks-id-2>"]
      }'
    

Passaggio 5: Completa un esempio completo

Segui questo flusso completo per creare una fonte di conoscenza e collegarla alla base di conoscenza predefinita.

  1. Crea una fonte di conoscenza per la tua collezione.

    KS_RESPONSE=$(curl -s -X POST https://<cluster-domain>/edgeai/knowledgesources \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
        "name": "my-docs-search",
        "kind": "indexed_sources_mcp",
        "auth_type": "microsoft_entra_id",
        "description": "Search the my-docs collection",
        "indexed_sources_parameters": {
          "server_url": "https://<cluster-domain>/edgeai/mcp",
          "indexed_source_ref": "my-docs",
          "server_label": "indexed-sources-mcp-server"
          }
        }
      }')
    
    KS_ID=$(echo $KS_RESPONSE | jq -r '.id')
    echo "Knowledge Source ID: $KS_ID"
    
  2. Ottieni l'ID predefinito della knowledge base.

    KB_ID=$(curl -s https://<cluster-domain>/knowledge-bases?limit=1 \
      -H "Authorization: Bearer $TOKEN" | jq -r '.data[0].id')
    echo "Knowledge Base ID: $KB_ID"
    
  3. Collega la fonte di conoscenza alla base di conoscenza predefinita.

    curl -X PATCH https://<cluster-domain>/knowledge-bases/$KB_ID \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d "{
        \"knowledge_source_ids\": [\"$KS_ID\"]
      }"
    

La Knowledge Base è ora pronta per l'uso. Per creare thread, inviare messaggi ed eseguire esecuzioni, vedere Avvio rapido: Eseguire query sui dati.