1. 为什么“聊天问答”只是低代码AI的冰山一角
1.1 从“对话框”到“业务流”的认知转变
很多人第一次接触低代码平台上的AI功能,第一反应就是拖一个对话框组件,接上大模型接口,做一个“企业知识问答助手”。这个场景确实好演示,领导看了也满意,但真正落地到业务里,你会发现它根本撑不起“AI赋能业务”这六个字。原因很简单:聊天问答是无状态、无上下文、无业务约束的交互,而企业里真正消耗人力的环节,几乎都是有状态、有流程、有权限、有数据校验的。
我做过一个统计,在一个典型的中型企业里,真正适合用纯聊天解决的场景不到15%。剩下的85%是什么?是采购申请提交后自动比对预算、是工单创建时自动匹配历史相似案例、是合同审批时自动提取关键条款并校验合规性、是库存低于阈值时自动生成补货建议并推送给对应采购员。这些场景的共同点是:AI不是终点,AI是流程中的一个节点。
JNPF这类低代码平台做AI,核心思路就是把AI能力“打散”成可编排的节点,嵌入到已有的表单、流程、报表、权限体系里。你不需要让用户去跟AI聊天,而是让AI在后台默默把活干了,用户看到的还是熟悉的业务界面,只是效率提升了、错误率下降了。
1.2 低代码+AI的三种嵌入深度
我把低代码平台集成AI的方式分成三个层次,你可以对照看看自己处在哪一层:
| 嵌入层次 | 典型形态 | 技术实现 | 业务价值 |
|---|---|---|---|
| L1 外挂式 | 独立聊天窗口、侧边栏助手 | 直接调大模型API,无业务数据接入 | 演示效果好,实际使用率低 |
| L2 节点式 | 流程中的AI审批节点、表单中的智能填充 | 通过连接器或插件调用AI,传入业务字段 | 解决具体环节效率问题 |
| L3 原生式 | AI作为流程引擎的一部分,可回写、可分支、可触发 | 平台原生AI节点+业务规则引擎+数据回写 | 真正实现业务闭环 |
JNPF目前的能力覆盖在L2到L3之间,它提供了AI节点、智能体编排、MCP协议对接这几样东西,让你可以把AI塞进流程的任意位置。我下面要讲的,就是怎么把这些能力真正用起来,而不是停留在“接个对话框”的阶段。
1.3 谁适合看这篇实操记录
如果你是企业内部的数字化负责人、低代码平台的管理员、或者业务部门的流程设计者,这篇内容会对你有直接帮助。我不讲大模型原理,不讲Transformer架构,只讲怎么在JNPF里把AI嵌入到采购、审批、工单、报表这些具体场景中,以及我踩过的坑和验证过的参数配置。
如果你只是想知道“低代码能不能做AI”,答案是能,但关键不在“能不能”,而在“嵌得深不深”。下面我从整体设计思路开始拆。
2. 整体设计思路:AI不是功能,是流程的“隐形员工”
2.1 核心设计原则:AI节点化、数据双向流、失败可降级
在JNPF里做AI嵌入,我总结了三條必须遵守的原则,缺一个都会导致项目从“好用”变成“能用但没人用”。
第一,AI节点化。不要把AI做成一个独立的页面或按钮,而是把它做成流程中的一个节点。比如报销流程,传统做法是员工填单→主管审批→财务审核→打款。嵌入AI后变成:员工填单→AI预审节点(自动校验发票真伪、比对预算余额、检查费用标准)→主管审批(此时主管看到的是AI已经标注好风险点的单据)→财务复核→打款。AI在这里不是替代人,而是把人的工作从“全面检查”变成“重点确认”。
第二,数据双向流。很多低代码平台调AI是单向的:把数据发给AI,AI返回一个结果,流程继续。但真正有用的场景需要AI能回写数据。比如AI识别出合同中的付款条款与模板不符,它不仅要返回“不符”,还要把具体的差异字段写回到表单的对应字段里,这样后续的审批人才能直接看到差异对比。JNPF的AI节点支持输出映射,你可以把AI返回的JSON结构映射到表单字段或流程变量,这是实现双向流的关键。
第三,失败可降级。AI不是100%可靠的,网络会断、模型会超时、返回格式会错。如果AI节点失败导致整个流程卡死,业务部门三天就会把这个功能关掉。所以我在设计时一定会加降级分支:AI节点超时或报错时,自动跳过AI预审,直接进入人工审批,同时给管理员发一条告警。这样业务不中断,AI只是“锦上添花”,而不是“单点故障”。
2.2 技术选型:为什么用JNPF的AI节点而不是自己写接口
有人会问,我自己写个后端服务调大模型API,然后低代码平台通过HTTP请求调用不就行了?理论上可以,但实操中有几个问题:
- 上下文管理:自己写服务需要维护对话历史、token计数、超时重试,这些JNPF的AI节点已经封装好了。
- 输出解析:大模型返回的是自然语言,你需要把它解析成结构化数据才能回写表单。JNPF支持JSON Schema约束输出,你定义好字段,AI节点会强制模型按格式返回,省掉大量解析代码。
- 权限与审计:AI节点调用会记录在流程日志里,谁触发的、输入什么、输出什么、耗时多少,都有据可查。自己写服务还得额外做日志系统。
- MCP协议对接:这是JNPF比较有特色的地方,它支持通过MCP协议连接外部工具。比如你可以让AI节点调用一个“查询库存”的MCP工具,AI会自动决定什么时候调、传什么参数,不需要你硬编码。
当然,如果你有非常特殊的模型或私有化部署需求,自己写服务再通过HTTP节点调用也是可行的,但对于80%的企业场景,原生AI节点足够用,而且维护成本低一个数量级。
2.3 场景筛选:哪些业务流程值得嵌入AI
不是所有流程都值得加AI。我一般用下面这个矩阵来筛选:
| 流程特征 | 适合AI嵌入 | 不适合AI嵌入 |
|---|---|---|
| 数据形态 | 非结构化文本、图片、PDF | 纯结构化数字、枚举值 |
| 判断逻辑 | 需要语义理解、模糊匹配 | 简单if-else规则 |
| 处理量 | 高频、重复、人工耗时 | 低频、一次性、人工几秒搞定 |
| 错误成本 | 错误可被后续环节发现 | 错误直接导致资金损失 |
| 合规要求 | 辅助决策,最终人确认 | 全自动决策,无人复核 |
举个例子:采购申请中的供应商资质审核就非常适合。供应商提供的营业执照、资质证书是图片或PDF,人工审核需要逐个打开看、比对有效期、检查经营范围。AI可以自动提取关键信息、比对黑名单、标注风险点,采购员只需要确认AI的标注即可。这个场景高频、重复、人工耗时,且AI错误会被采购员发现,风险可控。
反过来,自动打款就不适合让AI全自动决策,但可以让AI做打款前的异常检测,比如发现收款账户与历史记录不一致时高亮提醒,最终由财务确认。
2.4 整体架构:从表单到AI再到回写的完整链路
我在JNPF里搭的典型架构是这样的:
- 触发层:表单提交、流程节点进入、定时任务、外部Webhook。
- 数据准备层:通过平台的数据映射功能,把业务字段组装成AI能理解的输入。这里要注意脱敏,比如身份证号、银行账号不要直接传给外部模型。
- AI处理层:AI节点或智能体编排。简单场景用单节点,复杂场景用多节点串联(比如先分类、再提取、再校验)。
- 输出解析层:用JSON Schema约束输出,平台自动解析成结构化数据。
- 回写与分支层:把解析结果写回表单字段或流程变量,根据结果走不同分支。
- 审计与降级层:记录AI调用日志,配置超时降级和告警。
这个链路听起来简单,但每一步都有细节。下面我逐个拆解。
3. 核心细节解析:AI节点配置、MCP对接与智能体编排
3.1 AI节点的输入输出配置:别把整个表单扔给模型
这是我最想强调的一点:输入不是越多越好。我见过有人把整个表单的JSON直接序列化后传给AI,结果token消耗巨大,模型还容易被无关字段干扰,输出质量反而下降。
正确的做法是只传必要字段,并且给字段加上语义标签。比如报销单AI预审,我只需要传:
- 费用类型(差旅/招待/办公)
- 金额
- 发票号码
- 开票日期
- 费用说明(员工填写的文本)
- 预算余额(从预算表关联查询)
而不是把员工姓名、部门、工号、提交时间这些无关字段也传进去。JNPF的AI节点支持字段映射,你可以从表单里挑字段,给每个字段起一个AI能理解的别名,比如把expense_desc映射为费用说明。
输出方面,一定要用JSON Schema。我在JNPF里定义的输出结构大概长这样:
{ "type": "object", "properties": { "risk_level": { "type": "string", "enum": ["低", "中", "高"], "description": "风险等级" }, "risk_reasons": { "type": "array", "items": {"type": "string"}, "description": "风险原因列表" }, "suggested_action": { "type": "string", "enum": ["通过", "人工复核", "拒绝"], "description": "建议动作" }, "extracted_fields": { "type": "object", "properties": { "invoice_amount": {"type": "number"}, "invoice_date": {"type": "string"} } } }, "required": ["risk_level", "suggested_action"] }这样AI返回的一定是结构化数据,平台可以直接把risk_level写回表单的“风险等级”字段,把risk_reasons拼接后写入“风险说明”字段。没有这一步,AI输出就是一段文字,你还得写代码解析,低代码的优势就没了。
注意:JSON Schema里的
description非常重要,它相当于给模型的字段说明。描述写得越清楚,模型返回的准确率越高。我一般会把业务规则也写进去,比如“金额超过5000且费用类型为招待时,风险等级至少为中”。
3.2 MCP协议对接:让AI自己决定调用什么工具
MCP是JNPF里比较有意思的能力。简单说,它让AI节点可以连接外部工具,并且由AI决定什么时候调用、传什么参数。这比硬编码HTTP请求灵活得多。
我举一个实际场景:工单处理助手。当客服提交一个工单时,AI需要:
- 判断工单类型(技术问题/账单问题/投诉)
- 如果是技术问题,查询知识库看有没有相似案例
- 如果是账单问题,查询该客户的账单状态
- 根据查询结果生成处理建议
传统做法是写一堆if-else,先判断类型,再调对应接口。用MCP的做法是:把“查询知识库”和“查询账单”都注册成MCP工具,AI节点拿到工单内容后,自己决定调哪个工具、传什么参数。你只需要在JNPF里配置好MCP Server的地址和工具描述。
配置MCP工具时,工具描述要写得像给新员工写操作手册。比如:
- 工具名:
query_knowledge_base - 描述:根据关键词查询技术知识库,返回最相似的3篇文章标题和摘要。适用于技术类工单的初步排查。
- 参数:
keyword(字符串,必填),top_k(整数,可选,默认3)
描述越具体,AI调用越准确。我试过把描述写得很简略,结果AI经常在不该调的时候调,或者传错参数。后来把描述改成“适用于技术类工单的初步排查”之后,准确率明显提升。
提示:MCP工具的执行结果也会返回给AI,AI可以基于结果继续推理。但要注意设置最大调用轮次,防止AI陷入循环调用。我一般设3轮,超过就强制返回当前结果。
3.3 智能体编排:多节点串联的注意事项
复杂场景需要多个AI节点串联。比如合同审核,我拆成三个节点:
- 分类节点:判断合同类型(采购/销售/服务/租赁)
- 提取节点:根据类型提取关键条款(付款方式、违约金比例、有效期)
- 校验节点:比对提取结果与公司模板,输出差异清单
串联时有两个坑:
第一个坑是上下文传递。节点2需要节点1的分类结果,节点3需要节点2的提取结果。JNPF里可以通过流程变量传递,但要注意变量类型。如果节点1返回的是字符串“采购”,节点2的输入映射里要正确引用这个变量,而不是重新让AI判断一遍。
第二个坑是错误传播。如果节点1分类错了,节点2和节点3全错。所以我在节点1后面加了一个人工确认分支:分类置信度低于阈值时,转人工确认后再继续。置信度可以从AI返回的JSON里取,让模型输出一个confidence字段。
3.4 数据安全与脱敏:哪些字段绝对不能传给外部模型
这个问题很敏感,但必须面对。我的原则是:
- 个人身份信息:身份证号、手机号、银行卡号、家庭住址,一律脱敏或用占位符替换。
- 商业机密:报价单、成本数据、客户名单,如果模型是外部API,不要传原文,可以传脱敏后的统计特征。
- 密码与密钥:绝对不传。
JNPF的AI节点支持前置处理脚本,你可以在调用AI之前对字段做替换。比如把手机号中间四位替换成****,把客户名称替换成客户A。AI处理完返回后,如果需要回写,再把占位符还原。
注意:脱敏不是可选项,是必选项。我见过因为把员工身份证号传给外部模型导致合规问题的案例,后续整改成本极高。在流程设计阶段就把脱敏规则定好,比事后补救容易得多。
4. 实操过程:从零搭建一个采购申请AI预审流程
4.1 场景定义与流程设计
我拿一个真实的采购申请流程来演示。原始流程是:员工填单→部门主管审批→采购部审核→财务审批→归档。痛点在于采购部审核环节,审核员需要人工检查:
- 供应商是否在合格名录里
- 采购物品是否在预算范围内
- 申请金额是否超过部门月度限额
- 附件中的报价单是否与填写金额一致
这四个检查项,人工平均耗时8分钟一单,每天30单就是4小时。我嵌入AI后,目标是把审核员的工作变成“确认AI标注”,耗时降到2分钟以内。
改造后的流程:员工填单→AI预审节点→部门主管审批→采购部审核(AI已标注风险)→财务审批→归档。
AI预审节点做四件事:
- 提取附件报价单中的金额、供应商名称、日期
- 比对表单填写金额与报价单金额
- 查询供应商名录,判断是否合格
- 查询预算余额和部门限额,判断是否超限
- 输出风险等级和风险原因
4.2 表单字段与数据准备
在JNPF里,采购申请表单包含这些字段:
| 字段名 | 类型 | 说明 |
|---|---|---|
| supplier_name | 文本 | 供应商名称 |
| item_name | 文本 | 采购物品 |
| amount | 数字 | 申请金额 |
| budget_code | 文本 | 预算科目 |
| dept_limit | 数字 | 部门月度限额(关联查询) |
| budget_balance | 数字 | 预算余额(关联查询) |
| attachment | 附件 | 报价单PDF或图片 |
| risk_level | 文本 | AI回写 |
| risk_reasons | 多行文本 | AI回写 |
| ai_confidence | 数字 | AI回写 |
其中dept_limit和budget_balance是通过数据关联从预算表实时查询的,不是用户填的。这一步很关键,因为AI需要基于最新数据判断,而不是用户填的历史数据。
4.3 AI节点配置全过程
在JNPF流程设计器里,拖入一个AI节点,配置如下:
模型选择:我选的是支持视觉的模型,因为要处理报价单附件。如果报价单是纯文本PDF,也可以用文本模型加OCR前置节点。
输入映射:
供应商名称:${supplier_name} 采购物品:${item_name} 申请金额:${amount} 预算余额:${budget_balance} 部门限额:${dept_limit} 报价单附件:${attachment}系统提示词(这是核心):
你是一个采购申请预审助手。你的任务是检查采购申请的合规性。 检查规则: 1. 如果申请金额大于预算余额,风险等级至少为“中”,原因写“超出预算余额”。 2. 如果申请金额大于部门月度限额,风险等级为“高”,原因写“超出部门限额”。 3. 如果报价单中的金额与申请金额不一致,风险等级为“高”,原因写“报价单金额与申请金额不符”。 4. 如果供应商不在合格名录中,风险等级为“高”,原因写“供应商未在合格名录”。 5. 如果以上都不触发,风险等级为“低”,原因写“未发现明显风险”。 请从报价单附件中提取金额、供应商名称、日期,并与表单填写值比对。 输出必须符合指定的JSON格式。输出Schema:按3.1节的结构定义。
超时设置:30秒。超过30秒走降级分支。
降级分支:AI节点失败时,设置risk_level为“未知”,risk_reasons为“AI预审超时,请人工全面审核”,流程继续走人工审批。
4.4 回写与分支配置
AI节点返回后,用数据映射把结果写回表单:
risk_level→ 表单的risk_level字段risk_reasons数组用逗号拼接 → 表单的risk_reasons字段confidence→ 表单的ai_confidence字段
然后加一个条件分支:
- 如果
risk_level为“高”,流程直接跳转到采购部经理的加签审批,并且把风险原因显示在审批页面的显著位置。 - 如果
risk_level为“中”,正常走采购部审核,但审批页面高亮风险原因。 - 如果
risk_level为“低”,正常走采购部审核,风险原因折叠显示。
这样审批人打开待办时,第一眼就能看到风险等级和原因,不需要自己去翻附件、查预算。
4.5 实测数据与效果对比
我在一个客户环境里跑了三周,数据如下:
| 指标 | 改造前 | 改造后 | 变化 |
|---|---|---|---|
| 采购部审核平均耗时 | 8分钟/单 | 2分钟/单 | 下降75% |
| 报价单金额不符漏检 | 每月约3单 | 0单 | 消除 |
| 超预算申请拦截 | 依赖人工发现 | AI自动标注 | 提前拦截 |
| AI预审超时率 | - | 2.3% | 可接受 |
| 审批人满意度 | - | 明显提升 | 反馈正面 |
超时的2.3%主要是附件过大或格式异常,降级分支保证了这些单子正常走人工,没有造成流程阻塞。
实操心得:AI预审的提示词我迭代了7版。第一版太笼统,AI经常漏检;第三版加了具体数值规则后好转;第七版把“报价单金额与申请金额不符”的判定逻辑写成“允许1%以内的误差,超过则视为不符”,误报率明显下降。提示词不是写一次就完事的,要拿真实数据反复调。
5. 常见问题与排查技巧实录
5.1 AI节点超时或返回格式错误怎么办
这是最高频的问题。我的排查顺序是:
- 看输入长度:如果输入文本超过模型上下文限制,会被截断或报错。JNPF的AI节点日志里会显示token消耗,超过80%就要考虑精简输入。
- 看Schema复杂度:嵌套层级太深、字段太多,模型容易返回不完整。我一般把Schema控制在3层以内,必填字段不超过5个。
- 看网络与模型负载:外部API偶尔会抖动,设置重试机制(JNPF支持配置重试次数,我一般设2次)。
- 看降级分支是否生效:如果超时后流程卡住,检查降级分支的条件是否正确配置。
5.2 MCP工具调用不准确怎么调
MCP工具调不准,90%是工具描述的问题。我的调整方法:
- 加负面示例:在描述里写“不适用于XX场景”。比如“查询知识库”工具的描述里加一句“不适用于账单查询,账单查询请使用query_billing工具”。
- 参数加约束:如果参数是枚举值,在描述里列出来。比如
type参数描述为“工单类型,只能是technical/billing/complaint三者之一”。 - 减少工具数量:一次给AI太多工具(超过5个),它容易选错。我一般按场景分组,不同流程用不同的MCP工具集。
5.3 回写数据不生效的排查清单
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 字段值为空 | 输出Schema字段名与映射字段名不一致 | 检查大小写和下划线 |
| 数组回写变成字符串 | 映射时未做拼接处理 | 用平台的数组转字符串函数 |
| 数字字段变成文本 | 类型不匹配 | 在Schema里明确type为number |
| 回写后流程分支未触发 | 分支条件引用了旧变量 | 确认分支条件引用的是回写后的字段 |
5.4 性能优化:如何降低AI调用成本
AI调用是按token计费的,量大了成本可观。我常用的优化手段:
- 缓存:相同输入(比如同一供应商的资质审核)在24小时内复用结果。JNPF里可以用流程变量加时间戳做简易缓存。
- 分级处理:先用小模型做分类,只有需要深度分析的才调大模型。比如工单先用小模型判断类型,技术类再调大模型做详细分析。
- 精简输入:只传必要字段,长文本做摘要后再传。我试过把2000字的合同摘要成300字再传给AI,提取准确率几乎不变,token消耗降了80%。
- 批量处理:定时任务场景下,把多条记录合并成一次调用。比如每晚批量审核当天的采购申请,一次传10条,比逐条调用省很多。
5.5 审批人反馈“AI标注不准”怎么处理
这个问题不能只从技术角度解决。我的做法是:
- 加反馈按钮:在审批页面加一个“AI标注有误”的按钮,审批人点击后记录反馈。
- 定期复盘:每周看一次反馈记录,把误报的案例拿出来分析,调整提示词或规则。
- 设置置信度阈值:置信度低于0.7的标注,显示为“AI不确定,请重点核查”,而不是直接给结论。这样审批人不会觉得AI在“瞎指挥”。
- 透明化:在审批页面显示AI的推理依据,比如“AI检测到报价单金额为5200,申请金额为5000,差异4%”。审批人看到依据后,即使不认同结论,也能理解AI为什么这么判断。
踩过的坑:一开始我把AI标注直接写成“风险:高”,审批人很反感,觉得AI在替他们做决定。后来改成“AI提示:报价单金额与申请金额存在差异(5200 vs 5000),建议核实”,接受度明显提高。AI是助手,不是裁判,这个定位要在界面上体现出来。
6. 进阶玩法:从单点AI到流程智能体
6.1 用智能体编排处理多步骤业务
单点AI节点解决的是“一个环节”的问题,比如提取、分类、校验。但有些业务需要多步骤推理,比如供应商准入审核:
- 提取营业执照信息(公司名、法人、有效期、经营范围)
- 查询工商信息接口验证真伪
- 比对经营范围与采购品类是否匹配
- 查询历史合作记录,评估风险
- 综合输出准入建议
这个流程用单个AI节点做不了,需要智能体编排。JNPF里可以把这5步拆成5个节点,用流程变量串联。每个节点负责一个子任务,最后一个节点做综合判断。
这样做的好处是每个节点可以独立调试和替换。比如第2步的工商查询接口换了,只需要改那个节点,不影响其他步骤。而且中间结果可以落库,方便审计和复盘。
6.2 定时任务+AI:批量处理场景
有些场景不是实时触发的,而是批量处理。比如每日合同到期提醒:
- 定时任务每天凌晨扫描合同表,找出30天内到期的合同
- 对每份合同,AI节点生成续签建议(基于历史合作数据、当前市场价格等)
- 把建议写入待办任务,推送给对应负责人
这种场景要注意并发控制。如果一天有500份合同到期,同时调500次AI会触发限流。我的做法是分批处理,每批20条,批间间隔2秒。JNPF的定时任务支持配置批次大小和间隔。
6.3 外部系统触发:Webhook+AI
有些AI处理需要由外部系统触发。比如客服系统收到新工单时,通过Webhook调用JNPF的流程,触发AI分析,分析结果再回传给客服系统。
这种场景的关键是接口鉴权和幂等性。Webhook的token要定期轮换,同一个工单ID重复触发时要返回相同结果,避免重复处理。JNPF的Webhook触发器支持配置幂等键,我一般用业务单据号作为幂等键。
6.4 效果度量:怎么证明AI嵌入真的有用
最后说一个容易被忽略但很重要的事:度量。你做了AI嵌入,怎么向老板证明它有价值?
我一般跟踪这几个指标:
- 人工耗时变化:改造前后同一环节的平均处理时间。
- 错误率变化:漏检、误判的数量对比。
- AI采纳率:审批人接受AI建议的比例。如果采纳率低于60%,说明AI标注质量有问题。
- 流程周期缩短:端到端的流程耗时变化。
- 成本节约:人工耗时减少折算成人力成本,减去AI调用成本。
这些数据在JNPF的流程日志和AI调用日志里都能取到。我建议在项目上线前就定好基线,上线后每周对比一次,用数据说话比任何演示都有说服力。
我个人在实际操作中的体会是,低代码平台做AI嵌入,技术难度其实不高,难的是业务理解和流程设计。你得知道哪个环节最耗时、哪个判断最容易出错、哪个数据最影响决策,然后才能把AI放在正确的位置。JNPF提供的AI节点、MCP、智能体编排这些能力,本质上是把“放AI”这件事的门槛降低了,但“放哪里”和“怎么放”仍然需要你对业务有深入的理解。我见过太多项目把AI做成了花架子,也见过一些项目用很简单的AI节点解决了大问题,区别就在于有没有真正钻进业务流程里。