求职作品 · AI 智能体开发运营专员

把报价和法规校验
从大模型手里拿走

客户一句口语询价进来,出去的是一张可交付、可审核的报价单 —— 但单价、交期、法规限值没有一个字是模型猜的。模型只干一件事:把自然语言翻译成结构化参数。

数据为演示构造值
—在售 SKU(含 14 种包材)
—法规限用规则(单成分 + 总和)
—配方 BOM 明细行
480Node / Python 双引擎对拍项,差异 0

这个岗位真正缺的不是"会用扣子"

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 支」,模型很自然地把它当成数量字段传了下去 —— 然后整条链路就断了。下面两个按钮跑的是同一套引擎,唯一差别是传进来的字符串长什么样。

✗ 事故当时代码:直接 Number()
✓ 加固后:先抽数字再转

另一道闸:配方不完整就不出价

报价的前提是配方成本可信。如果某个配方的添加量合计不等于 100%,说明 BOM 本身有问题 —— 这时候算出来的成本是错的,宁可不出价。

三层分工:谁负责什么,边界在哪

1
大模型 · 只做语义翻译

把"客户要 5000 支那个修护面霜"翻译成 {product_name, quantity, packaging_id}。信息不全就追问,不确定就转人工。不产生任何数字。

不可信输入
↓ 结构化参数 ↓
2
确定性代码 · 算钱 + 查法规

料体成本按 BOM 逐项求和;工费、加价倍率、包材税点、交期、起订量全部按固定规则。法规限值逐条比对,含"同类成分加总"。

可复现 / 可审计
↓ 结构化结果 ↓
3
大模型 · 只组织话术

把结果整理成固定四块:报价单 / 成本构成 / 合规结论 + 风险提示 / 可直接转发给客户的微信话术。话术里不许出现成本、倍率、供应商。

输出层

落到扣子上长这样

扣子工作流画布:开始 → 代码 → 结束
工作流只有三个节点,没有 LLM 节点。抽参数在 Bot 层完成,工作流本身永远是被动、可测试的。
节点职责为什么放这里
开始声明 3 个入参(全部 String)这是工作流对外的函数签名;参数描述是给模型看的 API 文档
代码内联数据 + 报价算法 + 法规比对确定性计算,扣子代码节点无文件系统,数据必须内联
结束返回 ok / quote_json / error字段名要说人话,否则模型读不懂

在线体验

这个 Bot 已经发布在扣子商店。页面不用登录就能打开,能看到开场白和三个预置问题;但继续对话要登录扣子账号——这是扣子的账户体系决定的,不是把 Bot 设成了私有。

↗ 打开在线 Bot

地址:https://www.coze.cn/store/agent/7696902230175334415?bot_id=true
本页则是它的静态托管版本:同一套确定性引擎、同样的数字,点开即用、无需账号、断网也能跑。两者算出的结果逐项一致。

端到端实测:Bot 真跑出来的四块输出

扣子 Bot 端到端输出的四个板块
提问:「客户要 5000 支多效修护面霜,什么时候能出货?什么价位?」 出来的单价 8.33 / 总价 41650 / 交期 35 天 / 倍率 1.4,与本页「现场试用 · 场景①」算出的数字逐项一致。

关键的两处配置

开始节点的三个入参及描述
开始节点:三个入参全部 String + 全部必填 + 每个都写了描述。这一步是整条链路能不能通的关键。
代码节点:入参绑定与内联代码
代码节点:上面每个入参都绑了来源(开始 / product_name …),下面是内联的报价引擎。

完整操作链

#动作所在位置
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 生成,改动数据请重新构建。