

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

# 無伺服器 AI 的 CI/CD 和自動化
<a name="cicd-and-automation"></a>

在傳統軟體開發中，持續整合和部署 (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 功能
<a name="section-cicd-capabilities"></a>

CI/CD 在無伺服器 AI 中提供下列功能及其相關優勢：
+ **安全提示和代理程式版本控制** – 提示和代理程式組態變更會通過檢閱、測試和核准程序。
+ **基礎設施重現性** – 使用 AWS Cloud Development Kit (AWS CDK) 或 的基礎設施即程式碼 (IaC)， AWS CloudFormation 有助於確保跨階段的環境相同。
+ **整合測試** – 在部署之前執行提示測試、結構描述驗證和安全檢查。
+ **自動化部署核准** – 使用護欄進行生產提升，包括手動審核和自動化指標。
+ **轉返和稽核** – 標記版本允許快速轉返和合規可追蹤性。
+ **頻繁的低風險更新** – 為大型語言模型 (LLM) 應用程式啟用快速反覆運算週期，並提示調校。

## 無伺服器 AI 專案的一般 CI/CD 工作流程
<a name="section-cicd-workflow"></a>

無伺服器 AI 專案的全方位 CI/CD 管道涉及多個階段。下列清單概述典型 CI/CD 工作流程的每個階段，包括相關聯的動作和範例工具：
+ **程式碼和提示詞遞交** – 開發人員使用 GitHub 或 GitLab 等工具，將更新的 Lambda 函數、 AWS CDK 程式碼或提示文字推送至 Git。 GitLab
+ **Build and lint** – 針對 、 和自訂提示驗證器，使用 [https://eslint.org/](https://eslint.org/) JavaScript 等工具驗證語法[https://pypi.org/project/black/](https://pypi.org/project/black/)Python[https://yamllint.readthedocs.io/en/stable/](https://yamllint.readthedocs.io/en/stable/)、提示格式和結構描述對齊。
+ **單元測試和提示迴歸** – 使用 [https://www.promptfoo.dev/docs/intro/](https://www.promptfoo.dev/docs/intro/)、 [https://docs.pytest.org/en/stable/](https://docs.pytest.org/en/stable/)和自訂固定裝置執行本機邏輯和單元測試和黃金提示回應測試。
+ **IaC 驗證** – 使用 AWS CDK 和 來合成和驗證 `cdk synth`和 CloudFormationtemplates`cfn–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
<a name="section-cicd-prompts-agents"></a>

在 CI/CD 程序中，提示和 Amazon Bedrock 代理程式組態需要特殊處理：
+ 在來源控制中將提示視為版本控制的資產 （例如 `/prompts/v1/agent-support-en.yaml`)。
+ 在自動化黃金測試案例中包含提示。
+ 使用 IaC 範本部署 Amazon Bedrock 代理程式組態 （包括工具、指示和知識庫 URIs)。
+ 僅在下列情況下部署 Amazon Bedrock 代理程式更新：
  + 提示迴歸測試通過。
  + 工具許可符合 IAM 範本。
  + 可信度閾值或驗證 Lambda 結果符合可接受的條件。

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

## 將 AgentCore 與 CI/CD 管道整合
<a name="integrating-agentcore-with-cicd-pipelines"></a>

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 建立新的代理程式程式碼。

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

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

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

## AWS 服務 適用於 CI/CD 工具
<a name="section-cicd-aws-services"></a>

下列 AWS 服務 支援無伺服器 AI 的 CI/CD 實作：
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 為程式碼、提示和基礎設施提供end-to-end管道功能。
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 會執行測試、固定和驗證。
+ [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html) 和 [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)，以及 HashiCorp[https://www.terraform.io/docs](https://www.terraform.io/docs)（第三方工具） 定義基礎設施、客服人員、許可和工作流程。
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 存放版本控制的提示檔案和代理程式範本。
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) API 和 CLI 會動態註冊提示和代理程式定義。
+ [CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 會執行部署後探查和可信度驗證。
+ [Lambda@Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) 和 [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 會從偏離和部署失敗等受監控事件觸發 CI/CD。

## CI/CD 和自動化的摘要
<a name="section-cicd-summary"></a>

CI/CD 不僅是最佳實務，也是擴展安全可靠 AI 系統的必要條件。透過提示敏感度、工具自主權和基礎設施複雜性，自動化提供了幾項重要優勢：
+ 更快的創新週期，降低風險
+ 可管理且可稽核的更新
+ 跨團隊和區域的穩定環境
+ 邏輯和語言的整合測試

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

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