YAAI 生态一周年:把 ABAP 变成 Agent 工具栈的开源组合拳

标签:ABAP, MCP, YAAI, 开源, AI

分类:SAP / SAP&接口

一句话总结

YAAI(Yet Another ABAP AI)是 Christoph Jänelli 在 ABAP 世界里用 ABAP 代码复刻 LangChain/Ollama 全套能力的开源项目,从后端 LLM 客户端 → 对话管理 → 函数调用 → RAG → MCP Server 一条龙。本文盘清这套生态一年的全部家底:yaai / yaai_ui / yaai_fc / yaai_cloud / yaai_mcp / abap-mcp-server 各自干什么、如何拼装、以及为什么说"YAAI 是 SAP 官方 ABAP MCP 的最佳互补"。


1. 一位 ABAP 老人做的人工智能实验

"I've been an ABAP developer since ABAP 4.6C. For the first time in my career I'm laughing out loud at what AI can do inside ABAP."

------ christianjianelli,YAAI 作者

它不是要让 Joule 失业,而是补足 SAP 商用方案 vs 企业现实之间的鸿沟

痛点 YAAI 解法
Joule 只能用 SAP 管的模型 LLM 完全可控:OpenAI / Ollama / Gemini / 自托管 / NVIDIA
想在 OnPrem 落地不行 纯 ABAP 库,7.52+ 都能跑
想给旧系统嵌入智能要付授权费 MIT 协议,唯一费用是你买的 LLM token
工具调用想自己接 SAP BAPI 第一公民支持------Function Calling 是 yaai_fc 主线

不像 Joule 是一个 IDE 内的 Copilot,它更像一个"ABAP SDK + ABAP 环境内的 Agent Runtime",让你能在 SAP 业务程序里直接让 AI 干活的智能层。


2. 完整组件地图

复制代码
┌──────────────────────────────────────────────────────┐
│                yaai_ui(ABAP AI UI 组件)              │
│  - Chat UI  - Code Assistant  - SAP GUI 集成         │
└──────────────────────────────────────────────────────┘
                            ▲
┌──────────────────────────────────────────────────────┐
│                yaai_cloud(BTP ABAP Environment)     │
│  - 预置 ABAP 工具库(基于 XCO Library)               │
│  - Agent 调试 & 测试基础设施                          │
└──────────────────────────────────────────────────────┘
                            ▲
┌──────────────────────────────────────────────────────┐
│                yaai_mcp(MCP Server)                 │
│  - 把 ABAP AI tools 暴露成 MCP 工具给外部 Agent     │
└──────────────────────────────────────────────────────┘
                            ▲
┌──────────────────────────────────────────────────────┐
│                yaai_fc(Function Calling / Tools)    │
│  - 把 Z_TOOL_READ_SALES_ORDERS 这种 ABAP 方法注册    │
│    为 LLM 可调用的工具                                │
└──────────────────────────────────────────────────────┘
                            ▲
┌──────────────────────────────────────────────────────┐
│                yaai(核心后端库)                      │
│  - LLM 多厂商客户端                                   │
│  - 对话管理(多轮 Session)                            │
│  - RAG(接入自定义表 + SAP 数据源)                   │
│  - Embedding 存储                                     │
└──────────────────────────────────────────────────────┘

打包过的 abap-mcp-server (Python 端做 stdio 桥接)把这套生态完整封装,让 Claude Code / GitHub Copilot / Cursor 直接在外部用 MCP 协议调用。


3. abap-mcp-server:7 大工具组解锁 ABAP 全场景

Python 包装后,已注册的 60+ 工具如下:

工具组 工具名 / 能力
DDIC 数据字典 域、数据元素、结构、透明表、表类型的读 / 搜索 / 创建 / 更新;域固定值的翻译;数据元素 label 多语
CDS 视图 创建 / 更新 / 删除 CDS、修改字段、读源
SQL 直发 sql_query 任意 SELECT/INSERT/UPDATE/DELETE,自动飞回结果
ABAP 类 读 / 搜索 / 创建 / 更新 / 检 / 激活
ABAP 接口 同上(interfaces)
ABAP 函数组 & FM Function Group 创建 / 更新 / 激活;BAPI / RFC 模块全生命周期
ABAP 程序 & Include Report / Include 创建 / 检 / 激活
Transport 管理 创建 Workbench 与 Customizing 请求、查询、释放
Messages & Message Class 创建 / 翻译 / 删除
ABAP Mass Activation 一次性激活整批对象或基于 Transport Request 批量激活

