

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂代理程式
<a name="automate-custom-agents"></a>

自訂代理程式是一種智慧型動作，可處理自然語言輸入，以使用整合的工具呼叫功能來自動化複雜的步驟。它主要使用整合做為其工具界面，同時提供可擴展性以使用程式碼做為工具，以及其他原生動作human-in-the-loop任務。代理程式提供結構化、可預測的輸出，最佳化以無縫整合到下游自動化步驟。

## Properties
<a name="custom-agent-properties"></a>
+ **標題**：步驟/自訂代理程式的名稱
+ **模式**： 模式會根據您的使用案例定義代理程式的運作方式。三種可用的模式為：快速、專業和自訂。Fast 非常適合簡單的任務，例如摘要、分類和大量自動化，而 Pro 非常適合涉及推理和協調多個工具或動作的複雜任務。Fast 和 Pro 是全受管模式，不需要預先設定。在自訂模式中，您將需要 Bedrock 執行期連接器，並且可以選擇要使用的模型 （如下所述）。當您已有針對特定 Bedrock 模型進行微調的提示、特別需要代理程式的特定 Bedrock 模型，或想要包含在 Bedrock 上託管的自訂或微調模型時，這是理想的選擇。在自訂模式中，由於您透過整合從 Bedrock 取得自己的模型，因此模型推論會分別向與該 Bedrock 整合相關聯的帳戶計費。
+ **指示**：在此欄位中，您會以自然語言撰寫客服人員的提示。撰寫提示時的最佳實務：
  + 清楚且明確地說明您想要的內容。
  + 建構提示。首先提及 'Task' 或 'Role'，然後 'Instructions' 以編號步驟完成任務
  + 若要改善工具呼叫準確性並引導客服人員，請在提示中明確指定每個步驟要使用的工具，如果適用的話。
  + 明確指定長度需求 （例如少於 100 個字） 或輸出格式 （例如 MM/DD/YY 格式的日期）
  + 以三引號 (""") 包裝文字以撰寫多行提示。例如：

    ```
    """You are content summarization agent.
    Summarize the last two paragraphs of the provided text, focusing only on the main conclusion."""
    ```
+ **動作**：動作是一種工具，可讓 AI 代理器與外部系統互動或執行特定任務。這是選用的。您可以執行自訂代理程式，無需任何動作。以下是可在自訂代理程式中使用的不同動作
  + **一般動作**
    + **建立使用者任務** - 如果啟用，此工具可讓代理程式在執行期間卡住並需要協助時觸發Human-in-the-Loop(HITL) 任務。客服人員會暫停並等待人工輸入。HITL 任務會顯示在任務中心。為了獲得最佳結果，作者可以在提示中指定代理程式應該何時叫用 HITL。預設會選取此項。自動化會持續執行，直到任務完成為止。
    + **程式碼** - 程式碼動作會在受限的 python 環境中產生並執行 python 程式碼，與程式碼動作相同，以解決涉及計算、資料處理和檔案處理的任務。與程式碼產生器不同，它會主動建立和執行指令碼以完成目標、使用 Excel、PDF 檔案、各種資料格式和可用的整合
      + **關鍵功能：**
        + **檔案操作**：處理多標籤 Excel 檔案、擷取內容、執行日期計算、套用條件式格式化，以及將結果上傳至 S3
        + **資料轉換**：在 JSON 和資料表格式之間轉換、轉換資料、重新命名資料欄和聯結資料表
        + **進階運算**：產生數值序列並執行自動化驗證
  + **整合**：如果您已將 Salesforce、MS Exchange 或 Bedrock 等特定整合動作新增至自動化群組，則其對應的動作會顯示在此處，以供自訂代理程式使用。然後，作者可以選取要用作代理程式工具的相關動作。

    可做為自訂代理程式中工具/動作的整合清單
    + Amazon S3
    + Amazon Bedrock Data 自動化
    + Amazon Comprehend
    + Amazon Textract
    + 自訂 REST API
    + 自訂 MCP 連接器
    + Microsoft Outlook
    + Salesforce
+ **結構化輸出 （選用）**

  設定 AI 代理器以傳回下游步驟可處理的結構化 JSON 輸出。此功能非常適合文字摘要、報告產生、資料轉換，以及從非結構化內容擷取統計資料。此為選用欄位。如果您未定義結構化輸出，代理程式預設會以自然語言傳回輸出。當您的輸出具有已定義的結構時，請使用結構化輸出，例如清單、資料表或 JSON。
**注意**  
自訂代理程式的結構化輸出組態遵循與 UI 代理程式相同的格式。如需詳細的組態指示，請參閱 UI 代理程式結構化輸出一節。
+ **客服人員回應**：指派客服人員輸出的變數名稱。如果已定義，回應會遵循 JSON 結構描述中的結構化輸出格式，否則為自由格式文字。

## 在自訂代理程式中使用自訂模型 （使用您自己的底版模型）
<a name="custom-agent-byom"></a>

整合您在 AWS Bedrock 中託管的所需或自訂微調模型與 Quick Suite 自動化工作流程。

開始之前，請確定您有下列項目：
+ 在 AWS Bedrock 中部署和存取的微調模型
+ 建立連接器的 Quick Suite Admin 存取權
+ 具有 Bedrock 調用模型許可的 IAM 角色
+ 您的模型 ID （例如 `us.anthropic.claude-3-5-sonnet-20241022-v2:0`)

**步驟 1：**遵循中的詳細說明建立 Bedrock 執行期動作整合 [AWS 服務動作連接器](builtin-services-integration.md)

**步驟 2：**設定您的自動化群組

建立自動化群組並連接整合：
+ **建立自動化群組** - 遵循 中的詳細說明 [設定任務](getting-started-quick-automate.md#automate-setup-tasks)
+ **設定整合** - 遵循 中的詳細說明 [設定任務](getting-started-quick-automate.md#automate-setup-tasks)
+ 設定完成後，連接器會出現在您的可用資產清單中

**步驟 3：**設定自訂代理程式

新增並設定自訂代理程式以使用您的微調模型：
+ 在自動化工作流程中，新增自訂代理程式
+ 設定下列代理程式設定：
  + **客服人員標題**：輸入客服人員的描述性名稱
  + **指示**：輸入根據您的使用案例量身打造的自訂提示
  + **模式**：選取自訂
  + **連接器**：選擇 Bedrock 執行期連接器 （選取自訂模式時需要）
  + **自訂模型**：輸入您的模型 ID （例如 `us.anthropic.claude-3-5-sonnet-20241022-v2:0`) - 選取自訂模式時為必要

**後續步驟**

設定完成後，您的自訂代理程式會根據您提供的指示，使用微調後的模型來處理請求。您現在可以將此代理程式納入您的 Quick Automate 工作流程。

**注意**  
請確定您的模型 ID 已正確格式化，且符合您 AWS Bedrock 帳戶中部署的模型。您可以在已佈建模型下的 AWS Bedrock 主控台中找到模型 ID。

## 自訂代理程式測試
<a name="custom-agent-testing"></a>

自訂代理程式測試可讓您獨立於完整的自動化工作流程測試個別代理程式。此功能可協助您驗證客服人員行為、偵錯提示，以及更有效率地重複執行，而無需執行整個工作流程。

### 先決條件
<a name="custom-agent-testing-prerequisites"></a>
+ 具有至少一個已設定自訂代理程式的自動化工作流程
+ 在您的工作區中執行自動化的適當許可

### 開始測試
<a name="custom-agent-testing-start"></a>
+ 在工作流程畫布中，將滑鼠游標移到您要測試的客服人員卡上
+ 選擇顯示在卡片頂端的**單位測試**按鈕
+ 在開啟的變數集合視窗中，檢閱客服人員提示中自動偵測到的變數
  + 提示預覽會以反白方式顯示所有偵測到的變數
+ 輸入每個變數的值
  + 值必須使用有效的表達式語法
  + 如果值包含無效的語法，則會顯示錯誤訊息並防止測試執行

### 監控測試執行
<a name="custom-agent-testing-monitor"></a>

在測試執行期間，您可以在畫面右側的稽核面板中監控進度。測試會略過所有先前的工作流程步驟，並僅執行選取的代理程式。您可以獲得與完整工作流程執行相同的記錄體驗。

### 檢閱測試結果
<a name="custom-agent-testing-results"></a>

測試完成後，請檢閱測試面板中的下列資訊：
+ 指標卡 （測試面板頂端的監控索引標籤）
  + 總執行時間
  + 使用的工具數量
  + 建立的任務數量
+ 在 之間登入
+ 監看變數索引標籤 （測試面板的基礎一致性）
  + 輸入 - 檢視輸入變數及其值
  + 輸出 - 檢查代理程式執行的輸出結果
  + 對於結構化輸出，請按一下檢視詳細資訊按鈕，選擇 JSON 檢視器以開啟檢視輸出對話方塊：
    + 欄位索引標籤 - 使用樹狀結構檢視導覽資料
    + 欄位 - 在欄位索引標籤中選取樹狀節點以反白顯示對應的值
    + 輸出欄位 - 對應 JSON 金鑰的值

## 搭配 Build with Assistant 使用自訂代理程式
<a name="custom-agent-build-with-assistant"></a>

自訂代理程式目前的原則是必須特別提及，才能持續叫用它，以下是提示中顯示它所需的項目：

```
- Function names: `use_inline_agent`
- Representation names: "Custom Agent", "Inline Agent" → use `use_inline_agent`
- Generic terms: "agentic skills" → default to `use_inline_agent`
```

否則，模型偏好以決定性方式撰寫工作流程。

雖然實際上，當沒有適當的動作可用時，規劃器可能會選擇自訂代理程式做為解決方法。但是，為了在工作流程中持續叫用自訂代理程式，建議在提示中使用上述片語。

## 代理程式使用案例的範例
<a name="custom-agent-examples"></a>

**使用案例 1：電子郵件分類和指派代理程式**

**角色：**您是電子郵件分類和指派代理程式

**說明：**請遵循下列步驟：
+ 步驟 1：根據所提供參考表的類別欄將傳入的電子郵件分類為知識
+ 步驟 2：使用電子郵件系統傳送通知：
  + 從：【system\_email】
  + 收件人：【team\_distribution\_email】
  + 主旨：【分類結果】
  + 內文：包含簡短摘要，說明來自原始電子郵件的分類推理和關鍵點
+ 步驟 3：針對所有有效的類別 (「未知」除外），在 Salesforce 中以下列方式建立新案例：
  + 主旨：【原始電子郵件主旨】
  + 描述：來自電子郵件內文的摘要問題
  + 優先順序：根據內容緊急程度 (High/Medium/Low)
  + 類型：選取適當的類型 Question/Problem/Feature請求/其他）
  + 狀態：'New'
  + 類別：【步驟 1 的分類結果】
+ 步驟 4：如果分類為「未知」：
  + 向主管呈報以進行手動檢閱
  + 新增說明為何分類不確定的備註
  + 根據從主管收到的類別，遵循步驟 2 和 3 並停止
  + 如果從主管收到的類別不明或無效，請停止

## 搭配自訂代理程式使用知識庫
<a name="custom-agent-knowledge-bases"></a>

在 Amazon Quick Automate 中，您可以將知識庫連接到自訂代理程式，以啟用 AI 支援的擷取和對組織文件的問題回答。透過將快速空間連結至自動化群組，自訂代理程式可以從該空間內的知識庫搜尋和擷取資訊。

將此用於需要參考組織知識的自動化，例如從政策文件中回答問題、摘要報告，或根據參考資料分類內容。

知識庫會為您的文件編製索引以進行語意搜尋，因此自訂代理程式只會擷取最相關的段落，而不是處理整個檔案。這可讓擷取更快速且更準確，特別是在大型文件集中。

### 先決條件
<a name="custom-agent-kb-prerequisites"></a>
+ 已設定一或多個知識庫的快速空間。如需詳細資訊，請參閱[在 Amazon Quick 中組織、協作和共用具有空格的資源](working-with-spaces.md)。
+ 您是擁有者的自動化群組
+ 您要連結之空間的擁有者層級存取權

### 將空間連結至自動化群組
<a name="custom-agent-kb-link-space"></a>

您必須先將包含這些知識庫的空間連結至自動化群組，自訂代理程式才能存取知識庫。連結空間會授予自動化群組存取該空間內知識庫和檔案的許可。

若要將空間連結至自動化群組：

1. 在**自動化**索引標籤中，前往**專案**頁面。

1. 選擇**群組**，然後選取您要連接空間的群組。
**提示**  
您也可以選擇右側的**建立群組**來建立新的自動化群組。

1. 在**資產**區段中，選擇**新增**，然後選擇**空格**。

1. 選取包含您要使用的知識庫的空間，然後選擇**新增**。

空間現在會出現在自動化群組的連線清單中。此自動化群組中的自訂代理程式可以存取連結空間內的知識庫和檔案。空間中的其他資源不適用於自動化。

**注意**  
如果空間在新增後顯示**存取權有限**，表示並非所有知識庫都會與自動化群組共用。如果知識庫在連結後新增至空間，或一開始未共用所有知識庫，就會發生這種情況。若要解決此問題，請重新整理空間連線，以與自動化群組共用所有資源。您不需要在個別自訂客服人員上重新設定知識索引標籤。

### 將知識新增至自訂代理程式
<a name="custom-agent-kb-add-knowledge"></a>

將空間連結至自動化群組之後，您可以將自訂代理程式設定為使用該空間內的知識庫。工作流程必須位於連接空間的相同自動化群組中。

若要將知識新增至自訂代理程式：

1. 在工作流程建置器中，新增**自訂代理**程式步驟。您可以在畫布上拖放自訂客服人員節點，或與自動化助理聊天以建置此步驟。

1. 在客服人員屬性面板中，選擇**知識**，然後選擇**新增**。

1. 挑選器隨即開啟，顯示連結至自動化群組的可用空間。選取一或多個空格，其中包含您希望代理程式使用的知識庫。

1. 選擇**儲存**。

自訂代理程式現在可以在自動化執行時，從所選空間的知識庫搜尋和擷取內容。

當您連接空間時，該空間中的所有知識庫會自動變成可供代理程式使用。您不需要個別連接每個知識庫。在執行時間，代理程式會獨立查詢每個知識庫，並在回應中結合結果。

**注意**  
如果自動化群組擁有者無法存取空間中的特定知識庫，則會在查詢期間略過該知識庫，而工作流程編輯器會在空間連接上顯示警告徽章。

### 撰寫知識庫查詢的指示
<a name="custom-agent-kb-instructions"></a>

當自訂代理程式已連接知識庫時，它會自動根據您的指示搜尋和擷取相關內容。撰寫說明，清楚說明客服人員應尋找哪些資訊，或應如何使用知識庫內容。

最佳實務：
+ 具體說明要擷取或摘要哪些資訊
+ 參考您希望代理程式尋找的內容類型 （例如，「搜尋政策文件...」或「尋找相關資訊...」)
+ 指定代理程式應該如何在其回應中使用擷取的資訊
+ 包含知識庫不包含相關內容時的備用指示

### 範例：具有知識庫的客戶查詢代理程式
<a name="custom-agent-kb-example"></a>

下列範例示範如何設定使用知識庫根據公司文件回答客戶查詢的自訂代理程式。

**設定：**
+ 包含知識庫的空間，其中包含產品文件和常見問答集內容
+ 空間會連結到自動化群組
+ 空間會新增為自訂代理程式的知識

**說明：**

```
"""You are a customer support agent.

Task: Answer the customer inquiry using information from the knowledge base.

Instructions:
1. Search the knowledge base for information relevant to the customer's question.
2. Provide a clear, concise answer based on the retrieved content.
3. If the knowledge base does not contain relevant information, respond with:
   "I don't have enough information to answer this question. Please escalate to a human agent."

Constraints:
- Only use information found in the knowledge base. Do not make up answers.
- Keep responses under 200 words.
- Include the source document name when referencing specific information."""
```

**結構化輸出：**

```
{
  "answer": "The response to the customer inquiry",
  "sourceDocument": "Name of the document used",
  "confidence": "high/medium/low",
  "escalationNeeded": false
}
```