ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

GSD `debug-like-expert` 技能实战:调试时何时该查资料、何时该推代码(when-to-research 决策指南)

GSD `debug-like-expert` 技能实战:调试时何时该查资料、何时该推代码(when-to-research 决策指南) 人工智能AI Agent代码智能体Agent 编排CLIAI 应用【免费下载链接】gsd-2A powerful meta-prompting, context engineering and spec-driven development system that enables agents to work for long periods of time autonomously without losing track of the big picture项目地址https://gitcode.com/gh_mirrors/gs/gsd-2点击查看免费下载导读本指南围绕 GSDgsd-2内置技能debug-like-expert的核心参考文档 when-to-research.md 展开系统回答调试过程中最关键的一个判断问题什么时候应该放下代码去查外部资料什么时候应该靠推理读透眼前的代码。读完本文你将掌握 5 类必须研究的信号、4 类应该推理的信号、Web 搜索与 Context7 MCP 等研究工具的正确用法以及一套可复制的研究/推理动态平衡流程并将其落实到 GSD Agent 的实际调试工作流中。一、为什么先研究还是先推理本身就是一门技能调试的本质由两条腿组成推理代码reasoning about code与研究外部知识researching external knowledge。绝大多数开发者的问题不在于不会调试而在于不知道此刻该用哪条腿面对不认识的报错却硬啃代码浪费几小时面对自己写的逻辑却去搜索购物车计算 bug同样浪费时间。when-to-research.md 的定位就是帮助调试者识别需要外部知识的信号以及**可以靠眼前代码推理解决的信号**从而避免在错误的模式上投入时间。这份参考文档是debug-like-expert技能的五大参考之一对应 SKILL.md 中**证据收集阶段Evidence Gathering**的第三步Gather External Knowledge (when needed)并在技能内被明确引用Use MCP servers for API documentation, library details, or domain knowledge. Use web search for error messages, framework-specific behaviors, or recent changes...——见 SKILL.md也就是说研究策略不是调试的辅助动作而是证据收集流程的一个正式环节。二、研究信号这 5 种情况说明你需要外部知识当出现以下五类信号时说明问题的答案不在你面前的代码里优先转向外部研究。1. 无法识别的错误消息你没用过的库抛出的堆栈跟踪含义晦涩的系统级错误框架特有的错误码。行动用引号把完整错误消息原样放入 Web 搜索。往往能直接命中 GitHub issue、Stack Overflow 或官方文档别人大概率踩过同样的坑。示例EADDRINUSE: address already in use :::3000这是系统级错误应当研究Web 搜索EADDRINUSE address already in use学到端口已被其他进程占用解决找到并结束占用进程或改用其他端口2. 库/框架行为与预期不符你自认为用法正确但就是不工作文档描述与实际行为相互矛盾版本特有的怪异行为。行动查阅官方文档与近期 issue。用 Context7 MCP 拉取库文档本项目内置 context7 扩展见 src/resources/extensions/context7/index.ts搜索该库的 GitHub issue检查近期版本是否有破坏性变更。示例React 的useEffect在依赖数组为空时仍在每次渲染执行。需要研究查 React 文档中 useEffect 的规则搜索useEffect running on every render发现React 18 的 StrictMode 在开发模式下会让 effect 执行两次3. 领域知识盲区调试认证问题需要理解 OAuth 流程调试数据库问题需要理解索引、查询优化调试网络问题需要理解 HTTP 缓存、CORS。行动研究的是领域概念而不只是眼前这个 bug。用 MCP 服务器获取领域知识阅读官方规范specification查找权威指南。4. 平台特有的行为差异在 Chrome 正常但 Safari 不行Mac 上正常但 Windows 不行Node 16 正常但 Node 18 不行。行动研究平台差异。浏览器兼容性表平台专属文档已知平台 bug。5. 生态近期的变化升级某个包后功能坏了新框架版本行为不一致API 被标记为废弃。行动查 changelog 与迁移指南。库的CHANGELOG.md迁移指南Breaking changes 文档。三、推理信号这 4 种情况应该读代码而不是搜资料与上文相反当出现以下信号时外部文档帮不了你答案就在代码本身。1. bug 出在你自己的代码里不是库行为、不是系统问题是你的业务逻辑、你的数据结构是你或你的团队写的代码。方法读代码、追踪执行、加日志。你对代码有完全的访问权你可以改动它来增加可观测性没有任何外部文档能替你解决。示例购物车总额计算错误。这是你的逻辑function calculateTotal(items) { return items.reduce((sum, item) sum item.price * item.quantity, 0); }不要去搜 shopping cart calculation bugs应该推理打印每件商品的 price 和 quantity打印累计 sum逐步追踪逻辑2. 你已经拥有全部所需信息bug 可复现所有相关代码都能读到不涉及外部依赖。方法使用系统性排查技巧。二分搜索逐步缩小范围最小化复现从期望结果倒推增加可观测性。这些技巧在姊妹参考文档 investigation-techniques.md 中有完整展开binary search、rubber duck、minimal reproduction、working backwards、differential debugging、observability first、git bisect 等。3. 是逻辑错误而不是知识缺口差一错误off-by-one条件写错状态管理问题数据转换 bug。方法仔细追踪逻辑。打印中间值检查假设验证每一步。4. 答案在行为里不在文档里这个函数到底在做什么这个值为什么是 null这段代码什么时候执行方法直接观察实际行为。加日志用调试器用不同输入测试。这也呼应了 debugging-mindset.md 中的核心理念代码的行为是真相你的心智模型只是猜测。四、研究方法实战Web 搜索、Context7、GitHub Issues、官方文档这份参考文档最实用的部分之一是给出了四种研究手段各自的何时用、怎么用。Web 搜索什么时候用、怎么搜什么时候用错误消息库专属问题在框架 Y 里怎么做 X平台问题排查。怎么搜这是最容易做错的环节用引号包裹精确错误消息Cannot read property map of undefined带上框架/库版本react 18 useEffect behavior已知 bug 加 github issueprisma connection pool github issue近期变化加年份nextjs 14 middleware 2024好查询示例ECONNREFUSED node.js postgresMaximum update depth exceeded react hookstypescript generic constraints examples坏查询示例务必避开my code doesnt work太含糊bug in react太宽泛help毫无价值Context7 MCP什么时候用、怎么用什么时候用需要 API 参考理解库的概念查找具体函数签名学习正确的用法模式。怎么用两步调用模式Use mcp__context7__resolve-library-id with library name Then mcp__context7__get-library-docs with library ID Ask specific questions about the library在 GSD 中Context7 以扩展形式内置src/resources/extensions/context7/index.ts与 MCP 工具系统集成官方文件地图将其定位为 Library documentation fetching extension见 docs/dev/FILE-SYSTEM-MAP.md。好的用法How do I use Prisma transactions?What are the parameters for stripe.customers.create?How does Express middleware error handling work?坏的用法Fix my bug太含糊——Context7 提供的是文档不是调试服务Why isnt my code working?应该先研究具体概念而不是笼统地求调试GitHub Issues 搜索什么时候用行为看起来像是库的 bug库没有按文档工作需要找 workaround。怎么用在库的 GitHub 仓库内搜索带上相关关键词开着的和已关闭的 issue 都要查优先看带bug或regression标签的 issue。官方文档什么时候用学习某个东西应该如何工作检查你的 API 用法是否正确理解配置选项找迁移指南。怎么用优先官方文档而非博客文章看对应版本的文档读示例和指南而不只看 API 参考留意 Common Pitfalls 或 Troubleshooting 小节。五、动态平衡研究与推理如何交替两个典型的陷阱研究陷阱research trap花几个小时读与 bug 沾边但无关的文档。你以为是缓存问题于是通读缓存失效的全部资料但真正的 bug 只是变量名拼错了一个字母。推理陷阱reasoning trap花几个小时读代码而答案其实早就在文档里。你在排查认证为什么不工作文档清楚地解释了那个你漏掉的配置本来 5 分钟就能读到。四步平衡流程先做快速研究5-10 分钟搜错误消息查你正在用功能的官方文档扫一眼近期 issue。研究无果切到推理加日志追踪执行形成假设。推理暴露知识盲区时针对性地研究那个缺口我需要理解 WebSocket 重连是如何工作的我需要知道这个库是否支持事务按需反复交替研究 → 揭示该调查什么推理 → 揭示该研究什么依据新学到的东西持续切换完整实战示例实时更新 1 小时后停止Bug实时更新在运行 1 小时后停止工作先研究5 分钟搜索websocket connection drops after 1 hour发现负载均衡器有连接超时这是常见问题切到推理检查你是否用了负载均衡器是检查负载均衡器超时设置3600 秒1 小时假设负载均衡器在杀掉连接快速研究搜索websocket load balancer timeout fix发现实现心跳/心跳包heartbeat/ping保持连接存活推理检查库是否支持心跳支持每 30 秒发送一次 ping测试连接保持 3 小时以上存活总耗时20 分钟研究 10 分钟推理 10 分钟结果定位并修复了问题对比错误做法花 2 小时读 WebSocket 协议规范——学到了大量 WebSocket 协议知识但问题没有解决它只是个配置问题六、决策树一行一行的判断路径when-to-research.md 给出了一份可以直接执行的决策树从最该研究的问题开始逐层下探Is this a error message I dont recognize? ├─ YES → Web search the error message └─ NO ↓ Is this library/framework behavior I dont understand? ├─ YES → Check docs (Context7 or official docs) └─ NO ↓ Is this code I/my team wrote? ├─ YES → Reason through it (logging, tracing, hypothesis testing) └─ NO ↓ Is this a platform/environment difference? ├─ YES → Research platform-specific behavior └─ NO ↓ Can I observe the behavior directly? ├─ YES → Add observability and reason through it └─ NO → Research the domain/concept first, then reason使用时注意决策树的出口语义代码是自己写的应直接推理而**无法直接观察行为则需要先研究领域概念再推理**——这正好呼应了 GSD 中可观测性优先observability first的调试纪律即在修改任何代码之前先给执行路径点亮灯。七、红旗信号怎么判断自己走偏了你研究过度的迹象读了 20 篇博客但还没看过自己的代码理解了理论但没追踪过实际执行正在学习与你的情况无关的边界用例已经读了 30 多分钟却什么都没测试。你推理过度的迹象盯着代码一小时毫无进展不断遇到不理解的东西然后开始猜测正在调试库内部实现那是研究的领地错误消息明显来自你不认识的库。你做对了的迹象在研究与推理之间交替每次研究都回答一个具体问题每次推理都验证一个具体假设正在稳步逼近对问题的理解。这些红旗信号与 SKILL.md 中的 critical_rules 相互印证VERIFY EVERYTHING、ONE VARIABLE、COMPLETE READS、CHASE DEPENDENCIES。当你在研究中迷失时这些规则就是拉回正轨的锚点。八、研究者与推理者的心智模式优秀的研究者会问我到底需要回答哪个具体问题这个问题的权威来源在哪里这是已知问题还是我的代码特有的我需要哪些版本特有的信息优秀的推理者会问我的代码里实际发生了什么我在做哪些可能错误的假设我如何直接观察这个行为哪个实验能检验我的假设伟大的调试者两者兼修用研究填补知识缺口用推理理解实际行为根据学到的东西流畅切换绝不停留在单一模式。目标用最少的时间获得最大化的理解。Research what you dont know — Reason through what you can observe — Fix what you understand.这份心智模型是 debugging-mindset.md 中元调试meta-debugging思想的自然延伸调试你自己写的代码时认知偏见会让你看到你想写的而不是实际写出来的。研究/推理的切换判断本质上也是一种对抗认知偏见的纪律。九、在 GSD 中落地这个研究策略如何被激活与使用触发与加载debug-like-expert是 GSD 内置技能技能名与触发描述定义在 SKILL.md 的 frontmatter 中name: debug-like-expert。GSD 的系统上下文会自动注册触发条件见 src/resources/extensions/gsd/bootstrap/system-context.tsTrigger: Debugging - complex bugs, failing tests, root-cause investigation after standard approaches fail也就是说当标准排查手段失效、问题需要系统性的根因分析时该技能被激活进入证据收集 → 根因分析 → 解决方案提议的流程而研究策略正是在证据收集阶段的第三步发挥作用。通过技能偏好强制启用你可以在 GSD 技能配置中把debug-like-expert设为常驻技能配置格式详见 docs/user-docs/skills.md 与 src/resources/extensions/gsd/docs/preferences-reference.md--- version: 1 always_use_skills: - debug-like-expert prefer_skills: - frontend-design avoid_skills: - security-docker ---GSD 的skill_discovery偏好控制技能如何被发现auto自动应用、suggest识别但需确认默认、off关闭。技能使用情况会被记录在metrics.json中并可通过/gsd skill-health查看成功率与调用趋势。与技能内其他参考文档的协同when-to-research.md不是孤立的——它是debug-like-expert技能体系的一个环节与另外四份参考文档共同构成完整调试方法论参考文档关注点与研究策略的关系debugging-mindset.md第一性原理、认知偏见决定该研究还是该推理的认知基础investigation-techniques.md二分、最小复现等技巧推理阶段的工具箱hypothesis-testing.md可证伪假设与实验设计研究结论之后的验证方法verification-patterns.md验证的精确定义修复后的收尾检查when-to-research.md研究 vs 推理的切换判断本文主体同时注意debug-like-expert技能有一条只读规则analysis_only_rule技能设计为诊断者而非外科医生只输出证据、根因与修复建议不直接改动代码最终由用户决定是否实施见 SKILL.md 的 decision gate 流程。因此本文所述的研究与推理最终都服务于用证据找到根因这一诊断目标而非立即动手修。结语调试的效率不取决于你多快找到答案而取决于你多快判断出答案在哪一边。面对一个陌生错误5 分钟精准搜索可能胜过 2 小时盲读面对一段自己的逻辑一次日志输出可能胜过 20 篇无关博客。将 when-to-research.md 中的信号清单、搜索技巧、平衡流程与决策树内化到 GSD 的debug-like-expert调试流程中你就能把猜变成查把蒙变成推在最少的时间里获得对问题最完整的理解。赞分享人工智能AI Agent代码智能体Agent 编排CLIAI 应用【免费下载链接】gsd-2A powerful meta-prompting, context engineering and spec-driven development system that enables agents to work for long periods of time autonomously without losing track of the big picture项目地址https://gitcode.com/gh_mirrors/gs/gsd-2点击查看免费下载相关推荐5步搭建高效音乐聚合系统跨平台资源整合终极方案5步搭建高效音乐聚合系统跨平台资源整合终极方案 在数字音乐时代用户常常面临一个核心痛点同一首歌曲分散在不同平台每个平台都有自己的版权限制和会员体系。音乐CLI网页爬虫音视频调试即认识论GSD debug-like-expert 技能中的元调试心态与系统调查纪律调试即认识论GSD debug like expert 技能中的元调试心态与系统调查纪律 导读 本篇文章围绕开源仓库 GSD 中 debug like exp人工智能AI Agent代码智能体Agent 编排CLIAI 应用GSD 调试排查技术指南debug-like-expert 的十种系统化根因分析方法GSD 调试排查技术指南debug like expert 的十种系统化根因分析方法 导读 当常规排错手段失效、问题久拖不决时盲目试错只会让代码越来越乱。G人工智能AI Agent代码智能体Agent 编排CLIAI 应用上一篇WaveTools 鸣潮工具箱怎么用三步上手帧率解锁、画质调节与抽卡统计下一篇30文档平台一键免费下载kill-doc浏览器脚本实战全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表