这个岗位真正缺的不是"会用扣子"
JD 里有一条容易被忽略的要求:「有 1 年以上实际把 AI 导入工作流程的经验,需展示成果」。会用工具的人很多,能说清哪一段该交给模型、哪一段绝不能交给模型的人很少。这个作品就是我对那道题的答案。
痛点一 · 询价是"非结构化混乱"
客户发来的是"5000 支面霜什么时候能出",不是表单。要报价得先把它拆成产品/规格/数量/包材四个字段 —— 这活人工做一天几十次。
痛点二 · 法规校验会漏
逐行查表只能看单个成分,看不出同类成分加总越线。本作品里有一个真实案例:每个成分都在自己限值内,加起来 29.5% 超过 25%。
痛点三 · 结果不可复现
同一个问题问两次,模型给两个价——这种系统没法进业务。让模型算钱是省了开发,赔上了可信度。
怎么证明它是对的
| 验证项 | 方法 | 结果 |
|---|---|---|
| 报价可复现 | Node 引擎 与 Python 引擎各跑 120 组用例(40 SKU × 3 个数量档),逐项比单价/总价/交期/合规 | 480 项全一致 |
| 线上与本地同口径 | 同一批用例再与扣子工作流代码节点对拍 | 120 组全一致 |
| 端到端可用 | 扣子 Bot 发真实询价,比对返回四块与引擎输出 | 逐项一致 |
| 该拒绝时会拒绝 | 配方添加量合计 ≠ 100% 时不出价;成分超限时不给肯定答复 | 均有拦截 |
以上都能在「现场试用」里自己点出来 —— 不是截图,是这一页里实时算的。
建议先走一遍(约 4 分钟)
- 现场试用 → 点「③ 法规红线拦截」,看系统怎么拒绝给肯定答复。
- 再点「④ 总和规则」,看同一支防晒液里每个成分都合格、加起来却越线。
- 传参实验 → 输入
5000支看会发生什么;改成5000再看一遍。 - 踩过的坑 → 这一页最能说明"AI 落地为什么难"。
询价参数
左边选参数,或直接点一个一键场景
页面里所有金额都由内联的确定性引擎实时计算,公式与本地 engine/quote_engine.js 完全相同。没有预置答案。
同一个需求,两种传参,两种结局
这是真实发生过的事故。客户说「5000 支」,模型很自然地把它当成数量字段传了下去 —— 然后整条链路就断了。下面两个按钮跑的是同一套引擎,唯一差别是传进来的字符串长什么样。
另一道闸:配方不完整就不出价
报价的前提是配方成本可信。如果某个配方的添加量合计不等于 100%,说明 BOM 本身有问题 —— 这时候算出来的成本是错的,宁可不出价。
三层分工:谁负责什么,边界在哪
把"客户要 5000 支那个修护面霜"翻译成 {product_name, quantity, packaging_id}。信息不全就追问,不确定就转人工。不产生任何数字。
料体成本按 BOM 逐项求和;工费、加价倍率、包材税点、交期、起订量全部按固定规则。法规限值逐条比对,含"同类成分加总"。
把结果整理成固定四块:报价单 / 成本构成 / 合规结论 + 风险提示 / 可直接转发给客户的微信话术。话术里不许出现成本、倍率、供应商。
落到扣子上长这样
| 节点 | 职责 | 为什么放这里 |
|---|---|---|
| 开始 | 声明 3 个入参(全部 String) | 这是工作流对外的函数签名;参数描述是给模型看的 API 文档 |
| 代码 | 内联数据 + 报价算法 + 法规比对 | 确定性计算,扣子代码节点无文件系统,数据必须内联 |
| 结束 | 返回 ok / quote_json / error | 字段名要说人话,否则模型读不懂 |
在线体验
这个 Bot 已经发布在扣子商店。页面不用登录就能打开,能看到开场白和三个预置问题;但继续对话要登录扣子账号——这是扣子的账户体系决定的,不是把 Bot 设成了私有。
地址:https://www.coze.cn/store/agent/7696902230175334415?bot_id=true
本页则是它的静态托管版本:同一套确定性引擎、同样的数字,点开即用、无需账号、断网也能跑。两者算出的结果逐项一致。
端到端实测:Bot 真跑出来的四块输出
关键的两处配置
完整操作链
| # | 动作 | 所在位置 |
|---|---|---|
| 1 | 建表格知识库,导入后台数据 | 资源库 → 资源 + → 知识库 → 表格格式 |
| 2 | 建 Bot,写人设 | 创建 → 创建智能体 → 标准创建 → 左栏人设 |
| 3 | 建工作流,写描述 | 资源 + → 工作流 → 名称 + 描述(描述决定模型何时调用) |
| 4 | 搭三层节点并连线 | 画布:开始 → 代码 → 结束 |
| 5 | 配入参、描述、绑定 | 开始节点输入区 + 代码节点输入区 |
| 6 | 挂到 Bot 上 | Bot 编排 → 技能 › 工作流 → + → 添加 |
| 7 | 发布工作流 + 发布 Bot | 工作流顶栏「发布」→ Bot 顶栏「发布」→ 选渠道 |
踩过的坑:这才是"导入流程"的真实成本
JD 里写「推动各部门真正用起来 AI」。真正难的不是把 demo 跑通,是这些不报错、只让你以为"这东西不好用"的坑。
| 坑 | 现象 | 解法 / 教训 |
|---|---|---|
| 大文本粘贴静默截断 | 粘 20K 字符的代码进扣子代码框,存进去只剩 1 个 SKU,不报错 | 线上放精简示例、全量留本地;并把这条限制写进代码注释与文档,不假装线上也是全量 |
| 入参缺描述 | 模型把数量传成 "5000支",代码里转数字得 NaN,整条链路返回「缺少必要信息」 | 三个入参都补描述,写明例子和"不能为空" |
| 输出变量名无语义 | 返回 key0/key1/key2,模型读不懂,反复自我否决(思考链里满是"哦对的对的 / 哦不对不对") | 结束节点改名成 ok / quote_json / error,改名不影响值绑定 |
| Number 类型接不了变量 | 想引用上游数量,类型选 Number 时只允许填字面量,做不了引用 | 要引用上游的入参一律用 String,代码里再 Number() |
| 「变量值」是字面量框 | 在结束节点填了 String,输出真的返回字符串 "String" | 要引用必须点该行右侧 ◆ 图标选变量 |
| 改了工作流忘了发布 | Bot 调的还是旧版本,怎么测都不对 | 详情页会提示「有尚未发布的修改」,每次改完必须发布 |
| 编辑器前端校验误判 | 数量填 5000支 时前端不拦,后端 NaN | 代码侧做容错:先抽数字再转,同时对非法值给出明确话术 |
一条给同事的"免坑清单"
JD 里的「制作懒人包」不是写文档,是把踩过的坑变成别人不用再踩的东西。这次沉淀下来三条:
- 工具参数书写规范:参数名、类型、描述、示例、能否为空 —— 五项缺一不可,因为这是模型唯一的 API 文档。
- 域名放行清单:不只放行 API 域名,还要放行客户端注册与埋点域名。企业内网 DNS 白名单没放行时,客户端会静默卡死且不报错,用户只会以为"这东西坏了"。
- 线上精简 / 本地全量:云端有长度限制时,明确写下"线上是示例、全量在本地",避免后面所有人对同一个数字产生两种理解。
哪些是真的,哪些是构造的
| 类别 | 内容 |
|---|---|
| 真实可验证 | 报价算法、法规比对逻辑、三层架构、扣子工作流与 Bot 的实际部署、双引擎 480 项对拍、端到端实测数字 |
| 构造数据 | 40 个 SKU、14 种包材、80 种原料、762 行 BOM、建议零售价、供应商与价格 —— 全部为演示用构造值,非任何真实企业数据 |
| 简化限值 | 法规限值为演示用简化值,依据《化妆品安全技术规范》的方向,但不能替代研发合规复核;其中"防晒剂总量 25%"属行业通行做法,法规原文是否另有合计条款尚待核实 |
| 刻意保留的边界用例 | SKU-004 洁面乳被标为"驻留类",实际洁面乳多按淋洗类申报。这是故意留的:同一成分不同产品类型,结论完全相反,正好用来演示法规判断的敏感性 |
| 没有验证的 | 未接入任何真实 ERP / 报价系统;未做过真实用户量测试;quote_engine.py 已与 Node 版做过 480 项对拍,但未在真实业务数据上跑过 |
如果要接进真实业务,下一步做什么
- 数据侧:把构造的 SKU / 包材 / 配方换成 ERP 与配方系统导出,成本口径以 BOM 为唯一来源,价格表只做校验。
- 接口侧:报价引擎暴露成内网 API,扣子用自定义插件 + OpenAPI 描述调用;对外字段名要统一(当前引擎输出是中文键,OpenAPI 是英文键,接自动化前必须先定死)。
- 治理侧:限值表由研发/法规维护并纳入版本管理,每次改动留痕;报价单一律记录"用了哪版限值表、哪版价格表"。
- 推广侧:不从"学 AI"入手,从"少填一次表"入手 —— 把 AI 塞进销售本来就要填的多维表格,新增动作趋近于零。
逐条对着 JD 说
| JD 要求 | 这个作品对应什么 |
|---|---|
| AI 场景挖掘:与业务部门访谈,找出高重复、低价值痛点 | 从"每天几十个客户询价"这个具体动作切入,拆成四个可结构化字段 + 一段必须查表的合规判断 |
| 智能体开发与导入:用 Coze 等平台搭多步骤对话机器人 | 扣子 Bot + 工作流(开始/代码/结束)+ 表格知识库,已发布并端到端跑通 |
| 体系搭建协作:提示词库、知识库架构、效果评估指标 | 人设 / 抽参 / 话术 / 兜底四段式提示词;12 题测试集与指标口径;参数书写规范与免坑清单 |
| 内部赋能与推广:懒人包、工作坊,教非技术同事用 | 三个一键场景就是"简单到像发 LINE"的具体实现;免坑清单是可复用的赋能物料 |
| 持续优化:追踪节省工时、错误率降低 | 单次动作耗时对比(人工查表 vs 一次对话)+ 拦截率;不编造"省 X 小时"这类无法验证的收益 |
| 必要条件:Prompt Engineering,写稳定结构化提示词 | 用"可检查的规则"而不是形容词写约束;约束写进人设而不是靠模型自觉 |
| 必要条件:基础 Python(调 API / 处理 JSON / 写脚本) | 同一套算法有 Node 与 Python 两份独立实现,并做过对拍 |
| 加分:RAG 与向量库基本概念 | 判断过"何时该检索、何时该把数据内联进提示词"—— 本作品实测后者的场景更稳,就没有硬上 RAG |
| 加分:制造业 / 化妆品产业 AI 专案 | 本作品即化妆品场景:配方、包材、限用成分、驻留/淋洗分类 |
| 人格:讨厌重复、会把"缺料瓶颈"翻译成 AI 问题 | 整个作品的出发点就是"这段重复劳动能不能不让人做" |
我不会说的三句话
- 不说"我做了企业级 AI 治理体系" —— 我做的是一套可复现的报价链路 + 可迁移的方法。
- 不说"节省了 X 小时" —— 我只说单次动作从多少步变成多少步,效果由业务方测。
- 不说"这个模型很强" —— 我会说"我把不该模型做的部分拿走了"。
构建时间 2026-10-21 03:28 · 本页由 src/build.js 从真实 CSV 生成,改动数据请重新构建。