[{"data":1,"prerenderedAt":195},["ShallowReactive",2],{"blog-post-/zh/blogs/check-ai-work":3},{"id":4,"title":5,"body":6,"description":177,"extension":178,"meta":179,"navigation":188,"ogImage":181,"path":191,"seo":192,"stem":193,"__hash__":194},"zh/blogs/zh/40.check-ai-work.md","相信 AI 的工作之前，先检查什么？",{"type":7,"value":8,"toc":170},"minimal",[9,13,16,19,24,29,32,35,122,125,128,131,135,138,144,147,150,153,164,167],[10,11,12],"p",{},"结账程序通过了测试，但消费刚好 50 美元的顾客，仍会被收取 55 美元。",[10,14,15],{},"这是一个人为放入错误的小型 Python 教学案例。它说明了用 AI 写代码、公式或自动化流程时容易忽略的问题：测试通过，只能说明被检查的那些情况通过了。",[10,17,18],{},"我的做法是，先约定什么结果才算正确，再让 AI 验证工作是否完成。检查时，既要看普通情况，也要看规则刚好发生变化的边界，以及两条规则一起生效的情况。",[20,21],"youtube-embed",{"title":22,"videoId":23},"How to Check AI's Work Before You Trust It","A1EuFtebIHU",[25,26,28],"h2",{"id":27},"四笔订单把问题摆出来","四笔订单，把问题摆出来",[10,30,31],{},"我们给这家虚构商店定了两条规则：运费 5 美元，商品原价合计满 50 美元免运费；优惠券只降低商品付款金额，不取消原本已经获得的免运费资格。其他商店可以采用不同政策，这里先把自己的规则写清楚。",[10,33,34],{},"同一个有错误的程序，前两笔订单通过，后两笔暴露了问题。",[36,37,38,60],"table",{},[39,40,41],"thead",{},[42,43,44,48,51,54,57],"tr",{},[45,46,47],"th",{},"商品原价合计",[45,49,50],{},"优惠券",[45,52,53],{},"应付金额",[45,55,56],{},"错误程序实收",[45,58,59],{},"修复后实收",[61,62,63,79,92,106],"tbody",{},[42,64,65,69,72,75,77],{},[66,67,68],"td",{},"$10",[66,70,71],{},"无",[66,73,74],{},"$15",[66,76,74],{},[66,78,74],{},[42,80,81,84,86,88,90],{},[66,82,83],{},"$100",[66,85,71],{},[66,87,83],{},[66,89,83],{},[66,91,83],{},[42,93,94,97,99,101,104],{},[66,95,96],{},"$50",[66,98,71],{},[66,100,96],{},[66,102,103],{},"$55",[66,105,96],{},[42,107,108,111,114,117,120],{},[66,109,110],{},"$60",[66,112,113],{},"八折",[66,115,116],{},"$48",[66,118,119],{},"$53",[66,121,116],{},[10,123,124],{},"50 美元那笔检查的是精确边界。错误代码要求金额“大于 50”，因此刚好达到免运费门槛的顾客反而被收了运费。",[10,126,127],{},"60 美元那笔检查的是规则组合。八折优惠减去 12 美元，商品应付 48 美元；但原价 60 美元已经满足免运费条件。错误程序用打折后的金额重新判断，又加上了 5 美元。",[10,129,130],{},"修正这两处规则后，原来的四个检查全部通过。这证明这些情况得到了修复。完整商店还需要检查税费、退款、舍入和其他实际要求。",[25,132,134],{"id":133},"让-ai-给出你能核对的结果","让 AI 给出你能核对的结果",[10,136,137],{},"你不一定要逐行读代码。把真实规则交给 AI，可以这样要求：",[139,140,141],"blockquote",{},[10,142,143],{},"先不要改实现。根据这些要求，列出输入和预期结果的表格，包括普通情况、精确边界，以及多条规则同时生效的情况。解释每个预期结果，供我核对。确认后运行检查，展示实际结果，并明确保留失败项和未检查项。",[10,145,146],{},"中间的核对很关键。如果 AI 误解了政策，又按同一个误解编写程序和测试答案，两边可能完全一致，却一起违反了原意。关键例子需要你自己算一遍，或者请负责政策的人确认。",[10,148,149],{},"在表格里，边界可能是折扣到期的那一天；在自动化流程里，组合情况可能是同一个事件重复送达。真正有用的问题很具体：按照约定的规则，这个输入应该得到什么结果？",[25,151,152],{"id":152},"把确认过的检查留下来",[10,154,155,156,163],{},"这次实验的线索来自 ",[157,158,162],"a",{"href":159,"rel":160},"https://github.com/seanjohnson-dev/review-layers/tree/52e1b52ab1ce71dece3b30b18e29dcf47134de02",[161],"nofollow","review-layers","。它在编程工作周围加入验证与审查关卡。我们通过本地适配器运行了固定版本的控制逻辑：Python 检查是真实执行的，模型回复是模拟的。检查失败会阻止该路径继续，结账代码即使通过检查，仍保留人工审查要求。",[10,165,166],{},"这验证了一部分控制流程，没有证明实际安装插件的可靠性、模型审查准确率，或它相对普通测试的收益。上面的结账方法，用常规测试工具同样可以做到。检查先准确表达承诺，重复执行才有意义。",[10,168,169],{},"下次 AI 说“完成了”，请它展示普通情况、边界情况和规则组合。先确认答案，再运行检查，最后把这些检查保留给下一次修改。这样，你能说清楚为什么相信这个结果，也知道还有哪些地方没有被验证。",{"title":171,"searchDepth":172,"depth":172,"links":173},"",2,[174,175,176],{"id":27,"depth":172,"text":28},{"id":133,"depth":172,"text":134},{"id":152,"depth":172,"text":152},"用四笔订单看清普通测试为什么会漏掉边界与规则组合，并给出一段可直接交给 AI 的检查要求。","md",{"date":180,"image":181,"alt":182,"category":183,"tags":184,"published":188,"draft":189,"youtube":190},"20th Oct 2026","/blogs-img/2026-10-20-check-ai-work-cover.webp","虚构收据对比应付50美元与实收55美元，旁边是检查AI工作的主题标题。","ai-native-systems",[185,186,187],"AI编程","测试","结果验证",true,false,"https://youtu.be/A1EuFtebIHU","/blogs/zh/check-ai-work",{"title":5,"description":177},"blogs/zh/40.check-ai-work","DcUagMEbAd8JEQa2J2VwL1MUmxlP0TzBw8niGDq_T3c",1792506454215]