View a markdown version of this page

Nozioni di base - Fondamento Amazon AgentCore

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à.

Nozioni di base

Puoi utilizzare il cablaggio tramite la AgentCore CLI o direttamente con AWS SDK come. boto3 La CLI è il percorso più veloce per la maggior parte degli sviluppatori; gli SDK sono destinati all'uso programmatico dalla tua applicazione.

Prerequisiti

Nozioni di base

Esempio
AWS CLI/boto3

Crea l'harness con un nome e un ruolo di esecuzione:

aws bedrock-agentcore-control create-harness \ --harness-name "MyHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole"

Sondaggio fino a. get-harness "status": "READY" Prendere nota dell'ID arn nella risposta.

aws bedrock-agentcore-control get-harness \ --harness-id "MyHarness-XyZ123"

Invoca da Python. Se non specifichi un modello, l'impostazione predefinita è Anthropic Claude Sonnet 4.6 su Amazon Bedrock:

import boto3 client = boto3.client("bedrock-agentcore", region_name="us-west-2") response = client.invoke_harness( harnessArn="arn:aws:bedrock-agentcore:us-west-2:123456789012:harness/MyHarness-XyZ123", # Replace with your harness ARN runtimeSessionId="1234abcd-12ab-34cd-56ef-1234567890ab", messages=[{ "role": "user", "content": [{"text": "Research three tropical vacation options under $3k."}] }], ) for event in response["stream"]: if "contentBlockDelta" in event: delta = event["contentBlockDelta"].get("delta", {}) if "text" in delta: print(delta["text"], end="", flush=True) elif "runtimeClientError" in event: print(f"\nError: {event['runtimeClientError']['message']}")
AgentCore CLI

AgentCore Installa la CLI:

npm install -g @aws/agentcore

Crea un progetto Harness in modo non interattivo con i flag:

agentcore create --name myresearchagent --model-provider bedrock

Implementa e richiama:

agentcore deploy agentcore invoke --harness myresearchagent \ --session-id "$(uuidgen)" \ "Research three tropical vacation options under $3k, within five hours of NYC."

La risposta viene trasmessa al tuo terminale. Riutilizza la stessa --session-id tra le chiamate per continuare la conversazione nello stesso ambiente.

Per aggiungere ulteriori vantaggi a un progetto esistente, usa. agentcore add harness Per generare uno script di invocazione Python autonomo, aggiungi. --with-invoke-script

Bandiere utili:

  • --no-browser(-b) - usa il terminale TUI invece dell'ispettore del browser

  • --logs(-l) - eseguito in modalità non interattiva con log su stdout

  • --port <port>(-p) - imposta la porta del server di sviluppo (impostazione predefinita 8080)

  • --no-traces- disabilita la raccolta di tracce OTEL locali

Interactive

Installa la AgentCore CLI:

npm install -g @aws/agentcore

Esegui agentcore create senza flag per avviare la procedura guidata interattiva:

agentcore create
  1. Inserisci il nome del tuo progetto:

    Creazione guidata: inserisci il nome del progetto
  2. Seleziona Harness come tipo di progetto:

    Creazione guidata: seleziona il tipo di progetto
  3. Scegli il tuo fornitore di modelli:

    Creazione guidata: seleziona il fornitore del modello
  4. Scegli il tuo ambiente (predefinito, URI del contenitore o Dockerfile):

    Creazione guidata: seleziona l'ambiente
  5. Configura la memoria:

    Creazione guidata: configura la memoria
  6. Facoltativamente, configura le impostazioni avanzate (strumenti, autenticazione, rete, ciclo di vita, limiti, troncamento, archiviazione delle sessioni):

    Creazione guidata: impostazioni avanzate
  7. Rivedi la tua configurazione e conferma:

    Creazione guidata: rivedi e conferma

Dopo la conferma, il wizard rafforza il tuo progetto. Implementa conagentcore deploy, quindi richiama con. agentcore invoke

Controlla lo stato del progetto in qualsiasi momento con: agentcore status

AgentCore dashboard di stato
  1. Sviluppo locale

Se vuoi testare il cablaggio nel tuo ambiente locale, puoi eseguire il server di sviluppo:

agentcore dev

Durante l'esecuzioneagentcore dev, la CLI distribuisce innanzitutto le risorse del cablaggio AWS, creando il ruolo IAM, il cablaggio e qualsiasi memoria o credenziale configurate nel progetto:

Progresso dell'implementazione: creazione delle risorse CloudFormation

Una volta completata la distribuzione, avvia un server locale e apre l'agent inspector nel browser, dove puoi chattare con l'harness, ispezionare le tracce e sfogliare le risorse del progetto:

Agent Inspector: chatta con il tuo harness

Espandi le impostazioni del cablaggio per visualizzare e sovrascrivere la configurazione del cablaggio per la sessione corrente:

Agent Inspector: impostazioni e configurazione del cablaggio

È tutto ciò di cui hai bisogno per far funzionare un'imbracatura. Le seguenti sezioni descrivono tutto ciò che è possibile configurare.

Nota

runtimeSessionIdDeve contenere almeno 33 caratteri. Usa un UUID o un identificatore simile. Riutilizza lo stesso ID di sessione tra le chiamate per continuare una conversazione nello stesso ambiente.

Documentazione API

Per ulteriori dettagli, consulta l'API Reference:

Formato di risposta in streaming

InvokeHarnessrestituisce un flusso di eventi. I tipi di eventi chiave sono:

  • messageStart- inizio di un nuovo messaggio (includerole)

  • contentBlockStart- inizio di un blocco di contenuto (testotoolUse, otoolResult)

  • contentBlockDelta- contenuto incrementale (text, toolUse input,reasoningContent)

  • contentBlockStop- fine di un blocco di contenuti

  • messageStop- fine del messaggio (includestopReason)

  • metadata- metriche sull'utilizzo dei token e sulla latenza

  • runtimeClientError- errore durante l'esecuzione

Il stopReason pin messageStop indica il motivo per cui l'agente si è fermato:

  • end_turn- l'agente ha terminato normalmente

  • tool_use- l'agente sta chiamando una funzione in linea e attende un risultato sul lato client

  • max_tokens- è stato raggiunto il limite di token per turno del modello

  • max_iterations_exceeded- il maxIterations limite è stato raggiunto

  • timeout_exceeded- il timeoutSeconds limite è stato raggiunto

  • max_output_tokens_exceeded- il maxTokens budget era esaurito