

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# API 기반 AI 에이전트 제품 통합
<a name="integrating-api-ai-agents-tools"></a>

## API 기반 AI 에이전트 제품 지침
<a name="api-ai-agents-guidelines"></a>

AWS Marketplace 는 모든 서비스형 소프트웨어(SaaS) API 기반 AI 에이전트 제품에 대한 지침을 제공합니다. 이러한 지침은 고객에게 안전하고 신뢰할 수 있는 환경을 보장합니다.

**Topics**
+ [제품 검토 프로세스](#product-review-process)
+ [규정 준수 유지](#maintaining-compliance)

### 제품 검토 프로세스
<a name="product-review-process"></a>

제품을 제출하면는 제품 및 메타데이터를 AWS Marketplace 검토하여 현재 지침을 충족하는지 확인합니다. 진화하는 보안 요구 사항을 해결하기 위해 이러한 지침은 정기적으로 업데이트됩니다.

### 규정 준수 유지
<a name="maintaining-compliance"></a>

AWS Marketplace 는 제품을 지속적으로 모니터링하여 규정 준수를 확인합니다. 제품이 현재 지침을 충족하지 않는 경우:
+ 문제를 해결할 때까지 새 구독자가 제품을 사용하지 못할 수 있습니다.
+ 새 요구 사항을 충족하도록 제품을 업데이트해야 합니다.


| 카테고리 | 지침 | 
| --- | --- | 
| API 및 에이전트 기능 | 모든 API가 작동하고 적절하게 응답해야 합니다. 에이전트를 등록하는 경우, 솔루션은 명시적 외부 명령이나 일정한 인적 입력 없이 작동하여 자율 기능을 입증해야 합니다. | 
| API 액세스 및 인증 | 고객은 목록을 구독하고 API 키를 검색하거나, 단계를 따라서 OAuth 토큰을 생성할 수 있어야 합니다. | 
| 아키텍처 가이드라인 | [자세한 내용은 아키텍처 지침을 따르세요.](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-guidelines.html#saas-architecture) | 
| 고객 정보 요구 사항 | [자세한 내용은 고객 정보 요구 사항을 따르세요.](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-guidelines.html#saas-customer-information) | 
| 키 관리 | 공급업체는 고객에게 키를 무효화/교체할 수 있는 기능을 제공해야 합니다. 또한 공급업체에게는 고객이 목록에서 구독을 취소하면 키를 무효화하는 메커니즘이 있어야 합니다. | 
| MCP 서버 요구 사항(해당하는 경우) | MCP 서버의 경우, 공급업체는 설정을 위한 사전 조건 또는 환경 변수와 함께 원격 MCP 구성 세부 정보를 제공해야 합니다. | 
| 제품 설정 | [자세한 내용은 제품 설정 지침을 따르세요.](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-guidelines.html#saas-guidelines-setup) | 
| 제품 사용 | [자세한 내용은 제품 사용 지침을 따르세요.](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-guidelines.html#saas-product-usage) | 
| 사용 지침 | 사용 지침에는 사전 조건, 인증 설정, 지원되는 엔드포인트, 요청/응답 스키마, 도구 설명, 오류 코드 및 추가 리소스가 명확하게 명시되어야 합니다. | 

## API 기반 AI 에이전트 제품 통합
<a name="integrating-api-ai-agents"></a>

### 제품 요금에 따른 통합
<a name="integrating-pricing"></a>

제품을와 통합하는 AWS Marketplace 것은 API 기반 AI 에이전트 제품을 나열하는 한 단계입니다. API 기반 AI 에이전트 제품을와 통합하려면 코드를 작성하고 여러 고객 시나리오에 성공적으로 대응할 수 있음을 입증해야 AWS Marketplace합니다.

다양한 요금 모델을 기반으로 제품을 통합하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.
+ 구독 기반 제품에 대한 자세한 내용은 [SaaS 구독 또는 Pay-As-You-Go 제품을와 통합 AWS Marketplace](saas-integrate-subscription.md) 섹션을 참조하세요.
+ 컨테이너 기반 제품에 대한 자세한 내용은 [SaaS 계약 제품을와 통합 AWS Marketplace](saas-integrate-contract.md) 섹션을 참조하세요.
+ 종량제 제품과의 계약에 대한 자세한 내용은 [SaaS 계약 기반 제품을와 통합 AWS Marketplace](saas-integrate-contract-with-pay.md) 섹션을 참조하세요.

### 고객 온보딩
<a name="customer-onboarding"></a>

#### 웹 사이트로 리디렉션 이행
<a name="redirect-website-fulfillment"></a>

고객이를 통해 제품을 구독하면 AWS 환경에서 제품에 AWS Marketplace액세스합니다. 구독한 후, 고객은 계정을 등록하고 제품을 구성하기 위해 판매자의 웹 사이트로 전송됩니다.
+ [를 통해 SaaS 제품에 고객 온보딩 AWS Marketplace](saas-product-customer-setup.md)에서 웹 사이트로 리디렉션 이행을 사용하여 고객을 온보딩하는 방법에 대해 알아봅니다.

#### QuickLaunch 이행
<a name="quicklaunch-fulfillment"></a>

고객이를 통해 제품을 구독하면 API 키 또는 OAuth 자격 증명을 AWS Marketplace수신하여 API 엔드포인트 또는 MCP 서버를 호출합니다. 이 프로세스는 다음과 같이 작동합니다.
+ 고객이 제품을 구독합니다.
+ 고객이 웹 사이트에 가입하거나 계정으로 로그인합니다.
+ **PutDeploymentParameter** API를 사용하여 API 키 또는 OAuth 자격 증명을 고객의 AWS Secrets Manager에 저장합니다.
+ API 키의 경우에 파라미터 하나를 저장하면, 문자열인 `secretString` 파라미터가 `PutDeploymentParameter` API를 직접 호출합니다. OAuth 자격 증명의 경우에 파라미터를 두 개 이상 저장하면, 아래와 같이 `secretString` 파라미터에 키-값 페어가 포함된 JSON 문자열을 제공합니다.

  ```
  {
    "Client Id": "{{12345}}",
    "Client Secret": "{{12345}}",
    "Discovery URL" : "{{https://auth.example.com/.well-known/openid-configuration}}"
  }
  ```

다음 리소스에서 QuickLaunch 이행에 대해 자세히 알아보세요.
+ [AWS Marketplace 배포 API](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_Operations_AWS_Marketplace_Deployment_Service.html)의 **PutDeploymentParameter** API에 대해 자세히 알아봅니다.
+ [를 통해 SaaS 제품에 고객 온보딩 AWS Marketplace](saas-product-customer-setup.md)에서 고객 온보딩 지침을 찾습니다.

### AWS Marketplace APIs 액세스
<a name="accessing-marketplace-apis"></a>

다음 섹션에서는 제품의 고객 사용에 대한 결제 및 보고가 정확한지 확인하는 데 사용되는 AWS Marketplace 측정 서비스 또는 AWS Marketplace 권한 부여 서비스와 통합하는 프로세스를 간략하게 설명합니다.
+  AWS Marketplace APIs[AWS Marketplace 측정 및 권한 부여 서비스 APIs에 액세스](saas-integration-metering-and-entitlement-apis.md).

### SNS 알림
<a name="sns-notifications"></a>

Amazon Simple Notification Service(Amazon SNS) 주제를 구독하여 제품의 고객 구독 변경 및 계약 권한에 대한 알림을 받습니다.는 제품 생성 중에 이러한 주제를 AWS Marketplace 제공하여 고객 액세스를 관리하는 데 도움이 됩니다.

다음은 SaaS API 기반 제품에 사용할 수 있는 Amazon SNS 주제입니다.
+ [Amazon SNS 주제: `aws-mp-entitlement-notification`](saas-notification.md#saas-sns-message-body) - 고객이 계약을 생성, 업그레이드 또는 갱신하거나 계약이 만료될 때 알려줍니다. 이는 계약이 포함된 요금 모델이 있는 제품에만 사용할 수 있습니다.
+ [Amazon SNS 주제: `aws-mp-subscription-notification`](saas-notification.md#saas-sns-subscription-message-body) - 구매자가 제품을 구독하거나 구독 해지할 때 알림을 제공하며, 비공개 제안의 `offer-identifier` 및 SaaS 무료 평가판의 무료 평가판 플래그를 포함하고 있습니다. 계약 및 구독을 포함한 모든 요금 모델에 사용할 수 있습니다.

## 사용 지침 템플릿
<a name="usage-instructions-templates"></a>

### MCP 서버 사용 지침 템플릿
<a name="mcp-server-template"></a>

다음 예제에서는 도구 설명, 사전 조건, 인증 설정, 인기 있는 클라이언트에 대한 구성, 속도 제한 및 추가 리소스를 포함하여 MCP 서버의 사용 지침을 보여줍니다.

```
To get started using the remove MCP server, follow the instructions below:

**Availble Tools**
This MCP server support the following tools:
- Search - Performs a web search
- Summarize Website - Summarizes a webpage 

**Prerequisites**
- Install **Node.js** and **npm**

**Authentication**
Replace `YOUR_API_KEY` with your actual key below.

**Claude Desktop**
Edit the configuration file at:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the below code:
```
{
  "mcpServers": {
    "demo-example": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://remote.mcp.server/sse",
        "--header",
        "Authorization: Bearer <YOUR_API_KEY>"
      ]
    },
  }
}
```

**Cline**
Cline stores MCP server configurations in a JSON file that can be modified.
In the "Installed" tab, click "Configure MCP Servers" to access the settings file.

Add the following:
```
{
    "mcpServers": {
        "demoServer": {
            "url": "https://remote.mcp.server/sse",
            "disabled": false,
            "autoApprove": ["searchWeb", "summarizeWebsite"],
            "timeout": 30
        }
    }
}
```

**Rate Limits**
- 60 requests per minute per API key.  
- Exceeding returns HTTP 429 Too Many Requests.  
- Use retry and exponential backoff to handle limits.  

**Learn More**
MCP Docs: https://mcp.search.demoproduct.com
```

### AI 에이전트와 에이전트 및 도구 사용 지침 템플릿
<a name="ai-agent-tools-template"></a>

다음 예제에서는 사전 조건, 인증 설정, 지원되는 엔드포인트, 요청/응답 스키마, 오류 코드 및 추가 리소스를 포함한 에이전트 또는 에이전트 도구의 사용 지침을 보여줍니다.

```
To get started follow the instructions below:

**Authentication**
All API requests require this HTTP header:
Authorization: Bearer `YOUR_API_KEY`
Replace `YOUR_API_KEY` with your actual key.

**Search Endpoint**

**Endpoint:** `GET /web/search`
Performs a web search.

**Query Parameters:**
| Param | Type | Description |
|------------|--------|-------------------------------------|
| `q` | string | Your search query (required) |
| `count` | int | Number of results (default: 10) |
| `offset` | int | Offset for pagination |
| `country` | string | Country code (e.g. `us`, `de`) |
| `safesearch` | string | `off`, `moderate`, or `strict` |

**Example Request:**
```bash
curl -X GET "https://api.search.demo.com/res/v1/web/search?q=searchtool" \
-H "Authorization: Bearer YOUR_API_KEY"
```
**Response Schema:**  
```  
{
    "results": [{  
            "title": "string",  
            "url": "string",
            "description": "string"  
    }],
    "query" :"string",
    "total" :"number"
}  
```
**Example Response:**
```
{
    "results": [
      {
        "title": "DemoProductAPI",
        "url": "https://demo.com",
        "description": "Demo Product API is a search tool for..."
      }
    ],
    "query": "searchtool",
    "total": 1
}
```

**Additional Search Types**
DemoProduct also supports:
- `GET /news/search – News articles`
- `GET /images/search – Image results`
- `GET /videos/search – Video results`

These endpoints follow the same format as /web/search.

**Summarize Endpoint**
**Endpoint:** `POST /summarize`

Summarizes a webpage 
**Request Headers:**  
Content Type: application/json
**Request Body:**  
```  
{
    "input": "string" // URL or plain text
}    
```
**Example Request:** 
```
{
    "input": "https://example.com/article"
} 
```
**Response Schema**
```
    {
            "summary": "string"  
    }    
```
**Example Response**
``` 
    {
         "summary": "This article explains our commitment to user privacy."
    }   
```

**Error Codes**
| Status | Meaning |
| ------ | ------------------------------ |
| `401` | Unauthorized (check your key) |
| `429` | Too many requests (rate limit) |
| `500` | Server error |

All error responses follow this structure:
```
{
    "error": {
    "code": 401,
    "message": "Unauthorized"
    }
}
```

**Rate Limits**
- 60 requests per minute per API key.  
- Exceeding returns HTTP 429 Too Many Requests.  
- Use retry and exponential backoff to handle limits.  

**Learn More**
API Docs: https://api.search.demoproduct.com
```