View a markdown version of this page

Riferimento agli strumenti - AWS Centrale Partner

L' AWS Partner Central API Reference è stato ristrutturato. Per ulteriori informazioni sulle operazioni API supportate, consulta l'AWS Partner Central API Reference.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riferimento agli strumenti

Il server MCP Partner Central Agent offre due strumenti MCP: sendMessage per tutte le interazioni tra agenti e getSession per il recupero dello stato della sessione. Tutte le operazioni di Partner Central (richieste di opportunità, richieste di finanziamento, analisi dei documenti) vengono gestite tramite il linguaggio naturale tramite. sendMessage

Panoramica degli strumenti

Strumento Description Categoria
sendMessage Invia messaggi all'agente AI di Partner Central. Supporta testo, file allegati e risposte di approvazione «human-in-the-loop». Lettura/ Scrittura
getSession Recupera lo stato della sessione, inclusa la cronologia delle conversazioni, gli eventi e i metadati. Read-only

Invia messaggio

Strumento principale per tutte le interazioni con gli agenti di Partner Central AI. Utilizza questo strumento per porre domande, richiedere azioni, allegare documenti per l'analisi e rispondere alle richieste di approvazione per le operazioni di scrittura.

L'agente mantiene il contesto della conversazione all'interno di una sessione, in modo da poter porre domande di follow-up senza ripetere il contesto precedente.

Parameters

  • content(obbligatorio): matrice di blocchi di contenuto. Ogni blocco deve includere un type campo che determina la struttura del blocco. Puoi includere più blocchi in un singolo messaggio (ad esempio, testo più documento allegato).

    Tipi di blocchi di contenuto:

    Tipo Campi Description
    text type(richiesto), text (richiesto) Testo del messaggio utente inviato all'agente
    document type(richiesto), filename (obbligatorio), s3Uri (obbligatorio) File allegato da analizzare per l'agente. s3UriDeve includere un versionId parametro.
    tool_approval_response type(obbligatorio), toolUseId decision (obbligatorio), message (opzionale) Risposta a una richiesta di approvazione umana
  • catalog(obbligatorio) — Ambiente di destinazione per l'operazione.

    Valori validi: "AWS" (produzione), "Sandbox" (test)

  • sessionId(opzionale) — L'UUID v4 identifica una sessione esistente per continuare. Ometti per creare una nuova sessione. Formato:session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

    Predefinito: una nuova sessione viene creata automaticamente.

  • stream(opzionale): abilita lo streaming di Server-Sent eventi (SSE) per la consegna di risposte in tempo reale.

    Valori validi: true, false

    Impostazione predefinita: false

Risposta

La risposta include:

Campo Description
sessionId Identificatore di sessione per i messaggi di follow-up
status Stato della risposta:"complete", o "requires_approval" "error"
content Matrice di blocchi di contenuto delle risposte forniti dall'agente

Esempi

Messaggio di testo di base (nuova sessione)

Richiesta:

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "content": [ { "type": "text", "text": "List my open opportunities with expected close date in Q1 2026" } ], "catalog": "AWS" } } }

Risposta:

{ "jsonrpc": "2.0", "id": 1, "result": { "content": [ { "type": "text", "text": "I found 12 open opportunities with expected close dates in Q1 2026. Here's a summary:\n\n1. **O1234567890** - Acme Corp Cloud Migration - $250,000 - Qualified stage\n2. **O1234567891** - GlobalTech Data Analytics - $180,000 - Prospect stage\n..." } ], "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "status": "complete" } }

Follow-up messaggio (sessione esistente)

Richiesta:

{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "content": [ { "type": "text", "text": "Tell me more about O1234567890. Is it ready for submission?" } ], "catalog": "AWS" } } }

File allegato

Carica prima un documento su S3, quindi fai riferimento ad esso nel messaggio:

{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "content": [ { "type": "text", "text": "Review this customer proposal and suggest which opportunity it aligns with" }, { "type": "document", "filename": "acme-proposal.pdf", "s3Uri": "s3://aws-partner-central-marketplace-ephemeral-writeonly-files/123456789012/acme-proposal.pdf?versionId=abc123def456" } ], "catalog": "AWS" } } }

Vincoli di caricamento dei file:

  • Massimo 3 file per messaggio

  • Limite di dimensione dell'immagine: 3,75 MB

  • Limite di dimensione del documento: 4,5 MB

  • Estensioni consentite: docdocx,pdf,png,jpeg,xlsx,csv, txt

  • I file devono essere caricati su s3://{bucket}/{your-aws-account-id}/

  • L'URI S3 deve includere il parametro di versionId query

Human-in-the-loop flusso di lavoro di approvazione

