
工程思维和智能创造这两个词放在一起很多人第一反应是觉得抽象觉得这是两个圈子的事——一边是工地上的老师傅一边是屏幕前的算法工程师。但我这几年做智能建造相关的项目越来越觉得这个组合不是硬凑的而是被现实逼出来的。传统工程里那些靠经验口口相传的东西正在随着老师傅退休而快速流失而AI这边模型能力越来越强却常常因为不懂工程现场的约束条件给出的方案看着漂亮、落地就废。这个项目标题说的本质上就是怎么把工程里那套“先算后做、留有余量、按序推进”的思维翻译成AI能理解、能执行的东西同时把AI的生成能力反过来注入到工程决策里。它适合两类人看一类是工程背景、想搞清楚AI到底能帮上什么忙的从业者另一类是做AI应用、想切入垂直行业但被现场复杂度劝退的开发者。下面我按自己实际踩过的路子把这个事拆开讲透。1. 整体设计思路与方案选型拆解1.1 为什么不是“AI替代工程”而是“工程约束AI”刚接触这个方向的时候我走过一段弯路。当时想得很简单把工程图纸、施工规范、历史案例全部喂给模型让它直接输出方案不就行了。实测下来问题一大堆。模型生成的方案在纸面上逻辑自洽但放到现场就出问题——比如它会把两道工序排成并行理由是“节省时间”可现场这两道工序共用一台设备并行根本不可能又比如它给出的材料用量是理论值没有考虑损耗和切割余量实际采购时差出一大截。这让我意识到一个核心问题工程思维的本质不是“算出最优解”而是“在约束条件下算出可执行的解”。约束包括设备数量、人员班组、天气窗口、材料到场时间、验收节点甚至包括工人习惯。这些约束在传统工程里是靠老师傅的脑子记着的文档里写不全。所以方案设计的第一个关键决策就是不追求让AI直接替代工程决策而是把工程约束显式地建模出来作为AI生成的前置条件。具体做法上我采用的是“约束层生成层校验层”的三段式结构。约束层负责把项目里的硬约束和软约束整理成结构化数据生成层调用模型产出候选方案校验层用规则引擎把明显违规的方案筛掉。这个结构的好处是每一层职责清晰出了问题能定位到具体环节而不是面对一个黑盒干瞪眼。1.2 三段式结构里各层的选型考量约束层我选的是轻量级的结构化配置没有上复杂的本体库。原因很实际工程项目的约束变化频繁每个项目都不一样上重型知识图谱维护成本太高小团队根本扛不住。用YAML或者JSON把约束写成配置文件配合一个简单的校验脚本反而灵活。比如工序依赖关系我用一个前置工序列表来表达简单直接改起来也快。生成层我没有绑定单一模型而是做了一个适配层。原因是不同任务对模型能力的要求不一样工序排布需要强逻辑推理方案描述需要好的语言组织材料估算需要数值计算能力。适配层的好处是可以按任务路由到合适的模型也方便后续替换。这里有个经验不要指望一个模型包打天下按任务拆分反而整体效果更稳。校验层用的是规则引擎加人工复核的组合。规则引擎负责硬约束比如工序顺序、资源冲突、工期上限这些是确定性的用代码写死最可靠。软约束比如“尽量均衡资源使用”这种规则引擎判断不了就交给人工复核环节。这个组合看起来土但实际跑下来误报率低团队也容易接受。1.3 工程思维里最值得迁移给AI的三个习惯做这个项目过程中我反复琢磨工程思维里到底哪些东西是AI缺的。总结下来有三个习惯特别值得迁移。第一个是先算后做。工程里任何一道工序开始前材料、人力、机具都要先算清楚不会边做边看。AI生成方案时也应该是这个逻辑——先把资源需求算出来再排工序而不是先排工序再补资源。我在生成层的提示词里强制要求模型先输出资源估算再输出工序安排效果比反过来好很多。第二个是留余量。工程里没有哪个老师傅会把工期排到理论极限总要留出应对意外的缓冲。AI生成的方案往往过于“紧凑”看起来效率高实际一有波动就崩。我的做法是在校验层加一个余量检查工期、材料、人力都要留出一定比例的缓冲不满足就打回重生成。第三个是按序推进。工程讲究工序先后有些步骤看着可以省但省了后面要出大问题。AI有时候会“聪明反被聪明误”把一些看似冗余的步骤合并掉。校验层里我专门加了一条关键工序不可合并、不可跳过必须按标准顺序执行。2. 核心细节解析与实操要点2.1 约束建模把老师傅脑子里的东西掏出来约束建模是整个项目里最费劲、也最值钱的环节。费劲在于很多约束老师傅自己都说不清楚得靠观察和追问才能挖出来。值钱在于一旦建模完成这些约束就能被复用、被校验、被传承。我用的方法叫“场景追问法”。具体操作是找一个典型工序请老师傅按实际做法讲一遍然后针对每个步骤追问三个问题——为什么这么做、什么情况下不能这么做、做的时候要注意什么。这三个问题问下来大部分隐性约束就浮出来了。比如混凝土浇筑老师傅会说“夏天要避开中午”追问为什么答案是高温导致水分蒸发快、容易开裂追问什么情况下不能这么做答案是加了缓凝剂可以适当放宽。这些信息文档里往往没有但建模时必须要有。约束整理成结构化数据时我分成三类硬约束、软约束、经验约束。硬约束是违反了一定出事的比如承重结构工序不能颠倒软约束是违反了对效果有影响的比如资源尽量均衡经验约束是老师傅的习惯做法比如某些工序安排在上午效率更高。三类约束在校验层的处理方式不同硬约束直接拦截软约束打分排序经验约束作为提示信息附在方案里。注意约束建模不要追求一次到位先覆盖高频工序跑起来再逐步补充。我一开始想做一个大而全的约束库结果两个月没出成果后来改成先做三个高频工序两周就跑通了后面再慢慢加。2.2 提示词设计让模型按工程逻辑思考生成层的提示词设计是这个项目里最需要打磨的部分。我试过很多版本最后稳定下来的结构是“角色设定约束注入输出格式自检要求”四段式。角色设定不是简单写“你是一个工程师”而是写清楚具体的思维习惯。我现在的写法是“你是一位有二十年现场经验的工程负责人习惯先算资源再排工序习惯给每个环节留出缓冲习惯在方案里标注风险点。”这样写的好处是模型输出的方案会自然带上这些习惯比干巴巴地要求“请留余量”效果好。约束注入部分我把约束层的结构化数据转成自然语言描述按重要性排序注入。这里有个技巧硬约束放在最前面并且用明确的禁止性语言比如“以下工序顺序不可调整A必须在B之前完成”。软约束放在后面用建议性语言。实测下来这种分层注入比混在一起效果好模型对硬约束的遵守率明显提升。输出格式部分我强制要求模型按固定结构输出先资源估算再工序排布再风险提示最后是方案说明。固定结构的好处是后续校验层好解析也方便人工复核时快速定位。自检要求是最后加的一段让模型在输出前自己检查一遍是否满足硬约束。这个自检环节看起来多余实际能拦下不少低级错误。我统计过加了自检之后硬约束违规率下降了大概三成。2.3 校验规则编写确定性的事交给代码校验层的规则编写我的原则是“能用代码判断的绝不交给模型”。工序顺序、资源冲突、工期上限这些都是确定性的用代码写死最可靠。模型再强也有不确定性校验层就是最后一道防线。规则编写时我按“拦截级”和“警告级”分开。拦截级规则违反直接打回重生成比如工序顺序错误、资源超配警告级规则违反只在方案里标注提示比如资源使用不够均衡、余量偏小。这样分开的好处是不会因为一些小问题反复打回影响整体效率。规则的具体实现上我用的是简单的脚本加配置文件没有上重型规则引擎。原因是项目规模不大规则数量在几十条的量级脚本足够用维护成本也低。如果后续规则数量上去了再考虑迁移到专业规则引擎。提示校验规则要定期回顾把误报率高的规则调成警告级或者删掉。我一开始设了一条“工序间隔不得小于半天”的规则结果很多正常方案被拦后来发现这条规则只适用于特定工序改成按工序类型区分后才正常。2.4 人机协作界面让复核变得不痛苦人工复核环节的设计很容易被忽视但它直接决定项目能不能真正用起来。我见过一些项目AI部分做得不错但复核界面难用得要命复核人员要对着两个屏幕来回切换最后大家宁愿不用。我的做法是把复核界面做成“方案差异依据”三栏布局。左边是AI生成的方案中间是高亮标出的警告项和需要确认的点右边是每条警告对应的规则依据和历史案例。复核人员只需要关注中间栏有疑问看右边栏确认完直接点通过或打回。这个布局把复核时间从平均二十分钟压缩到五分钟以内。还有一个细节复核意见要能回流到约束库。复核人员打回方案时要选择打回原因这些原因定期整理后补充到约束库里。这样系统会越用越准而不是一直原地踏步。3. 实操过程与核心环节实现3.1 从零搭建的最小可行流程这一节我把整个搭建过程按实际操作顺序讲一遍方便你照着复现。整个流程我分成五步每一步都有明确的产出物。第一步是选一个高频工序做试点。不要一上来就做全流程选一个发生频率高、约束相对清晰的工序比如钢筋绑扎或者模板安装。选高频的原因是样本多、容易验证选约束清晰的原因是建模难度低、容易出成果。我第一个试点选的是钢筋绑扎因为它的工序顺序相对固定资源需求也比较好量化。第二步是做约束访谈和整理。找两到三位有经验的师傅按前面说的场景追问法聊一遍把约束记下来。然后整理成结构化数据硬约束、软约束、经验约束分开。这一步的产出是一份约束配置文件格式用YAML就行字段包括约束类型、约束描述、适用工序、违反后果。第三步是搭生成层的提示词模板。按四段式结构写先写角色设定再写约束注入的占位符再写输出格式最后写自检要求。提示词模板不要一次写完美先跑几个案例看输出再针对性调整。我第一版提示词跑出来的方案格式乱七八糟调了大概五六版才稳定。第四步是写校验脚本。先实现硬约束的拦截逻辑软约束的评分逻辑可以后面再加。校验脚本的输入是模型输出的结构化方案输出是拦截或放行加警告列表。这一步的产出是一个可执行的校验脚本能独立运行。第五步是串起来跑通一个完整案例。把约束配置、提示词模板、校验脚本串成一个流程拿一个真实的历史项目做输入看输出方案和实际方案的差距。差距大的地方就是需要优化的地方按优先级逐个调。3.2 一个完整的参数计算示例光说流程太虚我拿一个具体的参数计算例子来说明工程思维怎么落到AI方案里。假设试点工序是某段梁的钢筋绑扎需要估算人工工日。工程上的算法是先算钢筋总重量再除以人均日绑扎效率再乘以一个难度系数。钢筋总重量按图纸算这个AI可以直接从结构化图纸数据里取。人均日绑扎效率是个经验值比如某规格钢筋人均日绑扎零点八吨。难度系数根据作业面条件定比如高空作业乘一点二狭窄空间乘一点三。AI生成方案时我要求它把这个计算过程显式写出来而不是直接给结果。显式写出来的好处是复核人员能快速判断参数取值是否合理。比如模型给出“钢筋总量十二吨效率零点八吨每人日难度系数一点二需人工十八工日”复核人员一眼就能看出计算对不对如果觉得难度系数取低了直接改参数重算就行。这里的关键是把经验参数做成可配置项而不是让模型自己拍脑袋。我在约束配置里维护了一张经验参数表模型生成时从表里取值复核时可以调整。这样既保留了AI的生成能力又把关键参数的控制权留在了人手里。参数项取值来源示例值可调整钢筋总量结构化图纸数据12吨否人均日效率经验参数表0.8吨/工日是难度系数经验参数表按条件匹配1.2是余量比例约束配置10%是3.3 生成层与校验层的对接细节生成层和校验层的对接最容易出问题的地方是数据格式不一致。模型输出的方案是自然语言加表格校验脚本需要的是结构化数据中间需要一个解析环节。我的做法是要求模型按固定JSON结构输出解析脚本直接读JSON省去自然语言解析的麻烦。固定JSON结构我定义了几个必填字段资源估算、工序列表、每道工序的前置工序、风险提示。模型输出时如果字段缺失或者格式不对解析脚本直接报错打回。这个约束看起来死板但实际跑下来反而稳定因为模型知道必须按格式来不会自由发挥。对接时还有一个细节校验脚本的报错信息要能直接喂回给模型。我的做法是把校验报错整理成一段自然语言描述附在重生成的提示词里让模型知道上一版哪里错了。实测下来带报错信息的重生成比盲目重生成成功率高很多平均重生成次数从三次降到一点五次。3.4 现场验证与迭代节奏方案生成出来只是第一步真正检验是在现场。我的做法是每个试点工序跑三轮现场验证第一轮小范围试做重点看方案可执行性第二轮扩大范围重点看资源估算准不准第三轮对比传统方案看整体效率有没有提升。迭代节奏上我建议按周迭代不要按天。按天迭代容易被个别案例带偏按周迭代能积累足够样本再做判断。每周复盘时重点看三个指标硬约束违规率、人工复核打回率、现场执行偏差率。三个指标都往下走说明方向对了某个指标卡住不动就针对性排查那一环。注意现场验证时一定要记录实际执行情况和方案的偏差这些偏差数据是后续优化的金矿。我一开始只记录方案本身后来发现偏差数据更有价值能反推出约束建模漏了什么。4. 常见问题与排查技巧实录4.1 模型输出不稳定怎么排查模型输出不稳定是这个方向最常见的问题同一个输入跑两次结果差很多。排查时我按三步走先看提示词有没有歧义再看约束注入是否完整最后看模型本身的状态。提示词歧义是最常见的原因。比如“合理安排工序”这种表述模型理解空间很大每次理解可能都不一样。改成“按前置工序关系排布资源冲突时优先保证关键路径工序”就明确多了。我的经验是提示词里每出现一个形容词就要问自己能不能换成具体的判断标准。约束注入不完整也会导致输出飘。比如漏了某条硬约束模型这次记得下次忘了结果就不稳定。排查方法是把约束配置和提示词里的注入内容逐条对照确保没有遗漏。模型本身的状态问题相对少见但也有。比如温度参数设得过高输出随机性就大。工程场景我一般把温度调低牺牲一点多样性换稳定性。4.2 校验误报太多怎么优化校验误报太多复核人员会烦最后干脆绕过校验整个防线就形同虚设。优化误报我按“先降级、再细化、后删除”的顺序处理。先降级是指把误报率高的拦截级规则先调成警告级让流程能跑下去。再细化是指分析误报案例看规则是不是太粗。比如前面提到的工序间隔规则细化成按工序类型区分后误报就少了。后删除是指有些规则细化后还是误报多那就说明这条规则本身不成立直接删掉。优化过程中要记录每条规则的误报率定期回顾。我的经验是误报率超过两成的规则就要重点看超过五成的直接下线重写。4.3 复核人员不配合怎么办这个问题很现实AI方案再好在复核环节卡住就白搭。我的经验是不配合往往不是因为抵触新技术而是因为复核变麻烦了。所以解决思路是让复核变简单而不是讲道理。具体做法有三个。一是把复核界面做顺手前面说的三栏布局就是干这个的。二是让复核人员参与约束建模他们提的约束被采纳后复核时会更有主人翁感。三是先在小范围做出效果让复核人员看到方案确实能减少他们的工作量口碑自然就传开了。4.4 常见问题速查表问题现象可能原因排查方向处理建议输出格式错乱提示词输出格式描述不清检查输出格式段落给出JSON示例明确必填字段硬约束被违反约束注入遗漏或表述模糊对照约束配置逐条检查硬约束用禁止性语言前置注入方案过于紧凑余量要求未生效检查余量规则是否在校验层余量检查设为拦截级重生成次数多报错信息未回流检查重生成提示词把校验报错转成自然语言附上复核打回率高方案可读性差或依据不足看复核意见分布方案附计算过程和依据现场偏差大经验参数取值不准对比实际与估算调整经验参数表并记录4.5 几个踩坑之后才明白的道理第一个道理是约束建模的颗粒度要匹配项目阶段。早期项目约束少、变化快建模粗一点反而灵活成熟项目约束多、要求严建模细一点才够用。我一开始不分阶段一律求细结果早期项目被约束绑死改都改不动。第二个道理是AI生成方案的价值不在“一次做对”而在“快速给出多个候选”。工程里传统做法是老师傅想一个方案AI可以一次给三个复核人员挑一个改改就用。这个价值点想清楚之后我对方案准确率的要求就没那么苛刻了转而追求候选方案的多样性。第三个道理是经验参数表要有人维护。参数表是连接AI和现场的桥梁但桥梁会老化。我现在的做法是每季度回顾一次参数表结合现场偏差数据更新取值。这个维护工作看起来琐碎但不做的话方案会越来越飘。第四个道理是不要试图让AI理解所有工程知识。工程知识体系太庞大AI能覆盖高频部分就不错了。低频、特殊的部分老老实实走人工把AI定位成“高频工序的助手”而不是“全能工程师”心态会平和很多项目也更容易落地。这套东西跑下来我最大的感受是工程思维和AI不是谁替代谁的关系而是互相补位。工程思维给AI提供约束和判断标准AI给工程提供生成速度和候选多样性。两边各干各擅长的事中间用结构化的约束和校验连起来这个组合才真正跑得通。后续如果要把这套东西扩展到更多工序我的建议是先扩约束库、再扩校验规则生成层反而不用大动因为工程逻辑是稳定的变的是具体约束。