笔者昨天的文章提到了双大括号 {{ }} 在扣子智能体开发平台里的应用。有朋友很感兴趣,让我介绍一下扣子平台上的工作流开发。
笔者以前的开发工作,曾经先后使用过 SAPGUI 里传统的 ABAP Workflow 和 SAP BTP 上的 Workflow:
SAP 三种工作流解决方案概述
SAP 工作流解决方案回顾:ABAP On-Premise 平台上的 Work Flow
SAP 业务技术平台(BTP) Workflow(工作流)功能介绍
在 SAP On‑Premise 系统中,ABAP Workflow 是内置的工作流解决方案,无需额外授权或外部服务,开发与运维都在熟悉的 SAPGUI 完成。这种紧密集成带来极高的系统稳定性和可靠性。
通过事务码 SWDD 使用 Workflow Builder,开发者可以直观地查看整个流程结构(如图形模型区、导航区、容器区)并进行修改或调试。
ABAP Workflow 的容器机制支持将数据从一个步骤传递到另一个步骤,而事件机制允许系统对象发布事件触发工作流。比如,在业务对象 BUS2201(采购订单创建)上发生 CREATED 事件时,就能触发对应 Workflow 模板,实现自动审批流。
相比传统 ABAP Workflow 仅专注于 SAP 系统本身,SAP BTP 上的 workflow 能跨系统、跨云调用。
通过 SAP BTP 在浏览器里提供的低代码的工作流编辑器,SAP BTP Workflow 可以将 SAP 系统与第三方系统串联起来,实现端到端自动化流程。比如当 SAP S/4HANA 中生成发票后,自动推送通知给外部 ERP,再将结果同步回 SAP,整个链路无缝高效。
笔者之前接触 SAP BTP 上的 Workflow 开发,上手很快,因为从 ABAP On-Premise Workflow 切换到 SAP BTP Workflow 根本不是从零开始,因为已经熟悉了工作流的流程建模、容器/事件机制、任务管理、版本控制等核心理念。SAP BTP Workflow 虽为一个云端的解决方案,但背后设计思想与流程抽象与经典 ABAP Workflow 的设计一脉相承,同时更现代、更易扩展和调试,操作界面更友好。其实笔者大部分学习时间都花费在查找和熟悉 SAP BTP Workflow 各种开发菜单选项的具体位置了。
最近笔者接触扣子空间的智能体工作流开发平台,学习起来非常轻松,有降维打击的感觉。毕竟这个 2C 领域的工作流开发平台,其流程定义、任务分派、错误处理、版本控制等核心点,都不可能超过 SAP 解决方案的复杂度。
开发人员学习一门新事物,都是从 Hello World 的入门级项目开始。
本文就从开发一个入门级的翻译工作流为例,介绍扣子平台工作流的开发流程。
打开 https://www.coze.cn,新建一个空白应用:
应用开发分为业务逻辑和用户界面两个开发步骤。业务逻辑封装在一个新建的工作流里面,命名为 translation.
这样的好处是,该工作流不仅能够驱动当前创建应用的业务逻辑,还能发布到扣子的 MCP 服务平台,被其他智能体使用,一鱼多吃。
工作流需要接收用户指定的待翻译文本和翻译成的目标语言,同时生成翻译后的文本。为此,新建两个输入参数 content 和 lang(黄色),以及默认的输出参数 output(绿色)。
具体的翻译动作交给大模型完成。点击「添加节点」,选择一个大模型节点,添加到工作流编辑页面。将工作流的开始节点,用线连接到大模型节点,再把大模型节点连接到工作流的结束节点。
在大模型的模型下拉列表里,可以选择豆包,DeepSeek,Kimi,百川,通义千问,智谱,Minimax 等各个厂家的大模型,每个厂家又提供了参数各异的细分模型可供选择。
指定系统提示词和用户提示词。
系统提示词:
# 角色
你是一个专业的翻译官,能够准确地将用户输入的内容翻译成目标语言,不进行随意扩写。
## 技能
### 技能 1:翻译文本
1. 当用户提供一段文本时,迅速将其翻译成目标语言。
2. 确保翻译的准确性和流畅性。
## 限制:
- 只进行翻译工作,不回答与翻译无关的问题。
- 严格按照用户要求的目标语言进行翻译,不得擅自更改。
用户提示词:
将用户输入的内容 {{content}}翻译成目标语言{{lang}}。
这里使用双大括号语法,引用工作流输入变量 content 和 lang 的内容,笔者之前的文章已经做过介绍。
双大括号 {{ }} 在 SAP UI5,ABAP 和智能体开发中的使用小结
在工作流的结束节点中,将返回结果的方式指定为「返回文本」,内容就是输出变量 output 的值,选择流式输出的选项打开。
至此工作流的开发就结束了。点击「试运行」按钮,给 content 和 lang 输入参数维护一些测试值。
可以看到期望中的翻译成英语的文本,同时从运行日志能看到本轮翻译的 token 消耗情况:总共 213 个 token.
发布成功后,这个工作流就可以被其他智能体使用了。
让它进行翻译:
从任务运行日志可以看出,名叫 translation 的工作流确实被触发执行了。
至于如何基于这个开发好的工作流,打造一个应用界面,这属于低代码开发领域的范畴,我们下一篇文章会继续聊。