【WorkBuddy专栏75】HY3反复横跳vs DS4一次定位——一次工作台排障,看「推理」和「编码」的真差距

【WorkBuddy专栏75】HY3反复横跳vs DS4一次定位——一次工作台排障,看「推理」和「编码」的真差距
同一个生活工作台HY3混元3做了三遍还在报错最后连一个能双击打开的成品都没交付切到 DS4DeepSeek 4后一次把三个真 bug 全定位出来逐个修掉再用「真实双击」的方式把每项修复都验证通过。差在哪不是谁更会写代码而是两件事推理是不是在绕路编码是不是够精准验证是不是够科学。这篇文章不聊参数表就把这一单从头到尾摊开讲报错到底分几层、HY3 卡在哪个假想上、DS4 的推理和编码各自做了什么、我事后总结的五条调试心法。一、先还原现场——一个「一键做同款」怎么变成了排障现场任务本身不复杂。我想用 WorkBuddy 的资料库能力「一键做同款」把参考页那个「日常集 · 生活工作台」复刻成一个集成式的本地工作台包含七个模块模块要解决的事今日概览今天要处理什么逾期项一眼看到记账理财收支、预算、月度对比、分类筛选、消费结构习惯健康可增删习惯勾选/计数/数值三种打卡30 天热力图减脂健身体重体脂、7 日均线、BMI、目标进度、周计划日程统筹待办、日期分组、完成切换待买清单想买/已买状态流转书影音收藏状态、星级、短评、封面墙/列表双视图、年度统计中途需求收窄过一次——用户拍板「我要的就是本地版本」于是目标变成一个单文件 HTML、双击即开、数据存本机浏览器、零外部依赖。问题就出在这里。第一轮用 HY3 跑我从头到尾没拿到一个能正常双击打开的成品看到的是一连串报错。二、HY3 卡在哪——把「报错」和「环境」混为一谈原地打转复盘这一单HY3 身上暴露的问题不是「不会写」而是两个更隐蔽的毛病。毛病一报错没分层一看报错就慌。当时实际出现的报错分了两类性质完全不同层级具体表现真实原因该怎么处理服务侧429 使用量超频率限制、400 请求被拒模型提供商限流/拒绝是临时故障换模型或稍后重试与代码无关代码侧双击白屏、筛选无效、显示英文 key代码里有真实 bug需要定位 修复HY3 把这两层搅在一起了。撞上 429、400 就当成「任务做不下去了」反复重试、反复卡住而代码侧那三个真 bug它从头到尾没当成问题去查一直在服务侧的报错上打转。毛病二目标不稳在线版和本地版之间反复横跳。任务先是要「数据在线双向同步」后来又改成「本地版本」。这个需求变化本身没问题但 HY3 没有据此重新收敛目标而是两头都抓一会儿去建资料库数据表一会儿又改回 localStorage来回折腾每一步都没走完自然交不出东西。说实话这里我也有责任——需求中途转向我没把「现在只做本地版」这个决定钉死。但 HY3 的表现是把「环境/服务」当成了主要矛盾而真正的矛盾——代码里那三个 bug——一直被晾在一边。三、DS4 怎么破——推理先定位编码再精准改切到 DS4同样的现场它走的是完全不同的路线。我把它的动作拆成「推理」和「编码」两段看因为这两段恰好是它和 HY3 拉开差距的地方。推理模式不猜先分层定位DS4 没有一上来就改代码而是先做了一件 HY3 没做的事——先把「到底哪坏了」查清楚再动手。它的排查是一条清晰的漏斗第一步做静态语法检查。把 HTML 里那 9.5 万字符的内联脚本抽出来单独跑一遍语法检查node--check/tmp/_inline.js结果是语法通过。这一步排除了「代码根本跑不起来」这种低级故障把范围缩小到「运行期逻辑 bug」。第二步做真实场景冒烟。关键在这里——它没有用 WorkBuddy 的预览面板测而是用file://协议直接打开这个 HTML 文件模拟用户「双击」的真实场景同时把运行期的报错全部拦下来page.on(pageerror,eerrors.push(e.message));page.on(console,m{if(m.type()error)errors.push(m.text());});awaitpage.goto(file:///.../index.html,{waitUntil:load});这一步价值很大。预览 iframe 里往往注入了资料库 SDK会把某些 bug 掩盖掉而file://双击是零注入的能暴露出「没有 SDK 时页面到底能不能跑」这个真实问题。第三步用 DOM 探针定位具体 bug。冒烟测试跑完后不再凭感觉而是直接查 DOM 里的具体元素把每个可疑点都变成「有/没有」的硬结论。三步走完三个真 bug 全浮出来了。下面是它们各自的样子。编码模式行级精准修改不用大锤定位之后DS4 的改法也很克制——用行级替换一处一处改而不是把整个文件重写一遍。这种「小切口」的改法最大好处是不会顺带改坏别的东西。这一单里最典型的是时光档案那一处后面单独讲。两个模型面对同一个现场行为差异可以浓缩成一张表维度HY3混元3DS4DeepSeek 4面对报错服务侧、代码侧混为一谈反复重试先分层排除服务侧故障再查代码排查顺序默认「代码没问题」去搞环境、搞部署先语法检查再真实冒烟再 DOM 探针目标执行在线版本地版来回横跳锁定本地版一条路走到交付修复方式反复重写容易带出新问题行级精准替换改动锁在最小单元交付证据口头「修好了」每个修复对应可复跑的验证脚本四、三个真 bug 逐个拆——白屏、失效、英文 keyBug 1boot 里的硬门导致双击直接白屏这是最致命的一个。本地双击打不开根子在初始化函数里的一段硬门逻辑vardbwindow.__SMART_PAGE__window.__SMART_PAGE__.database;if(!db){showAlert(没有检测到资料库的运行环境……);refreshAll();return;}看懂了吗它先判断「有没有资料库 SDK」没有就直接弹错、返回后面的渲染根本不执行。用户在本地双击这个 HTML浏览器里当然没有__SMART_PAGE__于是直接白屏 弹错。DS4 的修法不是删掉这段而是给它配一个「降级兜底」——没有 SDK 时用 localStorage 模拟一套同样接口的本地数据库vardb(window.__SMART_PAGE__window.__SMART_PAGE__.database)||makeLocalDB();varIS_LOCAL!!db.__local;makeLocalDB()实现了query / addRecord / updateRecord / deleteRecord这一整套接口只是底层从云端换成了 localStorage。这样同一个页面有 SDK 走在线没 SDK 走本地两套环境自动切换硬门也就不需要了。Bug 2记账「分类筛选」是个摆设需求里明明白白写了「分类筛选」但实际打开流水面板那个下拉框里只有孤零零一个「全部分类」点开什么都没有。查下去发现过滤逻辑其实是有的renderMoney()里已经写了按分类过滤的代码但下拉框里的分类选项从来没被填进去。等于过滤器装好了筛选项没接上。修法是在渲染枚举的时候从数据里 枚举定义里把分类收集起来动态填进下拉框varcats{};rows(money).forEach(function(r){if(r[分类])cats[r[分类]]1;});pickOpts(money,分类).forEach(function(o){cats[o.text]1;});fillSelect($(#moneyFilter),Object.keys(cats),全部分类);改完后下拉框里出现「其他 / 餐饮 / 居家 / 交通 / 购物 / 医疗 / 学习 / 娱乐 / 人情」十个分类筛选真正可用。Bug 3时光档案里冒出英文 key时光档案是「回看生活」的页面把各模块的记录按日期汇总成时间线。结果每条记录右边的小标签显示的是planner、money这种原始表名而不是「日程统筹」「记账理财」。根因很简单渲染的时候直接输出了内部 key没做中文映射。修法就是加一张映射表显示时用中文过滤时仍用原始 keyvarMODULE_LABEL{money:记账理财,fitness:减脂健身,planner:日程统筹,shopping:待买清单,media:书影音};// 渲染时emesc(MODULE_LABEL[x.k]||x.k)/em三处都是「看起来小、一查就明」的 bug但 HY3 始终没走到「查」这一步。五、措施为什么科学——五条可复用的调试心法这一单最有价值的不是那三行修复而是 DS4 排查问题的那套动作。我把它们提炼成五条每条都能直接套用到别的项目上。第一条先验证再修改别靠假设。HY3 的问题是默认「代码是对的环境有问题」所以一直去搞环境、搞部署。DS4 反过来先做语法检查、再做冒烟测试用事实说话排除了「语法错」才去查「逻辑错」。顺序对了范围就缩对了。第二条真实场景优先别信预览面板。预览 iframe 和真实双击是两个环境一个注入 SDK一个零注入。用file://协议测才能复现用户真实遇到的问题。这一条直接决定了「双击白屏」这个 bug 能不能被发现。第三条分层定位从静态到动态再到功能。语法检查静态→ 拦截运行期报错动态→ DOM 探针功能一层层往下钻每一层都能给出确定结论而不是「我觉得可能是什么」。第四条精准编辑用行级替换而不是整体重写。改 bug 最怕「顺手改坏别的」。行级替换把改动范围锁死在最小单元也方便回滚和对比。第五条交付要有可验证的证据。DS4 修完每个 bug都对应一个能复跑的验证脚本输出「通过/失败」的硬结果——比如记账写入后刷新数据还在不在八个视图能不能都渲染出来。用证据交付而不是用一句「我修好了」交付。五条归成一句话把「猜」换成「查」把「改」换成「验证过的改」。六、避坑指南坑 1报错要分层别让服务侧报错带偏你。429、400 这种是模型服务侧的临时故障和你的代码一毛钱关系都没有。看到它正确动作是换模型或重试而不是停下来怀疑任务本身。把服务侧故障和代码 bug 分开看是第一条要练的基本功。坑 2「环境问题」是最省事的借口但往往不是真相。白屏了第一反应是「环境不对、得部署」——这是最偷懒的归因。先问一句代码本身在零环境下能不能跑很多「环境问题」其实是「初始化逻辑有个硬门」这样的代码问题。坑 3目标不稳反复横跳是最大的时间黑洞。需求一旦确认「只做本地版」就把在线版那摊事放下一条路走到交付。两头都抓结果就是两头都半途而废。这一单我踩过你也别踩。坑 4测试脚本的 key 写错会误报「写入失败」。本地存储是以各数据表的 databaseId 作为 key 存的不是表名money这种。我写验证脚本时一度用错了 key读出「写入前 0 条、写入后 0 条」差点误判功能坏了。查这类问题先确认自己读的 key 对不对。坑 5真实双击场景和预览面板是两回事。这一单「双击白屏」的 bug在预览面板里根本看不出来因为面板注入了 SDK。验证交付务必用file://双击这个动作来测才算数。七、总结回头看这一单HY3 和 DS4 的差距浓缩成一句话HY3 在报错里原地打转DS4 把报错拆成两层、把 bug 拆成三个、把验证做成可复跑的证据。「推理」的价值在于——先想清楚「哪一层坏了、坏在哪」再决定动哪里「编码」的价值在于——改动足够小、足够精准不制造新问题而「措施的科学性」本质是让每一步都有据可查而不是靠手感。下次你在 WB 里让 AI 干活遇到报错先别急着让它「重试」或「换个思路」先问它一句这一层到底是服务侧故障还是代码里的真 bug查清楚了再动手。这一问往往就是少折腾一小时的分水岭。写在最后一个邀请如果这篇对比对你有参考价值说明咱们是同一类人——都相信 AI 不该只会聊天得真刀真枪帮我把活干完。我日常用的就是 WorkBuddy。上面每一组对比里的结论都不是看参数表写出来的是和它一起干活磨出来的。如果你也想试试用我的邀请链接注册咱们就算「绑定的师徒」——你用的时候卡住了、踩坑了随时来问我https://www.workbuddy.cn/events/invite?inviteCodeyit89z2wu1免费注册没有门槛。早用上早把那些重复劳动甩给 AI。专栏导航本文是「腾讯小龙虾 WorkBuddy 专栏」第 75 篇。篇目标题状态01【腾讯小龙虾WorkBuddy专栏01】初识WorkBuddy定位、核心优势、功能界面全解析已发布02【腾讯小龙虾WorkBuddy专栏02】保姆级安装教程彻底分清WorkBuddy/CodeBuddy最新积分活动会员体系全攻略已发布03【腾讯小龙虾 WorkBuddy 专栏 03】技能Skills制作全教程自定义技能编写、导出分享、导入使用一步到位已发布04【腾讯小龙虾WorkBuddy专栏04】一文搞懂WorkBuddy的「专家」和「专家团」已发布05【腾讯小龙虾WorkBuddy专栏05】深度解析WorkBuddy连接器(Connector)已发布06【WorkBuddy专栏06】让AI链接外部生态已发布07【WorkBuddy专栏07】把AI训练成你的专属员工——WorkBuddy Skill系统深度解析已发布08【WorkBuddy专栏08】从「定时任务」到「数字员工」——WorkBuddy自动化系统深度拆解已发布09【WorkBuddy专栏09】AI不止会聊天——WorkBuddy多模态能力深度揭秘已发布10【WorkBuddy专栏10】你的AI终于学会「分项目干活」了——WorkBuddy项目功能完全指南已发布11【WorkBuddy专栏11】WB项目不是TAPD——WB项目在整个腾讯协作生态中的位置已发布12【WorkBuddy专栏12】技能到底存在哪——WorkBuddy两级技能存储架构深度解析已发布13【WorkBuddy专栏13】WB的「记忆系统」是怎么搭建的已发布14【WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解已发布15【WorkBuddy专栏15】灵感被折叠到「更多」里真的不重要了吗——一个「被低估」功能的当下价值与未来演变已发布16【WorkBuddy专栏16】三层记忆系统深度拆解——让AI真正「记住」你已发布17【WorkBuddy专栏17】一个 AI 不够用WorkBuddy SubAgent 多智能体协作系统深度拆解已发布18【WorkBuddy专栏18】WorkBuddy API深度解析——打造开发者友好的AI生态已发布19【WorkBuddy专栏19】技能的创造与迁移——从零开始打造你的AI工作流已发布20【WorkBuddy专栏20】项目指令的深度解析——如何让AI真正理解你的意图已发布21【WorkBuddy专栏21】WorkBuddy vs 爱马仕 vs Codex——「小龙虾」如何在 AI 助手红海中找到自己的生态位已发布22【WorkBuddy专栏22】灵感功能完全实操指南——从「第一次打开」到「回不去了」已发布23【WorkBuddy专栏23】SOUL、USER、MEMORY——三个文件决定你的 AI「是什么人」已发布24【WorkBuddy专栏24】连接器不是越多越好——WorkBuddy 43 个连接器的现实选择指南已发布25【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南已发布26【WorkBuddy专栏26】沙箱不是枷锁——WorkBuddy安全隔离机制的正确打开方式已发布27【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆已发布28【WorkBuddy专栏28】WorkBuddy 网页抓取完全实战——从翻车到行云流水已发布29【WorkBuddy专栏29】一个专家不够用——WorkBuddy专家团协作机制深度拆解已发布30【WorkBuddy专栏30】AI钱包来了——绑定流程、美团场景与使用方法完全指南已发布31【WorkBuddy专栏31】AI接入支付的真意义与真缺陷——WorkBuddy支付功能深度评析已发布32【WorkBuddy专栏32】从「分文件夹」到「组队打仗」——WorkBuddy v5.0 项目模式深度拆解已发布33【WorkBuddy专栏33】工作空间最大的WorkBuddy技巧——任务隔离、记忆分区与多项目管理实战已发布34【WorkBuddy专栏34】WB记忆能力深度解析——SOUL、USER、MEMORY的加载时机与工作机制已发布35【WorkBuddy专栏35】从「聊天搭子」到「全栈工程师」——WorkBuddy编程能力深度实测已发布36【WorkBuddy专栏36】从踩坑到上线——WorkBuddy代码开发避坑指南与部署完全手册已发布37【WorkBuddy专栏37】项目功能 Reality Check——理想很丰满现实很骨感已发布38【WorkBuddy专栏38】让AI帮你配环境——WorkBuddy编程环境配置完全指南已发布39【WorkBuddy专栏39】零基础也能做小程序——WorkBuddy微信小程序开发完全指南已发布40【WorkBuddy专栏40】从「帮你干活」到「帮你创造」——WorkBuddy设计创意功能深度拆解已发布41【WorkBuddy专栏41】学生党如何使用WorkBuddy——调研写作笔记知识库一站式解决方案已发布42【WorkBuddy专栏42】初学编程用AI助手是捷径还是陷阱——正确使用方法的深度解析已发布43【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站上——环境选型、设计编码到部署上线已发布44【WorkBuddy专栏44】如何利用WorkBuddy开发一个PC网站下——移动适配、SEO优化与GEO策略已发布45【WorkBuddy专栏45】用WB做UI设计上——从想法到设计稿AI帮你搞定「设计阶段」已发布46【WorkBuddy专栏46】用WB做UI设计下——一套设计规范小程序和PC网站两端通用已发布47【WorkBuddy专栏47】学生党用WorkBuddy做开发学习——多语言速成与练习结合实战已发布48【WorkBuddy专栏48】学生党用WorkBuddy做基础科目作业——提高成绩的正确姿势已发布49【WorkBuddy专栏49】WBCODEBUDDY代码开发配合指南——什么时候用哪个怎么配合效率最高已发布50【WorkBuddy专栏50】代码开发技术体系深度分析——前端、后端、全栈、移动端、数据工程WB和CODEBUDDY谁更擅长已发布51【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线上已发布52【WorkBuddy专栏52】Codex与WorkBuddy在中国大陆的发展——生态适配、用户争夺与未来走向下已发布53【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战上已发布54【WorkBuddy专栏54】我的WB为什么变聪明了——定期清理与MEMORY管理艺术下已发布55【WorkBuddy专栏55】哪怕WB崩了也不怕——配置文件备份与灾难恢复完全指南已发布–终结篇大勇学长感谢各位读者已发布56【WorkBuddy专栏56】WorkBuddy 7月「连环炮」更新——人机双写、项目重构、长期记忆等10新特性一次说透已发布57【WorkBuddy专栏57】你的左侧空间不是「日任务清单」——工作空间才是 WB 变聪明的核心秘密已发布58【WorkBuddy专栏58】腾讯为什么要「自己打自己」——7款AI智能体产品全景对比与「赛马」逻辑深度拆解已发布59【WorkBuddy专栏59】你的下一款办公智能体选腾讯还是阿里——WorkBuddy/CodeBuddy vs 通义灵码 Qoder/QoderWork 全维度对比已发布60【WorkBuddy专栏60】百度也有「龙虾全家桶」——WorkBuddy/CodeBuddy vs 百度 Comate/DuMate/秒哒全维度对比已发布61【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比已发布62【WorkBuddy专栏62】华为的AI打法为什么「不跟牌」——WorkBuddy/CodeBuddy vs 华为云码道 CodeArts 深度对比已发布63【WorkBuddy专栏63】Cursor 很强但 WB 更适合中国开发者——WB vs Cursor 全维度对比已发布64【WorkBuddy专栏64】Claude Code 凭什么拿 80.8% SWE-Bench——WB 与全球最强终端编码 Agent 九维深度拆解已发布65【WorkBuddy专栏65】GitHub Copilot 到底在下一盘什么棋——WB 与全球最大开发者平台的编码 Agent 全维度对比已发布66【WorkBuddy专栏66】开源、极速、500 万周活——WB vs OpenAI Codex CLI 全维度对比已发布67【WorkBuddy专栏67】从 500 美元降到 20 美元Devin 赌的是什么——WB vs DevinWindsurf 全维度对比已发布68【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距已发布69【WorkBuddy专栏69】一个管知识一个管干活——WorkBuddy IMA 双剑合璧完全指南已发布70【WorkBuddy专栏70】你的 AI 住进了企业微信——WorkBuddy 企业微信六大场景完全实战已发布71【WorkBuddy专栏71】企业微信文档 vs 腾讯文档——WorkBuddy 同时接两个到底是不是重复已发布72【WorkBuddy专栏72】AI 有了自己的邮箱——WorkBuddy Agent Mail 从开通到自动化完全指南已发布73【WorkBuddy专栏73】团队资料到底放哪——腾讯文档、IMA、企微、WB资料库、飞书、MD六方横评已发布74【WorkBuddy专栏74】HY3没列出文档vs DS4一次列全——三重隐藏坑暴露两个AI模型的执行差距已发布75【WorkBuddy专栏75】HY3反复横跳vs DS4一次定位——一次工作台排障看「推理」和「编码」的真差距本文

最新新闻

日新闻

周新闻

月新闻