View a markdown version of this page

無伺服器 AI 的 CI/CD 和自動化 - AWS 方案指引

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

無伺服器 AI 的 CI/CD 和自動化

在傳統軟體開發中,持續整合和部署 (CI/CD) 可讓團隊快速安全地測試和發佈變更。在無伺服器 AI 系統中,由於服務的暫時性、事件驅動性質,以及 AI 模型和提示的揮發性行為,CI/CD 變得更加重要。

從基礎設施 (例如 AWS Lambda Amazon API Gateway 和 Amazon Bedrock 代理程式) 到邏輯 (例如提示、RAG 流程和代理程式工具組態),所有內容都必須進行版本化和測試。然後,這些元件應該一致地跨環境部署。

如果不實作 CI/CD 實務,組織會面臨下列風險:

  • 由於手動 AWS Identity and Access Management (IAM) 或提示變更,人為錯誤會增加。

  • 模型和基礎設施偏離發生在development/test/production環境中。

  • 測試瓶頸會減緩創新速度。

  • 未驗證的更新會產生停機或行為變更的風險。

無伺服器 AI 中的 CI/CD 功能

CI/CD 在無伺服器 AI 中提供下列功能及其相關優勢:

  • 安全提示和代理程式版本控制 – 提示和代理程式組態變更會通過檢閱、測試和核准程序。

  • 基礎設施重現性 – 使用 AWS Cloud Development Kit (AWS CDK) 或 的基礎設施即程式碼 (IaC), AWS CloudFormation 有助於確保跨階段的環境相同。

  • 整合測試 – 在部署之前執行提示測試、結構描述驗證和安全檢查。

  • 自動化部署核准 – 使用護欄進行生產提升,包括手動審核和自動化指標。

  • 轉返和稽核 – 標記版本允許快速轉返和合規可追蹤性。

  • 頻繁的低風險更新 – 為大型語言模型 (LLM) 應用程式啟用快速反覆運算週期,並提示調校。

無伺服器 AI 專案的一般 CI/CD 工作流程

無伺服器 AI 專案的全方位 CI/CD 管道涉及多個階段。下列清單概述典型 CI/CD 工作流程的每個階段,包括相關聯的動作和範例工具:

  • 程式碼和提示詞遞交 – 開發人員使用 GitHub 或 GitLab 等工具,將更新的 Lambda 函數、 AWS CDK 程式碼或提示文字推送至 Git。 GitLab

  • Build and lint – 針對 、 和自訂提示驗證器,使用 ESLint JavaScript 等工具驗證語法BlackPythonyamllint、提示格式和結構描述對齊。

  • 單元測試和提示迴歸 – 使用 promptfoopytest和自訂固定裝置執行本機邏輯和單元測試和黃金提示回應測試。

  • IaC 驗證 – 使用 AWS CDK 和 來合成和驗證 cdk synth和 CloudFormationtemplatescfn–lint

  • 整合測試 – 部署 以使用 和模擬代理程式來預備 AWS CodeBuild 和叫用完整工作流程 (例如,Amazon S3 上傳至 Amazon Bedrock 代理程式)。

  • 手動或自動核准 – 使用 AWS CodePipeline 或 GitHub Actions 閘道來檢閱模型成本影響和核准檢查清單 (例如提示變更)。

  • 部署到生產環境 – 使用 AWS CDK、 和 AWS SAM 命令列界面 (CLI) 提升堆疊 AWS CodeDeploy、更新 Amazon Bedrock 代理程式組態,以及發佈提示。

  • 部署後煙霧測試 – 使用 Amazon CloudWatch Synthetics 和測試 Lambda 驗證生產代理程式輸出、日誌擷取和復原準備。

  • 監控和觀察 – 使用 CloudWatch、Amazon Bedrock 字符日誌 (透過 CloudWatch) 和 自動建立儀表板、成本提醒和字符用量監控 AWS X-Ray。

提示和 Amazon Bedrock 代理程式的 CI/CD

在 CI/CD 程序中,提示和 Amazon Bedrock 代理程式組態需要特殊處理:

  • 在來源控制中將提示視為版本控制的資產 (例如 /prompts/v1/agent-support-en.yaml)。

  • 在自動化黃金測試案例中包含提示。

  • 使用 IaC 範本部署 Amazon Bedrock 代理程式組態 (包括工具、指示和知識庫 URIs)。

  • 僅在下列情況下部署 Amazon Bedrock 代理程式更新:

    • 提示迴歸測試通過。

    • 工具許可符合 IAM 範本。

    • 可信度閾值或驗證 Lambda 結果符合可接受的條件。

此方法可防止無提示的提示降低,並確保生產中可重複的生成式 AI 行為。

將 AgentCore 與 CI/CD 管道整合

Amazon Bedrock AgentCore 透過引入用於代理程式部署、測試和演變的受管執行時間和記憶體結構來擴展傳統的 CI/CD 自動化。目前的無伺服器管道會自動封裝和部署代理程式程式碼 (例如,透過 AWS CodePipeline AWS CodeBuild、 或 AWS CDK)。不過,AgentCore 會直接整合到此程序中,以在部署生命週期中管理代理程式狀態、記憶體和工具連接器。

AgentCore 與 CI/CD 管道的關鍵整合點如下:

  • 執行期註冊和版本控制 – 每個部署的代理程式都可以向處理擴展、路由和生命週期協同運作的 AgentCore 執行期註冊。此方法取代了在 CI/CD 工作流程中維護自訂登錄或服務探索邏輯的需求。

  • 記憶體快照和提升 – 在自動化測試期間,AgentCore 可以保留代理程式記憶體快照,包括學習的內容或狀態,並透過管道將它們與程式碼成品一起提升。此功能可在開發、預備和生產環境之間實現內容連續性。

  • 工具組態管理 – 使用 AgentCore Gateway 工具,團隊可以在同一管道內宣告地定義與其他 AWS 服務 (例如 Amazon DynamoDB、Amazon S3、Amazon Bedrock FMs或 Amazon EventBridge) 的整合點。此組態管理功能有助於提供一致且可稽核的存取組態。

  • 驗證的可觀測性關聯 – AgentCore 公開了用於代理程式執行的內建遙測,讓 CI/CD 管道能夠在部署之前自動驗證效能、推理品質和合規指標。

CodePipeline 部署可能包含下列步驟:

  1. 使用 CodeBuild 建立新的代理程式程式碼。

  2. 將代理程式部署到 AgentCore 執行期以進行執行。

  3. 執行使用 AgentCore 記憶體的自動化整合測試,以保留和比較跨執行的狀態。

  4. 將成功建置提升至生產環境,同時更新 AgentCore 登錄檔以進行探索和協同運作。

AWS 服務 適用於 CI/CD 工具

下列 AWS 服務 支援無伺服器 AI 的 CI/CD 實作:

CI/CD 和自動化的摘要

CI/CD 不僅是最佳實務,也是擴展安全可靠 AI 系統的必要條件。透過提示敏感度、工具自主權和基礎設施複雜性,自動化提供了幾項重要優勢:

  • 更快的創新週期,降低風險

  • 可管理且可稽核的更新

  • 跨團隊和區域的穩定環境

  • 邏輯和語言的整合測試

隨著 AgentCore 整合到 CI/CD 管道中,代理程式部署從程式碼交付發展到持續功能交付。原因、記憶體和狀態在現代無伺服器 AI 系統中成為可部署的第一類資產。

透過將 DevOps 原則套用至 AI 原生架構,企業可以負責任地快速大規模地將 AI 帶入生產環境。