

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AI 代理进行 DMS 架构转换
<a name="sc-genai-agents"></a>

您可以使用 AI 代理通过 AWS API 推动 DMS 架构转换工作流程。AI 代理是一种软件工具，它使用大型语言模型来理解自然语言指令并自动执行任务。连接到 [AWS MCP 服务器](https://docs.aws.amazon.com/agent-toolkit/latest/userguide/mcp-server.html)后，AI 代理可以创建迁移项目、浏览源数据库元数据树、转换架构、生成评估报告、导出结果以及解释服务的各个方面。您可以通过自然语言提示控制这些操作。

要通过 DMS 架构转换提高代理的准确性和效率，您可以安装 AWS DMS 架构转换技能。该技能提供 DMS 架构 Conversion-specific 上下文，包括 API 模式、系统架构排除项、操作顺序和服务最佳实践。

**重要**  
该技能包含的说明可**防止 AI 代理在使用 DMS 架构转换时犯的常见错误****，并减少反复试错循环，这有助于减少令牌使用量并加快实现所需目标的速度**。我们强烈建议您在开始之前安装它。

本主题介绍如何安装该技能，并提供了您可以通过 AI 代理运行的常见 DMS 架构转换工作流程的示例。

## 先决条件
<a name="sc-genai-agents-prerequisites"></a>

在开始之前，确保您满足以下先决条件。本指南假设熟悉 AWS DMS 和命令行界面。
+ **AI 代理** [— 支持模型上下文协议 (MCP) 的人工智能编码代理，例如 [Kiro CLI](https://kiro.dev/cli/)、C [laude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) 或 Cursor。](https://www.cursor.com/)
+ **AWS MCP 服务器** — 在代理中配置 [AWS MCP 服务器](https://docs.aws.amazon.com/agent-toolkit/latest/userguide/mcp-server.html)，使其可以进行 AWS API 调用。有关更多信息，请参阅[《 AWS 代理工具包用户指南》中的 “设置 AWS MCP 服务器](https://docs.aws.amazon.com/agent-toolkit/latest/userguide/getting-started-aws-mcp-server.html)”。
+ **AWS 凭证** — 代理需要具有调用 AWS DMS API 权限的 AWS 凭证。使用 [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html) 配置凭证。有关所需权限的更多信息，请参阅[使用所需的 IAM 权限 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)。

**注意**  
如果您已经在 DMS 架构转换中配置了迁移项目，则代理可以立即使用该项目。否则，代理可以为您创建一个。有关更多信息，请参阅 [与数据提供者、实例配置文件和迁移项目合作 AWS DMS](migration-projects.md)。

## 安装   AWS DMS 架构转换技能
<a name="sc-genai-agents-skill"></a>

技能是一套精心策划的说明和参考材料，可帮助你的 AI 代理有效地完成 DMS 架构转换任务。 AWS DMS 架构转换技能包含 API 模式、系统架构排除项、操作顺序规则和服务最佳实践。使用此技能，代理犯的错误更少，完成 DMS 架构转换操作所需的来回操作也更少。

选择以下方法之一来安装技能。

------
#### [ AWS MCP server ]

如果您的代理已连接到 AWS MCP 服务器，则代理可以通过 MCP 服务器自动查找并加载技能。在继续操作之前，请确认您的 MCP 服务器已加载并已连接。在大多数 AI 代理中，您可以通过输入`/mcp`来检查 MCP 服务器状态。然后问问你的经纪人：

```
Load "dms-schema-conversion" skill using the `retrieve_skill` tool.
```

代理从 AWS MCP 服务器检索技能并将其应用于当前会话。

------
#### [ npx skills CLI ]

如果您的代理不使用 AWS MCP 服务器，则可以从 AWS存储库的 [AWS Agent Toolkit](https://github.com/aws/agent-toolkit-for-aws) 本地安装技能。 GitHub在您的项目目录中运行以下命令：

```
npx skills add aws/agent-toolkit-for-aws/skills/specialized-skills/migration-and-modernization-skills/dms-schema-conversion
```

**注意**  
如果您在 AI 编码工具中使用自定义代理定义，请确保代理配置包含技能目录。否则，代理将无法发现和加载技能。

------
#### [ Manual installation ]

克隆 AWS存储库[的AWS 代理工具包](https://github.com/aws/agent-toolkit-for-aws)，然后将技能目录复制到代理的技能位置。下表显示了受支持代理的技能路径。


| 座席 | 项目技能路径 | 全球技能之路 | 
| --- | --- | --- | 
| Kiro CLI | .kiro/skills/ | \~/.kiro/skills/ | 
| Claude Code | .claude/skills/ | \~/.claude/skills/ | 
| Cursor | .cursor/skills/ | \~/.cursor/skills/ | 
| Codex | .agents/skills/ | \~/.codex/skills/ | 

**注意**  
如果您在 AI 编码工具中使用自定义代理定义，请确保代理配置包含技能目录。否则，代理将无法发现和加载技能。

------
#### [ Direct URL ]

您可以直接从 GitHub URL 加载技能，无需在本地安装任何东西。询问你的经纪人：

```
Load skill from https://github.com/aws/agent-toolkit-for-aws/blob/main/skills/specialized-skills/migration-and-modernization-skills/dms-schema-conversion/SKILL.md
```

代理从中获取技能内容 GitHub 并将其应用于当前会话。

------

成功加载技能后，您将看到一个包含可用架构转换操作的操作菜单。

## 最佳实践
<a name="sc-genai-agents-best-practices"></a>

使用带有 DMS 架构转换的 AI 代理时，请遵循以下建议以获得最佳结果。
+ **转换前浏览**-在开始转换架构之前，使用代理浏览元数据树。这可以帮助您了解迁移的范围并确定要转换哪些架构。
+ **一次转换一个架构**-对于大型数据库，请单独转换架构，而不是一次转换所有架构。这样可以更轻松地查看转换后的代码并逐步处理操作项。
+ **跳过系统架构**-不要转换系统数据库或系统架构。它们包含引擎内部对象，这些对象会生成大量不可转换的动作项目。
+ **应用之前查看转换后的 SQL-将**转换后的代码导出为 SQL 脚本，并在应用到目标数据库之前对其进行审查，尤其是对于代码对象。
+ **启用生成式 AI-assisted 转换**-启用生成式 AI-assisted 转换以提高代码对象的转换率。生成式 AI-assisted 转换使用机器学习来转换基于规则的转换器无法自动处理的对象。有关更多信息，请参阅 [使用生成式人工智能转换数据库对象](schema-conversion-convert.databaseobjects.md)。
+ **使用评估报告**-转换或评估后，生成评估报告以获取转换结果和剩余手动工作的摘要。有关更多信息，请参阅 [使用 DMS 架构转换创建数据库迁移评测报告](assessment-reports.md)。

## 示例
<a name="sc-genai-agents-examples"></a>

以下示例显示了常见的 DMS 架构转换工作流程，您可以在加载技能后通过 AI 代理运行这些工作流程。

### 创建迁移项目
<a name="sc-genai-agents-example-create"></a>

在此示例中，您将使用 AI 代理创建迁移项目，用于将微软 SQL Server 数据库转换为亚马逊 Aurora PostgreSQL。代理创建所需的 AWS DMS 资源并将它们链接在一起。

以下提示指示代理创建迁移项目：

```
I want to migrate my SQL Server database to Aurora PostgreSQL using DMS Schema Conversion. The source database is on an EC2 instance at 10.0.1.50, port 1433, database name "AdventureWorks". The credentials are stored in Secrets Manager under "mydb-source-credentials". Create a migration project for me.
```

代理创建源数据提供器、目标数据提供器、实例配置文件以及将它们关联在一起的迁移项目。如果您还没有目标数据库，则代理会创建一个虚拟目标数据提供器，以便您可以将架构转换和导出为 SQL 脚本。代理还会创建所需的 IAM 角色和 S3 存储桶，并检查网络配置。

代理创建迁移项目后，您可以浏览源数据库元数据、评估或转换架构以及导出结果。

### 浏览元数据树
<a name="sc-genai-agents-example-browse"></a>

您可以使用代理来浏览您的源数据库结构。代理按层次浏览元数据树，列出数据库、架构、表、存储过程和其他对象。

```
Show me the databases and schemas in my source database.
```

代理会导入源元数据（如果尚未导入），然后使用 AWS DMS API 在元数据树中导航。你可以更深入地研究特定的架构：

```
Show me the stored procedures in the AdventureWorks.dbo schema.
```

### 评估或转换架构
<a name="sc-genai-agents-example-convert"></a>

浏览元数据树后，您可以使用代理来评估或转换架构并导出结果。

```
Convert the AdventureWorks.dbo schema to Aurora PostgreSQL and export the converted SQL scripts.
```

代理转换架构对象并将转换后的 SQL 脚本导出到 S3 存储桶。每个转换和导出操作都是异步运行的，在开始下一个操作之前，代理会轮询是否完成。转换后，代理生成评估报告。

评估报告包括已转换对象的摘要、需要手动更改的对象的措施项以及工作量估计。您也可以要求代理解释特定措施项的含义，并就如何解决这些问题提供指导。

### 在长时间运行的操作中提问
<a name="sc-genai-agents-example-questions"></a>

某些 DMS 架构转换操作（例如架构转换、元数据导入和评估）是异步运行的，可能需要一些时间。当工程师轮询是否完成时，您可能需要在不中断工作流程的情况下提问、获得澄清或提供其他指示。

以下方法允许您在长时间运行的操作期间与代理进行交互。根据您的代理能力选择一种方法。

------
#### [ Ctrl\+C ]

这种方法适用于大多数 AI 代理，包括 Kiro CLI、Claude Code 和 Cursor。

在代理轮询进度时，按 Ctrl\+C 中断该代理。然后，您可以提出问题或给出新的指示。代理会暂停当前操作，但不会取消服务器端的操作，而是继续在 AWS DMS服务器端运行。

代理回答您的问题后，您可以要求其继续检查操作状态。

```
Check if the conversion is done now.
```

------
#### [ Separate session ]

这种方法适用于任何 AI 代理。

打开新的终端选项卡并启动单独的代理会话。使用一个会话运行操作并进行轮询以确定是否完成，使用另一个会话来提问或做其他工作。两个会话都可以访问相同的 MCP 服务器和 AWS 资源。

------
#### [ Instructing the agent not to poll ]

这种方法适用于任何 AI 代理。

与其等待操作完成，不如指示代理启动操作并立即返回。然后，您可以提问、做其他工作，并在准备就绪后查看状态。

提示示例：

```
Start converting the AdventureWorks.dbo schema but don't wait for it to finish. I'll ask you to check the status later.
```

然后稍后：

```
Check if the dbo schema conversion is complete.
```

------
#### [ /btw command ]

这种方法在 Claude Code 和其他支持后台消息的代理中可用。

输入，`/btw`然后输入您的问题，以便在不中断代理当前任务的情况下发送附带消息。代理在后台处理您的问题，同时继续轮询以完成问题。

示例：

```
/btw What action items typically appear for stored procedures?
```

------
#### [ Subagents ]

这种方法适用于支持后台子代理的代理，例如 Claude Code。

指示代理在后台子代理中运行操作。子代理轮询是否完成，而你的主会话仍然可以自由提问和其他工作。

提示示例：

```
Run the AdventureWorks.dbo schema conversion in a background subagent and let me know when it's done.
```

------