Quando l'agente deve eseguire un'operazione di scrittura (ad esempio, aggiornare un'opportunità, inviare una richiesta di finanziamento), restituisce uno "requires_approval" stato con i dettagli dell'azione proposta. È necessario rispondere con un blocco tool_approval_response di contenuto.

Fase 1 — L'agente richiede l'approvazione:

{ "jsonrpc": "2.0", "id": 4, "result": { "content": [ { "type": "text", "text": "I'd like to update opportunity O1234567890 with the following changes:\n- Target close date: 2026-03-31\n- Expected revenue: $300,000\n- Stage: Qualified\n\nPlease approve, reject, or override this action." }, { "type": "tool_approval_request", "toolUseId": "tool-use-98765", "toolName": "update_opportunity_enhanced", "parameters": { "opportunityId": "O1234567890", "targetCloseDate": "2026-03-31", "expectedRevenue": 300000, "stage": "Qualified" } } ], "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "status": "requires_approval" } }

Fase 2: Approvare l'azione:

{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "content": [ { "type": "tool_approval_response", "toolUseId": "tool-use-98765", "decision": "approve" } ], "catalog": "AWS" } } }

Fase 2 (alternativa) — Rifiuta l'azione:

{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "content": [ { "type": "tool_approval_response", "toolUseId": "tool-use-98765", "decision": "reject", "message": "The expected revenue should be $250,000, not $300,000" } ], "catalog": "AWS" } } }

Passaggio 2 (alternativa): sostituisci con una risposta personalizzata:

{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "content": [ { "type": "tool_approval_response", "toolUseId": "tool-use-98765", "decision": "override", "message": "Use expected revenue of $250,000 and keep the stage as Prospect instead" } ], "catalog": "AWS" } } }

Valori della decisione di approvazione:

Decisione Comportamento
"approve" Esegui lo strumento con i parametri proposti
"reject" Non eseguite lo strumento. Facoltativo message spiega il motivo.
"override" Fornisci una risposta personalizzata o istruzioni modificate tramite message

Streaming con SSE

Abilita lo streaming per ricevere blocchi di risposta incrementali man mano che l'agente elabora la tua richiesta:

Richiesta:

{ "jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "content": [ { "type": "text", "text": "Analyze my pipeline and identify opportunities at risk" } ], "catalog": "AWS", "stream": true } } }

Il server risponde con un flusso di eventi SSE:

event: stream_start data: {"sessionId": "session-550e8400-e29b-41d4-a716-446655440000"} event: assistant-response.start data: {} event: server-tool-use data: {"toolName": "analyze_pipeline", "parameters": {}} event: server-tool-response data: {"toolName": "analyze_pipeline", "result": {"opportunitiesAnalyzed": 47, "atRisk": 5}} event: assistant-response.delta data: {"text": "I analyzed your pipeline of 47 opportunities and identified "} event: assistant-response.delta data: {"text": "5 that are at risk of slipping:\n\n"} event: assistant-response.delta data: {"text": "1. **O2345678901** - Close date is past due by 15 days\n"} event: assistant-response.completed data: {"status": "complete"} event: stream_end data: {}

GetSession

Recupera lo stato corrente di una sessione di conversazione, inclusa la cronologia completa delle conversazioni, gli eventi e i metadati. Utilizzalo per controllare lo stato della sessione, rivedere le interazioni passate o riprendere una conversazione.

Parameters

  • sessionId(obbligatorio) — UUID della sessione da recuperare. Formato:. session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

  • catalog(obbligatorio) — Ambiente a cui appartiene la sessione.

    Valori validi: "AWS", "Sandbox"

Risposta

Campo Tipo Description
sessionId stringa Identificatore di sessione
createdAt stringa Timestamp ISO 8601 di creazione della sessione
lastActivity stringa Timestamp ISO 8601 dell'ultima attività
sequenceNumber intero Numero di sequenza dell'evento corrente
stateType stringa Stato della sessione corrente
events array Cronologia completa delle conversazioni (messaggi degli utenti, risposte degli agenti, utilizzi degli strumenti)
variables oggetto Variabili di sessione e metadati
eventCount intero Numero totale di eventi nella sessione

Esempio

Richiesta:

{ "jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": { "name": "getSession", "arguments": { "sessionId": "session-550e8400-e29b-41d4-a716-446655440000", "catalog": "AWS" } } }

Risposta:

{ "jsonrpc": "2.0", "id": 7, "result": { "content": [ { "type": "text", "text": "{\"sessionId\":\"session-550e8400-e29b-41d4-a716-446655440000\",\"createdAt\":\"2026-01-15T10:30:00Z\",\"lastActivity\":\"2026-01-15T11:45:00Z\",\"sequenceNumber\":8,\"stateType\":\"END_TURN\",\"eventCount\":8,\"events\":[...],\"variables\":{}}" } ] } }

Gestione degli errori

Tutti gli errori seguono il formato di errore JSON-RPC 2.0:

{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32001, "message": "Authentication failed. Verify your SigV4 credentials and ensure they have not expired." } }

Vedi Codici di errore l'elenco completo dei codici di errore e dei relativi significati.

Strategia di riprova consigliata

  • Per -32004 (LIMIT_EXCEEDED): Riprova con backoff esponenziale a partire da 1 secondo

  • Per -32603 (INTERNAL_ERROR): Riprova fino a 3 volte con backoff esponenziale

  • Per -32001 (AUTHENTICATION_FAILURE): aggiorna le credenziali e riprova

  • Per tutti gli altri errori: non riprovare automaticamente: controlla il messaggio di errore e correggi la richiesta