AI辅助SAP开发实践指南

提供基于Model Context Protocol (MCP)服务器、Kiro-CLI代理和AWS基础设施的AI辅助SAP开发最佳实践,适用于SAP系统开发、代码分析和自动化测试等场景。

  • by one-kash
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 one-kash/sap-agentic-ai-best-practices

使用说明

SAP代理人工智能最佳实践

使用模型上下文协议(MCP)服务器、Kiro CLI代理和AWS基础设施实施人工智能辅助SAP开发的最佳实践。


目录

  1. 介绍
  2. ABAP加速器的MCP最佳实践
  3. Kiro CLI清洁核心代理最佳实践
  4. 安全最佳实践
  5. 运营最佳实践
  6. AWS部署注意事项
  7. 附录

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故障排除方法

原则:遵循系统的诊断步骤。

出现问题时:

  1. 验证基础设施先决条件(Docker正在运行,映像已加载)
  2. 独立测试SAP连接
  3. 检查凭证有效性
  4. 查看MCP服务器日志
  5. 批处理操作前使用最小范围(单个对象)进行测试

有关详细的故障排除,请参阅 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