ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

百数AI工作流实战:9步搭建表单触发到智能体写回全流程

百数AI工作流实战:9步搭建表单触发到智能体写回全流程 1. 为什么我要把百数AI工作流从头到尾跑一遍百数这个平台早几年大家拿它当在线表单和轻量数据库用做做进销存、报修登记、客户跟进之类的内部工具。但从它把AI工作流和智能体能力接进来之后整个玩法就变了——你不再只是搭一个填表-存表-看报表的静态系统而是能让表单自己动起来用户提交一段文字后台自动调模型做分类、抽取、生成回复再把结果写回另一张表或者同一个记录里。这套东西听起来很唬人但真正落地的时候卡住大多数人的不是模型能力而是流程编排。新建工作流、选节点、配参数、挂智能体、写回表单中间任何一步的字段映射错了整条链路就是静默失败日志里只给你一句执行完成结果表里啥也没有。我自己前前后后搭了七八条不同用途的AI工作流踩过的坑足够写一篇避雷指南。这篇内容就是把我完整的操作路径拆成9个步骤讲清楚从零开始新建一条工作流到挂载智能体、把AI输出写进表单字段每一步都说明白为什么这么做以及哪里最容易翻车。适合两类人看一类是已经在用百数做业务系统、想加AI能力的实施同学另一类是想理解低代码平台上的AI工作流到底怎么跑的产品和开发。不需要你会写代码但需要你对表单字段、数据结构有基本概念。我下面讲的这套流程核心链路是表单触发 → 工作流接收 → 调用智能体 → 解析返回 → 写回表单。这条链路是所有AI工作流的地基把它跑通了后面做多智能体协作、做条件分支、做批量处理都是在这个基础上加东西。2. 开工前的整体设计与思路拆解2.1 先想清楚谁触发、处理什么、写回哪里很多人一上来就点新建工作流然后对着空白画布发呆。我的习惯是先在纸上或者备忘录里写三行字触发源是表单提交触发还是定时触发还是手动点按钮触发处理逻辑这段数据要交给智能体做什么分类、摘要、抽取字段、还是生成一段话输出目标AI的结果写到哪张表的哪个字段是覆盖原记录还是新建一条记录这三行字定不下来后面节点怎么连都是瞎连。举个我实际做过的例子一个客户咨询登记表用户填咨询内容我希望AI自动判断这是售前咨询还是售后问题并且提取出产品型号写回到同一张表的咨询分类和产品型号两个字段里。那三行字就是触发源表单提交处理逻辑分类实体抽取输出目标更新当前记录的两个字段。思路清楚了节点自然就出来了表单触发节点 → 智能体节点 → 更新记录节点。2.2 为什么用智能体节点而不是直接调API百数的工作流里调AI有两条路一条是直接用HTTP请求节点去调外部API另一条是用平台内置的智能体节点。我强烈建议新手走智能体节点这条路原因有三个。第一鉴权和密钥管理。直接调API意味着你要在HTTP节点里填API Key这个Key一旦写死在流程里后续换Key、限流、审计都很麻烦。智能体节点是在平台侧配置模型和密钥工作流里只引用智能体ID安全性和可维护性都高一个档次。第二提示词和参数的复用。智能体本身是一个独立配置的实体你可以在里面写好系统提示词、设定输出格式、调温度参数。同一条工作流里多个地方要调同一个智能体直接引用就行不用到处复制提示词。改一次全流程生效。第三输出结构化。智能体可以配置成返回JSON格式工作流后续节点解析起来非常省事。如果直接调API模型偶尔给你返回一段带markdown代码块的文字你还得加个解析节点去清洗多一层麻烦。当然如果你的场景需要调一个平台没集成的模型那还是得走HTTP节点。但对绝大多数分类、抽取、生成的需求智能体节点够用了。2.3 字段映射是整条链路的命门我见过太多人流程搭得漂漂亮亮一跑就失败最后发现是字段名对不上。百数里表单字段有显示名和字段ID两个概念工作流节点里引用字段时用的是字段ID不是你在界面上看到的中文名。你在智能体输出里写{category: 售前}写回节点里映射的目标字段如果选错了数据就丢了而且不报错。所以我的原则是每接一个节点先把输入输出的字段结构写清楚。智能体输出什么key写回节点就映射什么key一个字母都不能差。这个习惯能帮你省掉80%的调试时间。3. 核心细节解析与实操要点3.1 新建工作流命名和分组别偷懒进入百数后台找到工作流模块点新建。这里第一个坑就是命名。我建议命名格式统一成业务模块-触发方式-用途比如客户咨询-表单提交-AI分类。为什么因为工作流一多列表里全是新建工作流1新建工作流2过两周你自己都认不出来哪个是哪个。分组也很重要。百数的工作流支持分组管理我一般按业务线分售前、售后、内部审批、数据同步。AI工作流单独建一个分组叫AI增强一眼就能找到。新建完成后画布上默认会有一个开始节点。这个节点不用管它是流程入口。真正要配的是它后面的触发节点。3.2 配置表单触发节点选对表单和触发时机触发节点决定了什么时候跑这条流程。百数里常见的有表单事件触发新增、更新、删除、定时触发、手动触发。做AI处理最常用的是表单新增时触发。配置的时候注意两点。第一选对表单。如果你有多个相似表单别选错。第二触发条件。不是每次提交都需要跑AI比如用户只填了个手机号没填咨询内容这时候跑AI就是浪费。可以加一个条件咨询内容字段不为空时才触发。提示触发条件尽量在触发节点就过滤掉无效数据不要等到智能体节点再去判断。智能体调用是有成本的能省则省。3.3 智能体节点的输入映射把表单字段喂给AI触发节点之后拖入一个智能体节点。这里要做的是输入映射——把表单里的字段值传给智能体。百数的智能体节点通常有一个输入参数区域你需要定义参数名然后把表单字段映射进去。比如定义参数user_input映射到表单的咨询内容字段。这个参数名要和智能体提示词里的占位符对应上。我踩过的一个坑智能体提示词里写的是{{content}}但输入映射里参数名写的是user_input结果AI收到的是一段空字符串输出自然也是空的。所以参数名必须和提示词占位符严格一致这是硬性要求。3.4 智能体本身的配置提示词和输出格式智能体节点里一般可以直接跳转到智能体配置页面或者选择已有的智能体。配置智能体时核心是两块系统提示词和输出格式。系统提示词我习惯写成三段式角色定义、任务说明、输出要求。比如你是一个客户咨询分类助手。 任务判断用户咨询属于售前咨询还是售后问题并提取产品型号。 输出要求只返回JSON格式为 {category: 分类结果, model: 产品型号}不要输出任何其他文字。输出格式这里如果平台支持选JSON模式一定要选上。这样模型返回的就是纯JSON后续节点解析不会出幺蛾子。如果不支持JSON模式那就在提示词里反复强调只返回JSON并且在后续加一个容错处理。3.5 写回表单节点更新还是新建想清楚智能体输出之后最后一个关键节点是写回。百数里对应的是新增记录更新记录这类节点。如果是更新当前记录选更新记录然后指定用触发节点的那条记录ID去更新。如果是把AI结果存到另一张表选新增记录把AI输出的字段映射到目标表的字段上。这里最容易错的是字段类型不匹配。比如AI返回的是字符串售前但目标字段是单选字段选项值是售前咨询那写进去就会失败或者变成空。解决办法是在智能体提示词里就把输出值限定成目标字段的选项值或者在写回前加一个条件判断节点做转换。4. 实操过程与核心环节实现4.1 完整9步操作流程下面是我实际搭建时的完整步骤按顺序走基本不会漏。第1步明确需求写出输入输出结构。在纸上写清楚输入是什么字段输出要写到哪个字段输出格式是什么。这一步花5分钟后面省半小时。第2步新建工作流并命名分组。命名格式模块-触发-用途归到AI增强分组。第3步配置表单触发节点。选目标表单触发时机选新增记录时加触发条件过滤空数据。第4步拖入智能体节点配置输入映射。定义参数名映射表单字段确保参数名和提示词占位符一致。第5步配置或选择智能体。写系统提示词设定输出为JSON格式明确输出字段名。第6步测试智能体单独运行。在智能体配置页用一条真实数据测试确认输出格式正确。这一步千万别跳过。第7步拖入写回节点配置字段映射。选更新或新增把AI输出的key映射到目标字段。第8步保存并启用工作流。确认所有节点连线正确没有断开的节点。第9步用真实表单提交测试全链路。提交一条测试数据去目标表看结果去工作流日志看执行记录。4.2 参数计算与选择过程智能体节点里有个参数叫最大输出长度或者max tokens这个值怎么定我的经验是分类和抽取任务输出很短设512足够了如果是生成一段摘要或回复按目标字数乘以2来估算。比如你要生成200字的回复中文一个字大约1.5个token200字约300token留点余量设800。温度参数temperature也值得说。分类和抽取任务温度设0到0.3要的是稳定和确定性生成创意文案温度可以设0.7到1.0。我见过有人做分类任务温度设了1.0结果同样的输入两次跑出不同分类排查半天以为是流程问题其实是温度太高。4.3 实操现场记录一次完整的调试过程我拿一个真实案例走一遍。表单叫客户咨询登记字段有客户姓名、咨询内容、咨询分类空、产品型号空。触发节点配置表单客户咨询登记时机新增记录条件咨询内容不为空。智能体节点输入映射参数名content映射到咨询内容字段。智能体提示词你是客户咨询分类助手。根据用户咨询内容判断分类并提取产品型号。 分类只能是售前咨询或售后问题。 只返回JSON{category:分类,model:型号}。无法提取型号时model填未知。写回节点更新记录记录ID用触发节点的记录IDcategory映射到咨询分类字段model映射到产品型号字段。测试时提交一条你们A100型号的保修期是多久预期输出{category:售后问题,model:A100}。第一次跑写回后咨询分类是空的。查日志发现智能体返回的是{category: 售后问题, model: A100}key是对的但写回节点里我映射的时候选错了字段——把category映射到了产品型号。改过来之后一次通过。这个案例说明什么写回节点的字段映射一定要对着智能体输出的key逐个核对别凭感觉选。5. 常见问题与排查技巧实录5.1 工作流跑了但表单没变化这是最高频的问题。排查顺序如下排查点检查方法常见原因触发条件看工作流日志是否有触发记录条件写太严数据没进来智能体输出在智能体配置页单独测试提示词占位符和输入参数名不一致写回映射核对key和字段ID映射错字段或字段类型不匹配记录ID确认更新的是当前记录用了错误的记录ID变量我遇到最多的是第二项输入参数名和提示词占位符不一致。智能体收到空输入返回空结果写回自然没变化但流程日志显示执行成功特别迷惑人。5.2 智能体返回带markdown代码块有时候模型不听话返回的是json {category:售前咨询,model:B200}这时候写回节点解析JSON就会失败。解决办法有两个一是在提示词里更强硬地要求不要用代码块包裹二是在智能体节点后加一个文本处理节点用正则把代码块标记去掉。我一般两个都做双保险。 ### 5.3 字段类型不匹配导致写入失败 百数的字段类型挺多的单行文本、多行文本、单选、多选、数字、日期。AI返回的都是字符串如果目标字段是数字或日期直接写会失败。 处理方式数字字段在提示词里要求AI只返回数字不要带单位日期字段要求返回YYYY-MM-DD格式。如果AI实在不听话就在写回前加一个转换节点。 ### 5.4 并发提交时数据串了 这个坑比较隐蔽。如果短时间内有多条记录同时触发工作流而你的写回节点用的是更新记录但记录ID取错了变量就可能把A的结果写到B的记录上。避免方法是写回节点的记录ID一定要用触发节点传过来的那条记录的ID不要用其他来源的ID。 ### 5.5 智能体调用超时 AI调用有时候会慢尤其是生成长文本的时候。百数的工作流一般有超时设置如果超时了流程会中断。我的做法是把超时时间设长一点比如60秒同时在智能体提示词里限制输出长度别让AI写小作文。 注意超时设置不是越长越好太长会占用工作流执行资源。分类抽取类任务30秒足够生成类任务60秒也够了。超过这个时间还没返回大概率是模型侧有问题等再久也没用。 ### 5.6 常见问题速查表 | 现象 | 最可能的原因 | 快速修复 | |------|--------------|----------| | 流程不触发 | 触发条件不满足 | 放宽条件或检查字段值 | | AI输出为空 | 输入参数名不匹配 | 核对参数名和占位符 | | 写回无变化 | 字段映射错误 | 逐个核对key和字段ID | | JSON解析失败 | 返回带代码块 | 加文本清洗节点 | | 写入报错 | 字段类型不匹配 | 转换格式或改字段类型 | | 数据串记录 | 记录ID取错 | 用触发节点的记录ID | ## 6. 几个让工作流更稳的进阶技巧 ### 6.1 加一个日志记录节点 在写回节点后面加一个新增记录节点把AI的原始输出、解析后的结果、执行时间写到一个专门的AI日志表里。这样出问题的时候你不用去翻平台日志直接看日志表就知道AI返回了什么、写回用了什么值。这个习惯我强烈推荐尤其是流程还在调试阶段。 ### 6.2 用条件分支处理异常输出 智能体输出不一定每次都符合预期。可以在智能体节点后加一个条件分支如果输出包含category这个key走正常写回如果不包含走异常处理分支比如给管理员发个通知或者把原始输出存到日志表里人工处理。 ### 6.3 提示词里加few-shot示例 如果分类准确率不稳定在提示词里加一两个示例告诉AI这样的输入对应这样的输出。比如示例 输入你们A100保修多久 输出{category:售后问题,model:A100} 输入B200支持哪些功能 输出{category:售前咨询,model:B200}加了示例之后输出格式的稳定性会明显提升。这是我在实际项目里验证过的比单纯强调只返回JSON有效得多。 ### 6.4 批量处理时控制并发 如果你要做批量数据的AI处理比如把历史咨询记录一次性跑一遍注意控制并发数。百数的工作流一般有并发限制同时跑太多会排队甚至失败。我的做法是分批跑每批50到100条跑完一批确认没问题再跑下一批。 ### 6.5 智能体的版本管理 智能体配置改来改去是常态。我的建议是每次大改提示词之前先复制一份旧版本留着。百数里可以建多个智能体命名带上版本号比如咨询分类-v1、咨询分类-v2。工作流里引用的是具体某个智能体换版本的时候改引用就行不用动提示词。这样出问题可以快速回滚。 ## 7. 我踩过的那些坑你别再踩了 第一个坑是**在触发节点没加条件**。有一次做测试表单里随便提交了一条空数据结果触发了一堆AI调用白白消耗了额度。后来我所有AI工作流的触发节点都加了关键字段不为空的条件。 第二个坑是**智能体输出字段名和写回映射不一致**。智能体返回{type:售前}我写回节点里映射的是category结果写了个寂寞。现在我的习惯是智能体提示词里定好输出key之后直接复制粘贴到写回节点的映射里不手动输入。 第三个坑是**忽略字段类型**。AI返回3天目标字段是数字写不进去。后来我在提示词里明确要求只返回数字不要带单位问题解决。 第四个坑是**没做异常分支**。有一次模型服务波动智能体返回了一个空字符串写回节点把空值覆盖了原来的数据把一条好好的记录搞坏了。后来我加了条件判断输出为空时不执行写回。 第五个坑是**调试时用生产表单**。测试数据混进了真实数据里清理起来很麻烦。现在我都建一个专门的测试表单结构和生产表单一样调试全在测试表单上跑确认没问题再切到生产表单。 这套流程我前后搭了七八条工作流从最简单的分类到多智能体协作的复杂链路都跑过。核心体会就一句话**AI工作流的难点不在AI在流程编排和字段映射**。把输入输出结构想清楚把每个节点的字段对应关系核对到位剩下的就是体力活。智能体本身的能力平台已经帮你封装好了你要做的是把数据正确地喂进去、正确地取出来。 如果你刚开始搭建议就从表单提交→智能体分类→写回同一张表这个最小链路开始跑通了再往上加东西。别一上来就搞多智能体、条件分支、循环处理那样出了问题你都不知道是哪一层的事。最小链路跑通之后你会发现后面加什么都是在搭积木。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进