不要用 AI 模型代替简单确定性判断,别为了 AI 标签牺牲逻辑清晰度
在当前的开发环境中,许多项目为了强行贴上“AI 动力”标签,陷入了过度模型化的陷阱。最明显的表现是,原本一行代码就能完成的 $O(1)$ 时间复杂度判断,被改造成了需要网络请求、消费 Token,还可能带来随机结果的云端模型调用。这种做法既低效又不安全。
确定性判断逻辑和大型语言模型(LLM)的推理能力本质不一样。if 语句的结果是绝对确定的,响应速度只需毫秒级,运行成本几乎为零;模型调用则是概率性操作,会产生不确定延迟和每词费用。
在构建工作流时,可以按照清晰拆分标准,分开处理“匹配”和“理解”,让每部分承担适合的工作。
规则明确、定义清晰的场景,应优先用传统代码处理,如正则表达式(Regex)、数据库查询(DB Lookup)和简单布尔逻辑。邮箱格式合法性、购物车满减阈值、优惠券过期判断,或者给列表排序等,都属于此类问题。
这些任务只需程序精准匹配,不需要 AI 理解语义。如果在这里调用 LLM,本质上是用昂贵的概率引擎模拟一个简单开关,既增不必要开销,又让明确规则变成概率结果。
只有面对主观判断或模糊输入时,才适合引入 AI Agent 或 LLM。比如分析用户邮件情绪极性,判断愤怒、失望或满意;对非结构化文本进行多维分类;或者把枯燥规格书改写成营销文案。
这类任务没有绝对正确答案,需要模型在语义空间计算权重,LLM 的能力才真正有用。
例如,判断工单是否紧急。如果业务定义的紧急只是含特定关键字,最好用正则匹配。JavaScript 中一行代码就够:
const isUrgent = (text) => /紧急|故障|崩溃/i.test(text);
这段代码快得很,结果在任何环境下都一致,不需网络、不耗 Token,不会因模型波动变判定。
当业务要求 AI 结合语气和上下文,判断用户愤怒和潜在业务影响时,才让模型介入。可构造类似的 Prompt:
"仅输出 'Urgent' 或 'Normal',分析用户反馈的紧急程度,考虑语气和潜在业务影响。"
对类似文本:
"我的账户资金在过去两小时内莫名消失了,这简直是灾难!"
AI 的语义分析能力才有实际价值,需要理解语气、问题内容和潜在影响。把简单关键字匹配也交给 AI,只会增加网络延迟和不必要的推理成本,更危险的问题是,100% 准确的判定变成了概率问题。
在模型由 GPT-4 升级到 GPT-4o 时,温度和权重调整可能让原本紧急的请求突然变正常,这种随机误差在金融或医疗等场景下无法接受。
追求 AI 化时,记住一个原则:能用 if 解决的问题,绝不写 Prompt。
全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
最离谱的一次居然把 true 判定成 false,这种低级错误简直让人崩溃。说到底还是那条老原则:能用 if 解决的问题,绝对不要写 Prompt,布尔判断老老实实交给代码,比啥都稳。
上个项目就是这么搞的,改个判定逻辑得对着 prompt 磨一下午,心累死。在当下的开发环境里,不少项目为了强行贴上“AI-powered”标签,反而陷入了“过度模型化”的问题。最典型的表现是,原本用一行代码就能完成的 $O(1)$ 时间复杂度判断,被改造成一次需要等待网络请求、消耗 Token,而且结果带有随机性的云端调用。这样的做法,在工程实践中既低效,也非常危险。需要明确的是,确定性的判定逻辑与大语言模型(LLM)的推理能力,本来就不是同一回事。if 语句的判断结果是确定的,响应时间只有毫秒级,运行成本几乎为零;模型调用则属于概率性操作,不仅存在难以控制的延迟,生成每一词还会产生费用。在实际构建工作流时,可以按照一套明确的拆分标准,把“匹配”和“理解”分开处理。规则明确、定义清晰的场景,应当优先交给传统代码完成,例如正则表达式(Regex)、数据库查询(DB Lookup)以及简单的布尔逻辑。邮箱格式是否合法、购物车金额是否达到满减阈值、优惠券的过期时间戳是否有效,或者对列表进行简单的升序排序,都属于这类问题。这些任务不需要 AI 去“理解”语义,只需要程序进行精准的“匹配”。如果在这里调用 LLM,本质上就是用一个昂贵的概率引擎,模拟一个简单的开关。何时引入 AI 处理主观与模糊任务只有面对主观判断或模糊输入时,才适合引入 AI Agent 或 LLM。比如,分析用户投诉邮件的情绪极性,判断其是愤怒、失望还是满意;对非结构化长文本进行多维度分类;或者把枯燥的产品规格书改写成具有煽动性的营销文案。这类任务没有一个绝对的“正确答案”,需要模型在语义空间中进行权重计算,LLM 的能力才真正有了用武之地。以判断工单是否“紧急”为例,差异会非常直观。如果业务定义中的“紧急”只是判断文本是否包含特定关键字,最合适的方案就是正则匹配。在 JavaScript 中,只需要一行代码:
const isUrgent = (text) => /紧急|故障|崩溃/i.test(text);
这段代码执行速度极快,而且在任何环境下,结果都保持一致。简单匹配与复杂语境判断的成本差异当业务需求进一步变化,要求 AI 结合用户语气和上下文语境,判断

最烦这种黑盒逻辑,一旦报 500 错根本没法定位,全靠猜。不过,如果是针对一些简单的规则匹配需求,比如判断邮箱格式是否合法,或者检查购物车金额是否超过满减阈值,那么直接使用传统的正则表达式(Regex)或数据库查询(DB Lookup)反而更高效。例如,在 JavaScript 中,判断一个字符串是否符合邮箱格式的代码只需要一行:
这段代码的执行速度极快,且结果完全确定,与调用昂贵的 LLM 相比,既不耗费 Token,也不存在随机性误差。在实际开发中,优先使用这种明确的匹配逻辑,避免过度依赖 AI 模型,才能保证系统的稳定性和性能。