View a markdown version of this page

Amazon Bedrock 代理人的運作方式 - Amazon Bedrock

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

Amazon Bedrock 代理人的運作方式

注意

Amazon Bedrock Agents (現在為 Amazon Bedrock Agents Classic) 不再向新客戶開放。如需類似 Bedrock Agents Classic 的功能,請探索 Amazon Bedrock AgentCore。現有客戶可以繼續正常使用該服務。如需詳細資訊,請參閱Amazon Bedrock Agents Classic 維護模式

Amazon Bedrock 代理人包含下列兩組主要的 API 操作,可協助您設定和執行代理程式:

建置時期組態

代理程式包含以下元件:

  • 基礎模型 – 您可以選擇代理程式調用的基礎模型 (FM),以便在其協同運作過程中解譯使用者輸入和隨後提示。代理程式也會調用 FM,在其程序中產生回應和後續步驟。

  • 指示 – 您撰寫指示,說明代理程式的設計目的。透過進階提示,您可以在協同運作的每個步驟進一步自訂代理程式的指示,並包含 Lambda 函式來剖析每個步驟的輸出。

  • 至少下列其中一個項目:

    • 動作群組 – 您可以定義代理程式應為使用者執行的動作 (透過提供下列資源):

      • 下列其中一個結構描述,用於定義代理程式從使用者取得所需的參數 (每個動作群組可以使用不同的結構描述):

        • OpenAPI 結構描述,用於定義代理程式可調用以執行其任務的 API 操作。OpenAPI 結構描述包含需要從使用者取得的參數。

        • 函數會詳細說明結構描述,以定義代理程式可從使用者取得的參數。然後,代理程式可以將這些參數用於進一步協同運作,或者您可以設定如何在自己的應用程式中使用這些參數。

      • (選用) 具有下列輸入和輸出的 Lambda 函式:

        • 輸入 – 協同運作期間識別的 API 操作和/或參數。

        • 輸出 – API 調用的回應或函數調用的回應。

    • 知識庫 – 將知識庫與代理程式建立關聯。代理程式會查詢知識庫以取得額外的內容,以增強回應產生並輸入協同運作程序的步驟。

  • 提示範本 – 提示範本是建立提示以提供給 FM 的基礎。Amazon Bedrock 代理人會公開預設的四個基本提示範本,這些範本會在預先處理、協同運作、產生知識庫回應和後續處理期間使用。您也可以選擇編輯這些基本提示範本,以自訂代理程式序列中每個步驟的行為。您也可以為了進行疑難排解而關閉某些步驟,或者如果您認為某個步驟不必要也可以關閉步驟。如需詳細資訊,請參閱使用 Amazon Bedrock 中的進階提示範本提高代理程式的準確性

在建置時期,會收集所有這些元件以建構代理程式的基本提示,以便執行協同運作,直到使用者請求完成為止。透過進階提示,您可以使用其他邏輯和少量樣本範例來修改這些基本提示,以提高每個代理程式調用步驟的準確性。基本提示範本包含指示、動作描述、知識庫描述和對話歷程記錄,您可以自訂所有這些範本,以便根據您的需求修改代理程式。然後,您可以準備代理程式,此程序會封裝代理程式的所有元件,包括安全組態。準備代理程式會使其進入可在執行時期進行測試的狀態。下圖描述建置時期 API 操作如何建構代理程式。

建置時間 APIs如何使用動作群組和知識庫來建構您的代理程式。

動作群組包含 OpenAPI 結構描述和 Lambda 函式,可定義代理程式可以呼叫哪些 API 操作,以及代理程式應如何處理請求和回應。代理程式會從基本提示範本、提供給它的說明,以及任何連接的動作群組和知識庫來合成資訊,以搭配其使用的模型產生提示。提示會新增至代理程式的提示存放區。

執行時期程序

執行時期由 InvokeAgent API 操作管理。此操作會啟動代理程式序列,其中包含下列三個主要步驟。

  1. 預先處理 – 管理代理程式如何對使用者輸入進行情境化和分類,並可用於驗證輸入。

  2. 協同運作 – 解譯使用者輸入、調用動作群組和查詢知識庫,並將輸出傳回給使用者,或做為持續協同運作的輸入。協同運作包含下列步驟:

    1. 代理程式會使用基礎模型解譯輸入,並產生一個理由,列出下一個步驟應採用的邏輯。

    2. 代理程式預測應該調用的動作群組中的哪些動作,或是應該查詢的知識庫。

    3. 如果代理程式預測需要調用動作,代理程式會將從使用者提示決定的參數傳送至為動作群組設定的 Lambda 函式,或透過在 InvokeAgent 回應中傳送參數來傳回控制權。如果代理程式沒有足夠的資訊來調用動作,它可能會執行下列其中一個動作:

      • 查詢相關聯的知識庫 (知識庫回應產生),以擷取其他內容並摘要資料以增強其產生。

      • 重新提示使用者以收集動作所需的所有必要參數。

    4. 代理程式透過調用動作和/或從知識庫彙總結果,產生稱為觀察的輸出。代理程式會使用觀察來增強基本提示,然後使用基礎模型解譯該提示。然後,代理程式會判斷是否需要重複協同運作過程。

    5. 這個迴圈會繼續進行,直到代理程式傳回回應給使用者,或直到它需要提示使用者提供額外資訊為止。

    在協同運作過程期間,基本提示範本會增強已新增至代理程式的代理程式指示、動作群組和知識庫。然後,增強的基本提示會用於調用 FM。FM 會預測最好的步驟和軌跡,以滿足使用者的輸入。在協同運作過程的每次迭代中,FM 都會預測要調用的 API 操作或要查詢的知識庫。

  3. 後續處理 – 代理程式會格式化要傳回給使用者的最終回應。此步驟預設為關閉。

當您調用代理程式時,您可以在執行時期開啟追蹤。使用追蹤,您可以在代理程式序列的每個步驟追蹤代理程式的原理、動作、查詢和觀察。追蹤包括在每個步驟傳送到基礎模型的完整提示,以及基礎模型、API 回應和知識庫查詢的輸出。您可以使用追蹤來了解代理程式在每個步驟的推論。如需詳細資訊,請參閱使用追蹤以追蹤代理程式的逐步推理程序

隨著代理程式的使用者工作階段繼續處理更多 InvokeAgent 請求,對話歷史記錄也會保留。對話歷史記錄會持續增強協同運作基礎提示範本與內容,協助改善代理程式的準確性和效能。下圖顯示代理程式在執行時期的處理程序:

您的代理程式在執行時間透過協同運作和動作執行處理使用者輸入的方式。

接收使用者輸入後,代理程式會從提示存放區擷取擴增的提示,並從工作階段存放區擷取對話歷史記錄。如果已啟用預先處理步驟,代理程式會使用預先處理提示來調用 FM,以驗證使用者輸入。在協同運作步驟中,代理程式會使用協同運作提示來調用 FM,並剖析回應。然後,它會視需要決定動作群組和查詢知識庫,並產生可能觸發新協同運作提示的觀察。協同運作階段會循環,直到觀察傳回最終回應給使用者為止。