View a markdown version of this page

Nozioni di base - Amazon Bedrock AgentCore

Nozioni di base

È possibile utilizzare il cablaggio tramite la AgentCore CLI o direttamente AWS con SDK come. boto3 La CLI è il percorso più veloce per la maggior parte degli sviluppatori; gli SDK possono essere utilizzati a livello di programmazione dalla propria 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 al. 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, il cablaggio predefinito è 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

Installa la AgentCore CLI:

npm install -g @aws/agentcore

Crea un progetto di cablaggio in modo non interattivo con le bandiere:

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

Distribuisci 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 arriva al tuo terminale. Riutilizza la stessa --session-id in tutte le invocazioni per continuare la conversazione nello stesso ambiente.

Per aggiungere altri cablaggi a un progetto esistente, usa. agentcore add harness Per generare uno script di invoca Python autonomo, aggiungi. --with-invoke-script

Bandiere utili:

  • --no-browser(-b) - utilizza il terminale TUI anziché l'ispettore del browser

  • --logs(-l) - viene 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 locale

Interactive

Installa la AgentCore CLI:

npm install -g @aws/agentcore

Esegui agentcore create senza bandiere 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:

    Crea procedura guidata: seleziona il tipo di progetto
  3. Scegli il fornitore del tuo modello:

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

    Crea procedura guidata: seleziona l'ambiente
  5. Configura la memoria:

    Creazione guidata: configurazione della memoria
  6. Configura facoltativamente le impostazioni avanzate (strumenti, autenticazione, rete, ciclo di vita, limiti, troncamento, archiviazione della sessione):

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

    Creazione guidata: verifica e conferma

Dopo la conferma, la procedura guidata consolida il tuo progetto. Distribuisci con, quindi richiama conagentcore deploy. agentcore invoke

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

AgentCore dashboard di stato
  1. Sviluppo locale

Se vuoi testare l'harness nel tuo ambiente locale, puoi eseguire il server di sviluppo:

agentcore dev

Quando eseguiagentcore dev, la CLI distribuisce innanzitutto le tue risorse di cablaggio AWS, creando il ruolo IAM, l'harness e qualsiasi memoria o credenziale configurata nel tuo progetto:

Implementazione dei progressi: creazione di risorse CloudFormation

Una volta completata l'implementazione, avvia un server locale e apre l'Agent Inspector nel browser, dove è possibile chattare con l'harness, ispezionare le tracce e sfogliare le risorse del progetto:

Agent Inspector: chatta con la tua imbracatura

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ò che serve per far funzionare un'imbracatura. Le seguenti sezioni coprono 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 principali tipi di eventi sono:

  • messageStart- inizio di un nuovo messaggio (includerole)

  • contentBlockStart- inizio di un blocco di contenuto (testo otoolResult) toolUse

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

  • contentBlockStop- fine di un blocco di contenuto

  • messageStop- fine del messaggio (includestopReason)

  • metadata- metriche relative all'utilizzo dei token e alla latenza

  • runtimeClientError- errore durante l'esecuzione

L'stopReasonin 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