SAP代理人工智能最佳实践
使用模型上下文协议(MCP)服务器、Kiro CLI代理和AWS基础设施实施人工智能辅助SAP开发的最佳实践。
______________________________________________________________________
目录
______________________________________________________________________
1.导言
1.1范围
本文档为实施人工智能辅助SAP开发工作流的组织提供了最佳实践。它涵盖了架构模式、代理设计、安全性和操作,而不会重复参考文档中的设置说明。
1.2目标受众
- 部署SAP MCP基础设施的平台工程师
- 开发人员为SAP系统构建AI代理
- 安全架构师审查SAP AI集成模式
- 维护SAP MCP部署的运营团队
1.3组件概述
| 组件 | 目的 | 文档 |
|---|---|---|
| SAP MCP服务器 | 通过容器化运行时实现SAP系统连接 | SAP ABAP加速器设置指南 |
| AWS MCP服务器 | AWS服务集成(8个域中的64台服务器) | AWS实验室MCP服务器 |
| Kiro CLI | 用于自定义工作流的AI代理框架 | Kiro CLI文档 |
| 定制代理 | 特定任务的AI代理(ATC检查、文档等) | Kiro定制代理 |
| AWS基础设施 | MCP服务器的云部署模式 | AWS MCP部署指南 |
1.4使用案例
本文档中的实践适用于SAP AI工作流,例如:
| 用例 | 描述 |
|---|---|
| 清洁堆芯评估 | 符合性分类(A/B/C/D级)的自动ATC检查 |
| 自定义代码文档 | 人工智能生成的Z/Y对象文档 |
| 自定义代码迁移分析 | 使用迁移分析数据进行S/4HANA就绪性评估 |
| 单元测试开发 | 创建或更新ABAP单元测试类 |
| 语法验证 | 激活前ABAP语法检查 |
| 未使用的代码发现 | 使用SUSG统计信息进行运行时分析 |
| 代码搜索和发现 | 跨包搜索和列出对象 |
| 对象激活 | 修改后激活ABAP对象 |
______________________________________________________________________
2.ABAP加速器的MCP最佳实践
有关MCP架构概念,请参阅 MCP架构概述.
2.1容器部署
原则:将MCP服务器部署为具有明确资源约束的容器化应用程序。
关键实践:
- 使用特定的图像版本标签;避免
latest - 应用适合工作负载的内存和CPU限制
- 使用
--rm防止容器堆积的标志 - 将机密设置为只读
有关容器设置说明,请参阅 SAP ABAP加速器设置指南.
2.2多系统架构
原则:每个SAP系统使用单独的MCP服务器实例。
连接到多个SAP系统(DEV、SBX等)时,部署单独的容器实例,而不是共享单个连接。这提供了:
- 明确凭证分离
- 独立缩放
- 孤立的故障域
- 按系统审计跟踪
有关多系统配置,请参阅 多个SAP系统配置.
______________________________________________________________________
3.Kiro CLI清洁核心代理的最佳实践
3.1三阶段工作流模式
原则:将代理工作流程分为三个不同的阶段,并设置明确的关卡。
Phase 1: Initialization
- Check for existing progress state
- Verify SAP connection
- Discover target objects
- Create progress tracking file
- Gate: Verify all prerequisites before proceeding
Phase 2: Processing
- Process objects in batches
- Checkpoint progress after each batch
- Handle individual failures without stopping
- Output progress indicators
Phase 3: Completion
- Generate summary report
- Archive progress files with timestamp
- Report final statistics此模式支持崩溃恢复、进度可见性和关注点的清晰分离。
有关代理配置,请参阅 Kiro海关代理文件.
______________________________________________________________________
4.安全最佳实践
4.1环境限制
原则:将人工智能辅助操作限制在非生产系统中。
| 环境 | 人工智能接入 | 基本原理 |
|---|---|---|
| 开发(DEV) | 允许 | 实验安全 |
| 沙箱(SBX) | 允许 | 隔离测试 |
| 培训(TRN) | 允许 | 教育用途 |
| 质量(QAS) | 不允许 | 预生产数据 |
| 生产(PRD) | 不允许 | 关键业务 |
存在此限制是因为AI代理可以读取源代码、执行ATC检查和生成文档。这些操作不应针对生产系统或数据进行。
4.2凭证管理
原则:切勿将凭据存储在配置文件、环境变量或版本控制中。
推荐图案
| 部署 | 凭据存储 | 引用 |
|---|---|---|
| 本地开发 | 绑定挂载的Docker秘密 | SAP ABAP加速器-密码配置 |
| AWS云 | AWS秘密管理器或Cognito | AWS MCP指南-安全 |
关键实践
- 将密码存储在具有受限权限的专用机密文件中(600)
- 将机密以只读方式装载到容器中
- 使用避免shell历史记录的安全密码输入方法
- 按定义的时间表轮换凭据
- 永远不要将机密目录提交给版本控制
4.3网络安全
原则:尽量减少MCP服务器的网络暴露。
运输选择
| 运输 | 用例 | 暴露 |
|---|---|---|
| stdio | 本地代理部署 | 无(仅限stdin/stdout) |
| HTTP | 远程或多客户端 | 需要身份验证和TLS |
对于使用Kiro CLI的本地部署,首选stdio传输。MCP服务器作为子进程运行,不暴露任何网络端口。
对于HTTP传输(多客户端场景),实现:
- 源标头验证
- 本地主机绑定(127.0.0.1,而不是0.0.0.0)
- TLS加密
- 身份验证(建议用于云部署的OAuth 2.0)
4.4输入验证
原则:在SAP系统交互之前验证所有输入。
MCP服务器应验证:
- 对象名称与预期模式匹配(自定义代码为Z\*、Y\*)
- 包名称存在并且可以访问
- 参数不受注射尝试的影响
- 请求率在可接受的范围内
4.5审核和记录
原则:维护所有SAP交互的审计跟踪。
日志条目应记录:
- 时间戳
- 用户或代理身份
- 工具已调用
- SAP对象已访问
- 操作结果(成功/失败)
对于云部署,使用AWS CloudWatch或等效工具集中日志。看 AWS MCP指南 CloudWatch集成模式。
______________________________________________________________________
5.最佳操作实践
5.1健康监测
原则:在批处理操作之前和期间验证系统运行状况。
健康检查应确认:
- 容器运行时可用
- 加载MCP图像
- 配置文件存在
- SAP系统可访问
- 凭据有效
对于本地部署,请在启动代理之前运行验证命令。对于云部署,将健康检查与负载均衡器配置集成。
5.2资源管理
原则:积极清理资源。
- 使用
--rm容器自动清理标志 - 运行定期系统修剪以删除未使用的图像
- 归档已完成的进度文件,而不是累积
- 监控输出目录的磁盘使用情况
5.3输出组织
原则:为输出保持一致的目录结构。
推荐结构:
/reports/
/atc/ # ATC check results
/docs/ # Generated documentation
/unused/ # Unused code analysis
/executive/ # Business summaries
/archive/ # Historical progress files每个代理都应该写入其指定的目录。完成后,将带有时间戳的进度文件存档以供审计。
5.4超时配置
原则:为SAP操作设置适当的超时。
SAP操作可能很慢,特别是:
- ATC检查大型物体或包裹
- 复杂程序的源代码检索
- 初始连接建立
将MCP客户端超时配置为至少60秒。对于大型包的批处理操作,考虑更长的超时或实现每个对象的超时处理。
5.5故障排除方法
原则:遵循系统的诊断步骤。
出现问题时:
- 验证基础设施先决条件(Docker正在运行,映像已加载)
- 独立测试SAP连接
- 检查凭证有效性
- 查看MCP服务器日志
- 批处理操作前使用最小范围(单个对象)进行测试
有关详细的故障排除,请参阅 SAP ABAP加速器故障排除.
5.6了解MCP错误响应
MCP服务器返回两种类型的错误:
| 错误类型 | 含义 | 操作 |
|---|---|---|
| 协议错误 | 请求本身无效(工具名称错误,参数错误) | 检查MCP配置和工具语法 |
| 执行错误 | 请求有效但操作失败(对象已锁定,未找到) | 检查SAP系统状态和权限 |
常见的执行错误和解决方法:
| 错误消息 | 原因 | 解决方法 |
|---|---|---|
| 找不到对象 | 对象不存在或名称错误 | 在SAP中验证对象名称 |
| 对象已锁定 | 其他用户正在编辑 | 等待或联系用户 |
| 授权失败 | 缺少SAP权限 | 检查用户授权 |
| 连接超时 | SAP系统速度慢或无法访问 | 验证网络和SAP可用性 |
______________________________________________________________________
6.AWS部署注意事项
6.1何时使用云部署
本地部署(Docker+Kiro CLI)适用于:
- 个人开发人员工作站
- 小规模评估
- 试剂的开发和测试
云部署(AWS ECS/Fargate)适用于:
- 多用户环境
- 生产级操作
- 与企业安全控制集成
- 集中监控和记录
6.2关键AWS模式
对于MCP服务器的云部署,AWS提供了参考架构,包括:
| 模式 | 目的 |
|---|---|
| ECS/Fargate | 无服务器管理的容器编排 |
| Cognito | MCP端点的OAuth 2.0身份验证 |
| WAF | 速率限制和DDoS保护 |
| CloudFront | HTTPS终止和边缘缓存 |
| CloudWatch | 集中式日志记录和监控 |
| 多AZ | 跨故障域的高可用性 |
有关实施细节,请参阅 AWS部署MCP服务器指南.
6.3 SAP特定注意事项
在AWS上部署SAP MCP服务器时:
- 网络连接:确保ECS任务可以到达SAP系统(VPC对等、直接连接或VPN)
- 凭据存储:将AWS Secrets Manager用于SAP密码,而不是基于文件的密码
- 日志记录:在CloudWatch日志条目中包含SAP系统标识符以进行筛选
- 扩展SAP RFC连接通常是单线程的;使用多个容器实例进行水平缩放
______________________________________________________________________
7.附录
附录A:清洁堆芯水平参考
| 级别 | 名称 | 描述 | 所需操作 |
|---|---|---|---|
| A | 完全干净 | 仅使用已发布的稳定API | 无-云就绪 |
| B | 务实干净 | 次要发现,仅供参考 | 审查和记录 |
| C | 有条件地清理 | 与计划的后续API一起使用 | 计划迁移路径 |
| D | 不干净 | 使用已弃用或内部API | 需要修正 |
有关Clean Core概念和可扩展性模式,请参阅 SAP清洁核心可扩展性白皮书.
附录B:MCP工具参考
SAP ABAP加速器提供的标准工具:
对象管理
| 工具 | 目的 |
|---|---|
aws_abap_cb_get_objects | 列出包中的ABAP对象 |
aws_abap_cb_create_object | 创建新的ABAP对象 |
aws_abap_cb_get_source | 检索源代码 |
aws_abap_cb_update_source | 更新源代码 |
aws_abap_cb_search_object | 搜索对象 |
开发工具
| 工具 | 目的 |
|---|---|
aws_abap_cb_check_syntax | ABAP语法验证 |
aws_abap_cb_activate_object | 激活ABAP对象 |
aws_abap_cb_run_unit_tests | 执行ABAP单元测试 |
aws_abap_cb_run_atc_check | 运行ATC检查(支持自定义变体) |
高级功能
| 工具 | 目的 |
|---|---|
aws_abap_cb_generate_documentation | 在SAP系统中生成文档 |
aws_abap_cb_get_migration_analysis | 自定义代码迁移分析 |
aws_abap_cb_create_or_update_test_class | 创建或更新单元测试类 |
有关完整的工具文档,请参阅 SAP ABAP加速器.
附录C:故障排除检查表
飞行前检查
- \[\]容器运行时正在运行
- \[\]MCP映像已加载且版本正确
- \[\]配置文件存在,语法有效
- \[\]机密文件存在,权限正确
- \[\]SAP系统可通过网络访问
- \[\]SAP用户凭据有效且未锁定
- \[\]目标环境为非生产环境
常见问题
| 症状 | 可能原因 | 解决方法 |
|---|---|---|
| 连接超时 | 网络或SAP可用性 | 验证SAP可达性 |
| 身份验证失败 | 凭据无效 | 检查密码文件内容 |
| 找不到文件 | 路径配置 | 使用绝对路径 |
| 权限被拒绝 | 文件权限 | 机密设置为600,目录设置为755 |
有关详细的故障排除,请参阅 SAP ABAP加速器故障排除.
______________________________________________________________________
参考文献
______________________________________________________________________
*文件版本:1.0*
