

# Erste Schritte mit AgentCore Gateway
<a name="gateway-quick-start"></a>

In dieser Schnellstartanleitung erfahren Sie, wie Sie ein Gateway einrichten und es mithilfe der AgentCore CLI in Ihre Agenten integrieren. Umfassendere Anleitungen und Beispiele finden Sie im [Amazon Bedrock AgentCore GitHub Gateway-Repository](https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/01-tutorials/02-AgentCore-gateway).

**Anmerkung**  
Die AgentCore CLI bietet sowohl Befehle als auch einen interaktiven TUI-Assistenten für die Verwaltung von AgentCore Gateway-Ressourcen. Die vollständige AWS SDK-API-Referenz finden Sie unter [Operationen auf der AgentCore Steuerungsebene](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html).

**Topics**
+ [Voraussetzungen](#gateway-quick-start-prereqs)
+ [Schritt 1: Einrichtung und Installation](#gateway-quick-start-setup)
+ [Schritt 2: Gateway erstellen](#gateway-quick-start-create-gateway-setup)
+ [Schritt 3: Führen Sie das Setup aus](#gateway-quick-start-run-setup)
+ [Schritt 4: Verwenden Sie das Gateway mit einem Agenten](#gateway-quick-start-use-gateway-with-agents)
+ [Was du gebaut hast](#gateway-quick-start-what-youve-built)
+ [Fehlerbehebung](#gateway-quick-start-troubleshooting)
+ [Schnelle Validierung](#gateway-quick-start-quick-validation)
+ [Bereinigen](#gateway-quick-start-cleanup)
+ [Nächste Schritte](#gateway-quick-start-next-steps)

## Voraussetzungen
<a name="gateway-quick-start-prereqs"></a>

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:
+  ** AWS Konto** mit konfigurierten Anmeldeinformationen. Um Anmeldeinformationen zu konfigurieren, können Sie die AWS Befehlszeilenschnittstelle installieren und verwenden, indem Sie die Schritte unter [Erste Schritte mit der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) ausführen.
+  **Node.js 18\+** installiert (für die AgentCore CLI).
+  **Python 3.10\+** installiert (für das Agentenskript).
+  **IAM-Berechtigungen** für die Erstellung von Rollen und Lambda-Funktionen und die Verwendung von Amazon Bedrock. AgentCore
+  **Model Access** — Aktivieren Sie Claude Sonnet 3.7 von Anthropic in der Amazon Bedrock-Konsole (oder einem anderen Modell für den Demo-Agenten)

## Schritt 1: Einrichtung und Installation
<a name="gateway-quick-start-setup"></a>

Installieren Sie die AgentCore CLI global:

```
npm install -g @aws/agentcore
```

Erstellen Sie ein neues AgentCore Projekt mit einem Agenten und einem Gateway:

**Example**  

1. 

   ```
   agentcore create --name MyGatewayAgent --defaults
   ```

   Das `--defaults` Flag erstellt ein Projekt mit einem standardmäßigen Python Strings-Agenten. Sie können es auch weglassen `--defaults` und `--name` den interaktiven Assistenten verwenden, um Ihr bevorzugtes Framework auszuwählen.

1. Sie können auch `agentcore create` ohne Flags ausführen, um den interaktiven Assistenten zu verwenden. Der Assistent führt Sie durch die Auswahl eines Projektnamens, eines Agent-Frameworks, eines Modellanbieters und anderer Optionen.

## Schritt 2: Gateway erstellen
<a name="gateway-quick-start-create-gateway-setup"></a>

Fügen Sie Ihrem Projekt mithilfe der AgentCore CLI ein Gateway und ein Ziel hinzu:

**Example**  

1. 

   ```
   # Add a gateway with no inbound auth (simplest for getting started)
   agentcore add gateway --name TestGateway --authorizer-type NONE --runtimes MyGatewayAgent
   
   # Add a Lambda function target
   agentcore add gateway-target --name TestLambdaTarget --type lambda-function-arn \
     --lambda-arn <YOUR_LAMBDA_ARN> \
     --tool-schema-file tools.json \
     --gateway TestGateway
   ```

1. Führen Sie den Befehl aus, `agentcore` um die TUI zu öffnen, wählen Sie dann **Hinzufügen** und dann **Gateway** aus:

1. Geben Sie den Gateway-Namen ein:  
![Gateway-Assistent: Geben Sie den Namen ein](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-name.png)

1. Wählen Sie den Autorisierungstyp aus. **Wählen Sie für diesen Schnellstart NONE:**  
![Gateway-Assistent: Wählen Sie NONE Authorizer](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-auth-none.png)

1. Konfigurieren Sie erweiterte Optionen oder akzeptieren Sie die Standardeinstellungen:  
![Gateway-Assistent: erweiterte Konfiguration](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-advanced.png)

1. Überprüfen Sie die Konfiguration und drücken Sie die **Eingabetaste**, um Folgendes zu bestätigen:  
![Gateway-Assistent: Konfiguration überprüfen](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-confirm.png)

   Wählen Sie als Nächstes erneut **Hinzufügen** und dann **Gateway Target**, um ein Lambda-Funktionsziel hinzuzufügen:

1. Geben Sie den Namen des Ziels ein.

1. Wählen Sie die **Lambda-Funktion** als Zieltyp aus:  
![Gateway-Zielassistent: Lambda-Funktion auswählen](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-target-type-lambda.png)

1. Geben Sie den Lambda-ARN und den Dateipfad für das Tool-Schema ein und bestätigen Sie dann.

Um stattdessen die JWT-based Autorisierung zu verwenden, geben Sie `--authorizer-type CUSTOM_JWT` mit Ihrer OAuth-Discovery-URL Folgendes an:

**Example**  

1. 

   ```
   agentcore add gateway --name TestGateway \
     --authorizer-type CUSTOM_JWT \
     --discovery-url https://cognito-idp.us-east-1.amazonaws.com/<POOL_ID>/.well-known/openid-configuration \
     --allowed-audience <CLIENT_ID> \
     --runtimes MyGatewayAgent
   ```

1. **Führen Sie den Befehl aus, `agentcore` um die TUI zu öffnen, wählen Sie dann **Hinzufügen** und dann Gateway aus.** Wenn Sie nach dem Autorisierungstyp gefragt werden, wählen Sie **Benutzerdefiniertes JWT** aus:

1. Geben Sie den Gateway-Namen ein:  
![Gateway-Assistent: Geben Sie den Namen ein](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-name.png)

1. Wählen Sie **Benutzerdefiniertes JWT** als Autorisierungstyp aus:  
![Gateway-Assistent: Wählen Sie Benutzerdefinierter JWT-Autorisierer](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-auth-jwt.png)

1. Geben Sie die OAuth-Discovery-URL und die zulässige Zielgruppe ein, wenn Sie dazu aufgefordert werden.

1. Konfigurieren Sie erweiterte Optionen oder akzeptieren Sie die Standardeinstellungen:  
![Gateway-Assistent: erweiterte Konfiguration](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-advanced.png)

1. Überprüfen Sie die Konfiguration und drücken Sie die **Eingabetaste**, um Folgendes zu bestätigen:  
![Gateway-Assistent: Konfiguration überprüfen](https://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/tui/gateway-add-confirm.png)

## Schritt 3: Führen Sie das Setup aus
<a name="gateway-quick-start-run-setup"></a>

Stellen Sie Ihr Projekt bereit für AWS:

```
agentcore deploy
```

Die CLI synthetisiert einen AWS CDK-Stack und stellt Ihr Gateway, Ihre Ziele und Ihren Agenten auf Amazon Bedrock bereit. AgentCore Dies dauert etwa 2-3 Minuten.

## Schritt 4: Verwenden Sie das Gateway mit einem Agenten
<a name="gateway-quick-start-use-gateway-with-agents"></a>

Rufen Sie Ihre Gateway-URL mit der AgentCore CLI ab:

```
agentcore status
```

Erstellen Sie eine neue Datei mit dem Namen `run_agent.py` und fügen Sie den folgenden Code ein. Installieren Sie zuerst die Python-Abhängigkeiten:

```
pip install strands-agents mcp
```

```
"""
Agent script to test the Gateway
Run this after setup: python run_agent.py
"""

from strands import Agent
from strands.models import BedrockModel
from strands.tools.mcp.mcp_client import MCPClient
from mcp.client.streamable_http import streamablehttp_client
import json
import sys

def create_streamable_http_transport(mcp_url: str):
    return streamablehttp_client(mcp_url)

def get_full_tools_list(client):
    """Get all tools with pagination support"""
    more_tools = True
    tools = []
    pagination_token = None
    while more_tools:
        tmp_tools = client.list_tools_sync(pagination_token=pagination_token)
        tools.extend(tmp_tools)
        if tmp_tools.pagination_token is None:
            more_tools = False
        else:
            more_tools = True
            pagination_token = tmp_tools.pagination_token
    return tools

def run_agent():
    # Get the gateway URL from agentcore status
    gateway_url = "<YOUR_GATEWAY_URL>"  # Replace with URL from 'agentcore status'

    # Model configuration - change if needed
    model_id = "anthropic.claude-3-7-sonnet-20250219-v1:0"

    print("Starting AgentCore Gateway Test Agent")
    print(f"Gateway URL: {gateway_url}")
    print(f"Model: {model_id}")
    print("-" * 60)

    # Setup Bedrock model
    bedrockmodel = BedrockModel(
        model_id=model_id,
        streaming=True,
    )

    # Setup MCP client (no auth token needed for NONE authorizer)
    mcp_client = MCPClient(lambda: create_streamable_http_transport(gateway_url))

    with mcp_client:
        # List available tools
        tools = get_full_tools_list(mcp_client)
        print(f"\nAvailable tools: {[tool.tool_name for tool in tools]}")
        print("-" * 60)

        # Create agent
        agent = Agent(model=bedrockmodel, tools=tools)

        # Interactive loop
        print("\nInteractive Agent Ready!")
        print("Try asking: 'What's the weather in Seattle?'")
        print("Type 'exit', 'quit', or 'bye' to end.\n")

        while True:
            user_input = input("You: ")
            if user_input.lower() in ["exit", "quit", "bye"]:
                print("Goodbye!")
                break

            print("\nThinking...\n")
            response = agent(user_input)
            print(f"\nAgent: {response.message.get('content', response)}\n")

if __name__ == "__main__":
    run_agent()
```

### Führen Sie Ihren Agenten aus
<a name="gateway-quick-start-run-agent"></a>

Testen Sie Ihr Gateway, indem Sie den Agenten ausführen und mit den Tools interagieren.

```
python run_agent.py
```

Das ist es\! Der Agent wird gestartet und Sie können Fragen stellen wie:
+ „Wie ist das Wetter in Seattle?“
+ „Wie viel Uhr ist es in New York?“

## Was du gebaut hast
<a name="gateway-quick-start-what-youve-built"></a>

In diesem Tutorial für die ersten Schritte haben Sie die folgenden Ressourcen erstellt:
+  **MCP Server (Gateway)**: Ein verwalteter Endpunkt unter `https://gateway-id.gateway.bedrock-agentcore.region.amazonaws.com/mcp` 
+  **Lambda-Tools**: Scheinfunktionen, die Testdaten zurückgeben (Wetter: „72°F, Sunny“, Uhrzeit: "14:30 Uhr“)
+  **KI-Agent**: Claude-powered Assistent, der Ihre Tools entdecken und verwenden kann

## Fehlerbehebung
<a name="gateway-quick-start-troubleshooting"></a>

Die folgende Tabelle zeigt einige mögliche Probleme und deren Lösungen:


| Problem | Lösung | 
| --- | --- | 
| „Kein Modul mit dem Namen 'Strands'“ | Lauf: `pip install strands-agents`  | 
| „Modell nicht aktiviert“ | Aktivieren Sie Claude Sonnet 3.7 in der Bedrock-Konsole → Modellzugriff | 
| "AccessDeniedException" | Überprüfen Sie die IAM-Berechtigungen für Bedrock-Agentcore: \* | 
| Gateway reagiert nicht | Warten Sie nach der Erstellung 30-60 Sekunden auf die DNS-Propagierung | 

## Schnelle Validierung
<a name="gateway-quick-start-quick-validation"></a>

Führen Sie die folgenden Befehle in einem Terminal aus, um zu überprüfen, ob Ihr Gateway funktioniert.

```
# Check your Gateway is working
curl -X POST YOUR_GATEWAY_URL \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# Watch live logs
aws logs tail /aws/bedrock-agentcore/gateways/YOUR_GATEWAY_ID --follow
```

## Bereinigen
<a name="gateway-quick-start-cleanup"></a>

Um das Gateway und seine Ziele aus Ihrem Projekt zu entfernen:

```
agentcore remove gateway --name TestGateway
```

So entfernen Sie alle Ressourcen und stellen sie erneut bereit:

```
agentcore remove all
agentcore deploy
```

## Nächste Schritte
<a name="gateway-quick-start-next-steps"></a>
+  **Benutzerdefinierte Lambda-Tools**: Erstellen Sie Lambda-Funktionen mit Ihrer Geschäftslogik
+  **Fügen Sie Ihre eigenen APIs** hinzu: Erweitern Sie Ihr Gateway mit OpenAPI-Spezifikationen für echte Dienste
+  **Produktionseinrichtung**: Konfiguration von VPC-Endpunkten, benutzerdefinierten Domänen und Überwachung