架构时序:

text 复制代码
MCP Client (Codex/Copilot/Claude)
     │ tool request
     ▼
ABAP MCP Server (Python)        ← stdio
     │ http
     ▼
SAP ICF Service (/sap/yaai/)
     │
     ▼
ABAP AI tools MCP
     │
     ▼
SAP System (ABAP AI tools、Function Calling、RAG)

这套工具面已经覆盖 SAP 所有 DDIC + ABAP Workbench 日常对象,是迄今最完整的开源 ABAP MCP Server。


4. 5 分钟上手:abap-mcp-server 本地部署

4.1 ABAP 系统侧

  1. 通过 abapGit 依次拉 yaai / yaai_fc / yaai_mcp 到你的 SAP。
  2. SM59 建一个 RFC Destination(指向本机,留给 ICF 用)。
  3. SICF 激活服务 /sap/yaai/*

4.2 Python 端

bash 复制代码
git clone https://github.com/christianjianelli/yaai_mcp.git
cd abap-mcp-server
python -m venv .venv && .venv\Scripts\activate          # Windows
pip install -r requirements.txt                        # mcp / requests / python-dotenv

.env

ini 复制代码
BASE_URL=https://<your-host>:44300/sap/yaai/
SAP_USERNAME=DEVELOPER01
SAP_PASSWORD=xxx

4.3 MCP 客户端集成

GitHub Copilot in Eclipse / VS Code 的 MCP config:

json 复制代码
{
  "servers": {
    "abap-mcp-server": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory", "D:\\Python\\abap-mcp-server",
        "run", "main.py"
      ]
    }
  }
}

启动后问 Co-pilot:"你有什么工具?"------你应该能看到上面那 60+ 条 abap_* 工具。


5. YAAI vs SAP Joule:一图对比

维度 SAP Joule for Developers YAAI
LLM 选择 SAP 托管(SAP-ABAP-1 / GPT / Anthropic 等) 完全可控:任何 OpenAI 兼容 API + Ollama 自托管
License 商业(Joule Base 订阅),免费期至 2026-09 MIT
适用范围 SAP BTP ABAP / S/4HANA Cloud Public OnPrem + Cloud(≥ ABAP 7.52)
聚焦 IDE 内开发者 Copilot ABAP 业务程序内嵌智能
MCP 集成 官方 ABAP MCP Server(与 YAAI yaai_mcp 互相兼容) yaai_mcp + abap-mcp-server
调试 SAP 管控 全开发者掌控:日志、token 计费、prompt 都能改
AI Unit 计费 需购买 无;只付 LLM 第三方费用

实战建议:Joule 控生产,YAAI 管 PoC 。两者完全等价能写代码,但很多客户会用 YAAI 在不公开的数据场景下做 POC、通过 yaai_mcp 把工具暴露给上层 agent。


6. 用 yaai_fc 把 ABAP 方法变 LLM 工具:示例代码

注册一个销售订单查询方法给 LLM:

abap 复制代码
DATA(lo_chat) = zcl_yaai_chat=>create( ).

" register a tool the LLM can call
lo_chat->register_tool(
    iv_name        = 'get_customer_orders'
    iv_description = 'Retrieves orders for a customer ID'
    io_handler     = me                     " implements tool interface
).

DATA(lo_resp) = lo_chat->ask(
    iv_question = |上周我所在区域的销售订单有哪些?|
).

LLM 端看到的工具描述就是 get_customer_orders + 那段自然语言说明;它会自动判断要不要调,调多少次,怎么传参,回写时怎么用。


7. RAG 把企业数据装进 LLM

YAAI 的 RAG 走以下路径:

  1. 把 SAP 表 / CDS / 自定义文档切片、入 Embedding、存到 ABAP 内的 vector store。
  2. 查询时先走 Embedding 相似度检索 → 取 Top-K → 拼接成 Context 给 LLM。
  3. 提供"事实可追溯"的回答(降低幻觉,尤其是订单、业务规则、流程类问题)。

这是 Joule 没提供的------它给你"一个通用 Chat 助手",而 YAAI 能让你把整个 SCN / 仓库的内部文档对自家私有 LLM 做上下文增强


8. 五条实战经验

  1. /sap/yaai/ 路径必须白名单到 SAP Web Dispatcher 与 Cloud Connector;HTTPS 强制,证书自备。
  2. DDIC 操作写入需要 DRY_RUN 防护------yaai_mcp 自带 ACL,逐包分层授权。
  3. SQL 直发的 RLS :开源版本已经包一层 SQL 解析器,禁 INTOCALL TRANSACTION,谨防被 prompt 注入拖库。
  4. 会话存储 :yaai 默认把对话历史放到自定义表,记得配置 GR_DAYS 的 housekeeping job。
  5. MCP 通过 stdio 调用:很多企业代理会把 stdio 命令卡掉,建议自起本地 MCP 桥接服务(HTTP SSE)再用。

9. 路线展望与生态选择

  • YAAI 1.x 还在快速演进,目标是*"ABAP-native Agent Runtime"*------支持 memory、tool registry、scheduler、eval harness。
  • 与 SAP 官方 ABAP MCP Server 关系:互补而非竞争。Jänelli 自己在论坛说过------SAP 出 QA 工具,他会跟进;如果官方做 Agent runtime,他就不重复造轮子。
  • 实际场景:
    • BTP 客户:jA_cDTP_team 用 Joule + yaai_cloud;SAP 出新 ABAP MCP Server 之后 yaai_mcp 直接复用。
    • OnPrem ECC:独自使用 yaai 系列;外部 Agent 用 abap-mcp-server 调用。
    • 混合:OnPrem 接 YAAI,BTP 上跑 Joule Studio Agent,两者通过 yaai_fc 定义的工具集对齐。

写在最后:YAAI 是 ABAP 工程师最值得"玩一年"的项目

如果你是 ABAP 老兵,从未写过 Python、不想学 LangChain------YAAI 是你依然能用 100% ABAP 代码 把 AI 工程玩起来的最朴素路径。一年的迭代让它已经从"玩具"成长为一套能上生产的运行时------而 MCP 化之后,外部 Claude/Copilot 都可以带着能力进入 SAP 系统而不丢任何上下文。

这是 SAP 官方 ABAP MCP GA 之外,第二条 ABAP 进 AI 时代的台阶

相关推荐
MatrixOrigin2 小时前
Astra 正式开源了:面向长期复杂工作的企业级 Agent Runtime
开源·astra·矩阵起源·matrix origin·contextpipe
梦想的颜色3 小时前
【AI速览】2026 最新 开箱即用型开源成品 Agent :DeepSeek Harness 、Pi-Agent、 Opencode 横向 全面 对比
开源·agent·opencode·dsh·piagent
爱喝水的鱼丶3 小时前
SAP-ABAP:隐式/显式增强开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流
萧鼎4 小时前
safetensors 库的安装、核心语法与实战用法,安全保存模型权重
python·开源·教程·python库·safetensors
VIP_CQCRE4 小时前
一站式接入 OpenAI Chat Completions:用 Ace Data Cloud 更快把 AI 能力接进业务
大模型·openai·ai开发·mcp·acedatacloud
ChampaignWolf4 小时前
abapgit-agent:用 Git 当中介,让 Claude Code 自己完成 ABAP 闭环开发
git·ai·abap·claude·abapgit·mcp
@小匠4 小时前
1Password-开源计划申请免费使用资格
开源
Behaviour6 小时前
DeepSeek V4.1 Flash 发布开源,Harness v0.1.5同日适配
人工智能·语言模型·开源·aigc·ai编程
黄骨鱼骨6 小时前
DatI:给AI接入数据库,Agent时代的NL2SQL问数与多维表格应该怎么做
java·database·text2sql·nl2sql·chatbi·mcp·data agent