本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
無伺服器 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 等工具驗證語法Black Pythonyamllint 、提示格式和結構描述對齊。 -
單元測試和提示迴歸 – 使用 promptfoo
、 pytest 和自訂固定裝置執行本機邏輯和單元測試和黃金提示回應測試。 -
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 部署可能包含下列步驟:
-
使用 CodeBuild 建立新的代理程式程式碼。
-
將代理程式部署到 AgentCore 執行期以進行執行。
-
執行使用 AgentCore 記憶體的自動化整合測試,以保留和比較跨執行的狀態。
-
將成功建置提升至生產環境,同時更新 AgentCore 登錄檔以進行探索和協同運作。
AWS 服務 適用於 CI/CD 工具
下列 AWS 服務 支援無伺服器 AI 的 CI/CD 實作:
-
AWS CodePipeline 為程式碼、提示和基礎設施提供end-to-end管道功能。
-
AWS CodeBuild 會執行測試、固定和驗證。
-
AWS CDK 和 CloudFormation,以及 HashiCorpTerraform
(第三方工具) 定義基礎設施、客服人員、許可和工作流程。 -
Amazon S3 存放版本控制的提示檔案和代理程式範本。
-
Amazon Bedrock API 和 CLI 會動態註冊提示和代理程式定義。
-
CloudWatch Synthetics 會執行部署後探查和可信度驗證。
-
Lambda@Edge 和 Amazon EventBridge 會從偏離和部署失敗等受監控事件觸發 CI/CD。
CI/CD 和自動化的摘要
CI/CD 不僅是最佳實務,也是擴展安全可靠 AI 系統的必要條件。透過提示敏感度、工具自主權和基礎設施複雜性,自動化提供了幾項重要優勢:
-
更快的創新週期,降低風險
-
可管理且可稽核的更新
-
跨團隊和區域的穩定環境
-
邏輯和語言的整合測試
隨著 AgentCore 整合到 CI/CD 管道中,代理程式部署從程式碼交付發展到持續功能交付。原因、記憶體和狀態在現代無伺服器 AI 系統中成為可部署的第一類資產。
透過將 DevOps 原則套用至 AI 原生架構,企業可以負責任地快速大規模地將 AI 帶入生產環境。