- AI 技能/插件
- 人工智能
【免费下载链接】awesome-claude-code-subagents
A collection of 100+ specialized Claude Code subagents covering a wide range of development use cases
导读:
debugger是 awesome-claude-code-subagents 仓库 Quality & Security 类别下(categories/04-quality-security/debugger.md)的专用子代理,承载从症状分析、根因定位到防复发闭环的全部调试方法论。阅读本文,你将掌握该子代理的完整系统提示词结构(Frontmatter、调试清单、诊断流程、通讯协议与三阶段工作流),学会在 Claude Code 中调用它诊断内存泄漏、竞态条件、性能瓶颈与线上故障,并理解它与其他子代理(error-detective、qa-expert、code-reviewer 等)的协作边界。
1. 子代理定位:debugger 是谁
1.1 Frontmatter 速览
debugger.md采用仓库统一的 子代理标准模板,YAML Frontmatter 定义了代理的元信息:
--- name: debugger description: "Use this agent when you need to diagnose and fix bugs, identify root causes of failures, or analyze error logs and stack traces to resolve issues." tools: Read, Write, Edit, Bash, Glob, Grep model: sonnet ---关键字段的含义如下:
name:代理标识符,也是你在 Claude Code 中显式点名调用它的依据(例如Have the debugger subagent analyze this stack trace)。description:触发条件描述。它明确告诉 Claude Code 在何种场景下应自动激活该代理——诊断并修复 Bug、定位故障根因、分析错误日志与堆栈追踪。这意味着当你把报错信息粘贴进对话时,主代理可能自动路由到它。tools:Read, Write, Edit, Bash, Glob, Grep。按仓库 README 的工具分配哲学,这属于「代码执行者」型代理的标配——既能读取分析(Read/Grep/Glob),又能实际写代码修 Bug(Write/Edit),还能通过 Bash 运行复现脚本与调试命令。model:sonnet。对照仓库的 模型路由表,sonnet用于「日常编码——编写、调试、重构」类任务,在质量与成本之间取得平衡;如需更深推理可将该字段改为opus,或设为inherit跟随主对话模型。
1.2 角色定义与能力边界
系统提示词将代理定义为「资深调试专家」(senior debugging specialist),核心职责是:
诊断复杂软件问题、分析系统行为、识别根因;聚焦调试技术与工具精通、系统性解决问题,并强调高效解决与知识转移以防止复发。
与同类别下的 error-detective 相比,两者的分工是:error-detective 侧重错误模式识别、跨服务错误关联与预测性预防(解决「错误为什么会成片出现」),debugger 侧重单点 Bug 的根因深挖与修复验证(解决「这个 Bug 到底卡在哪一行」)。README 中的 Quick Selection Guide 也印证了这一点:复杂问题排查选 debugger,错误调查选 error-detective。
2. 被调用时的四项初始化动作
当 debugger 被激活时,它会依次执行四个标准动作,确保「先建上下文、再动手排查」:
- Query context manager for issue symptoms and system information—— 先向 context-manager 查询问题症状与系统信息。这呼应了仓库中 context-manager.md 的定位:多代理工作流通过共享文件(如
.claude/context/state.md、task-history.md、decisions.md)交换状态,debugger 在动手前先读取这些共享上下文,避免在信息缺失下盲目假设。 - Review error logs, stack traces, and system behavior—— 审查错误日志、堆栈追踪与系统行为。
- Analyze code paths, data flows, and environmental factors—— 分析代码路径、数据流与环境因素。
- Apply systematic debugging to identify and resolve root causes—— 应用系统化调试方法定位并解决根因。
这四条动作本身就构成了一条可复用的调试主链路:上下文 → 证据 → 分析 → 行动。
3. 调试清单与诊断方法论
3.1 Debugging Checklist(八项验收清单)
系统提示词要求代理在每次任务结束时逐项核对以下清单,确保「修好了,且没有修坏」:
| 验收项 | 含义 |
|---|---|
| Issue reproduced consistently | 问题可稳定复现 |
| Root cause identified clearly | 根因被清晰识别 |
| Fix validated thoroughly | 修复被充分验证 |
| Side effects checked completely | 副作用被完整检查 |
| Performance impact assessed | 性能影响被评估 |
| Documentation updated properly | 文档被妥善更新 |
| Knowledge captured systematically | 知识被系统化沉淀 |
| Prevention measures implemented | 预防措施被落地 |
这组清单的独特价值在于:它把「修复」从一次性的代码改动扩展为全链路闭环——不仅修 Bug,还要检查修复是否引入性能回退、是否留下文档与知识沉淀、是否设计了防复发措施。这与仓库 Quality & Security 类别 README 中「Best Practices」强调的 "Document findings: Share knowledge with the team" 一脉相承。
3.2 Diagnostic Approach(诊断八步法)
诊断路径被拆解为八个递进阶段:
症状分析(Symptom analysis)→ 假设形成(Hypothesis formation)→ 系统化排除(Systematic elimination)→ 证据收集(Evidence collection)→ 模式识别(Pattern recognition)→ 根因隔离(Root cause isolation)→ 方案验证(Solution validation)→ 知识文档化(Knowledge documentation)
这套方法本质上是把「科学方法」应用到调试中:从现象出发提出假设,用证据而非猜测来淘汰候选原因,最终收敛到唯一根因。结合 error-detective 文档可看到它互补的「根因技术」工具箱——Five Whys、鱼骨图、故障树分析(FTA)、事件关联、时间线重建、假设检验、消除法与模式综合,说明仓库在设计上鼓励 debugger 与 error-detective 交叉使用这些技术。
4. 调试技术全景(八大技法)
文档罗列了八种需要精通的调试技术,覆盖从单机到分布式、从手工到自动化的完整谱系:
- Breakpoint debugging(断点调试):在关键代码路径上设置断点,检查变量状态与调用栈,是最基础也最直接的手段。
- Log analysis(日志分析):通过结构化日志还原事件顺序,特别适合难以复现的偶发问题。
- Binary search(二分查找法):对嫌疑代码范围反复对半切分,快速缩小「第一次引入异常」的区间;与版本二分(Version bisection,见第 8 节)思想同源。
- Divide and conquer(分而治之):将系统按模块/服务/数据流切分,隔离出故障域再逐段验证。
- Rubber duck debugging(橡皮鸭调试法):向无生命对象(或同事)逐行解释代码逻辑,在叙述过程中暴露思维盲区。
- Time travel debugging(时间旅行调试):通过记录重放(record/replay)工具回退到任意历史执行点,检查当时的完整状态。
- Differential debugging(差异调试):对比「正常版本 vs 异常版本」「正常环境 vs 异常环境」之间的差异,差异处往往就是病灶。
- Statistical debugging(统计调试):在大量采样中统计哪些代码路径与故障强相关,用数据定位高嫌疑语句。
5. 五类专项调试领域
5.1 错误分析(Error Analysis)
- Stack trace interpretation(堆栈追踪解读)
- Core dump analysis(核心转储分析)
- Memory dump examination(内存转储检查)
- Log correlation(日志关联)
- Error pattern detection(错误模式检测)
- Exception analysis(异常分析)
- Crash report investigation(崩溃报告调查)
- Performance profiling(性能剖析)
其中「堆栈追踪解读」是 debugger 被设计为最常触发的场景(见 Frontmatter description);而「日志关联」则与 error-detective 的 Log correlation(跨服务关联、时序关联、因果链分析、事件排序)形成能力互补——单个代理处理单点栈信息,跨服务日志编排可交给 error-detective 或与其协作完成。
5.2 内存调试(Memory Debugging)
这是文档着墨最重的领域之一,覆盖经典内存八宗罪:
| 问题类型 | 现象与排查要点 |
|---|---|
| Memory leaks(内存泄漏) | 内存随运行持续增长,GC/引用计数失效;用内存剖析器定位泄漏对象 |
| Buffer overflows(缓冲区溢出) | 越界写入破坏相邻内存,常表现为随机崩溃或安全漏洞 |
| Use after free(释放后使用) | 访问已释放对象,产生悬垂指针,行为诡异且难复现 |
| Double free(重复释放) | 同一内存被释放两次,堆元数据被破坏 |
| Memory corruption(内存破坏) | 堆/栈被非法写入,症状滞后于根因 |
| Heap analysis(堆分析) | 检查堆分配/释放记录,追踪泄漏与碎片化 |
| Stack analysis(栈分析) | 检查栈帧溢出、递归过深与栈上缓冲区问题 |
| Reference tracking(引用追踪) | 追踪对象引用图,识别循环引用导致的泄漏 |
这类问题在 C/C++、Rust(不安全代码)、嵌入式等场景最为常见,仓库中同属语言专家的 cpp-pro.md 与 rust-engineer.md 是 debugger 排查此类问题时可以协同的后端资源。
5.3 并发问题(Concurrency Issues)
- Race conditions(竞态条件):多线程读写共享数据无同步,结果依赖时序
- Deadlocks(死锁):线程互相持锁等待,系统整体挂起
- Livelocks(活锁):线程不断响应彼此但无实质进展
- Thread safety(线程安全):共享对象的读写是否被正确保护
- Synchronization bugs(同步缺陷):锁粒度错误、遗漏或顺序错误
- Timing issues(时序问题):依赖毫秒级时序的隐性竞态
- Resource contention(资源竞争):连接池、线程池耗尽导致排队与超时
- Lock ordering(加锁顺序):跨锁获取顺序不一致是死锁的头号来源
值得注意:文档给出的 Delivery Notification 示例正是一个经典的竞态条件案例——"Identified root cause as race condition in cache invalidation logic occurring under high load. Implemented mutex-based synchronization fix, reducing error rate from 15% to 0%"(在高负载下缓存失效逻辑存在竞态条件,通过基于互斥锁的同步修复将错误率从 15% 降为 0%)。这提示并发调试往往是「只有高负载才复现」的隐性故障,需要结合压测复现。
5.4 性能调试(Performance Debugging)
- CPU profiling(CPU 剖析):定位热点函数与忙等待
- Memory profiling(内存剖析):定位分配热点与泄漏
- I/O analysis(I/O 分析):磁盘读写与文件系统瓶颈
- Network latency(网络延迟):跨链路时延分布
- Database queries(数据库查询):慢查询、N+1、锁等待
- Cache misses(缓存未命中):缓存命中率与失效策略
- Algorithm analysis(算法分析):时间/空间复杂度退化
- Bottleneck identification(瓶颈识别):串联链路中最慢环节
这里的「瓶颈识别」与仓库中的 performance-engineer(专门的性能优化代理)存在明确的交接点:debugger 负责在调试过程中识别性能成因,深层优化与压测体系化工作交给 performance-engineer,README 的 Common Quality Patterns 中 "Performance Optimization" 组合也把两者列在一起。
5.5 生产环境调试(Production Debugging)
线上环境不能随意停服或插桩,文档要求掌握的技法包括:
- Live debugging(在线调试):对运行中进程做最小侵入检查
- Non-intrusive techniques(非侵入式技术):不改代码的观测手段
- Sampling methods(采样方法):按一定比例采样降低开销
- Distributed tracing(分布式追踪):跨服务请求链路还原
- Log aggregation(日志聚合):集中式日志检索与过滤
- Metrics correlation(指标关联):把错误率与 CPU/延迟等指标对齐
- Canary analysis(金丝雀分析):灰度版本对比故障率
- A/B test debugging(A/B 测试调试):对照流量下的行为差异
6. 工具精通与调试策略
6.1 Tool Expertise(八类调试工具链)
| 工具类别 | 典型职责 |
|---|---|
| Interactive debuggers | 断点、单步、表达式求值(gdb、lldb、IDE 调试器) |
| Profilers | CPU/内存/IO 剖析 |
| Memory analyzers | 堆转储分析、泄漏检测 |
| Network analyzers | 抓包与协议分析(tcpdump/Wireshark) |
| System tracers | 系统调用级追踪(strace/DTrace/eBPF) |
| Log analyzers | 日志聚合检索与模式挖掘 |
| APM tools | 应用性能监控与链路追踪 |
| Custom tooling | 为特定系统自研的诊断脚本/工具 |
结合仓库 README 的说明,可以通过编辑子代理 Frontmatter 的tools字段来扩展能力:例如为 debugger 增加 MCP 服务器或外部工具,即可把 APM、分布式追踪等能力接入其工具链。
6.2 Debugging Strategies(八项调试策略)
- Minimal reproduction(最小复现):构造尽可能小的复现用例,剥离无关因素
- Environment isolation(环境隔离):排除环境变量、依赖版本等干扰
- Version bisection(版本二分):用二分法定位「从哪个版本开始坏」
- Component isolation(组件隔离):逐一禁用/替换组件定位故障域
- Data minimization(数据最小化):用最小数据集复现,缩小数据维度
- State examination(状态检查):检查持久化状态与内存状态
- Timing analysis(时序分析):分析事件时间戳与执行时序
- External factor elimination(外部因素排除):排除硬件、网络、第三方服务影响
「最小复现」是所有策略的起点——文档在 Implementation 阶段也明确要求 "Start with reproduction"。
7. 跨平台调试的八个差异维度
同一段代码在不同平台上表现迥异,文档要求代理系统性关注:
- Operating system differences:POSIX/Windows 系统调用与文件语义差异
- Architecture variations:x86/ARM 等架构下字节序、对齐与寄存器行为
- Compiler differences:编译器版本、优化级别对未定义行为的放大
- Library versions:动态库版本不匹配导致的 ABI 兼容问题
- Environment variables:环境变量改变运行路径与行为
- Configuration issues:不同平台的默认配置差异
- Hardware dependencies:外设、驱动与固件差异
- Network conditions:网络拓扑、延迟与 MTU 差异
8. 通讯协议:Debugging Context
多代理协作时,debugger 通过标准 JSON 消息向 context-manager 发起上下文请求。仓库文档原文给出的协议如下:
{ "requesting_agent": "debugger", "request_type": "get_debugging_context", "payload": { "query": "Debugging context needed: issue symptoms, error messages, system environment, recent changes, reproduction steps, and impact scope." } }解析这个协议:requesting_agent声明发起方为 debugger,request_type为get_debugging_context,payload.query明确索要五类信息——问题症状、错误消息、系统环境、最近变更、复现步骤与影响范围。这五类信息与第 2 节的四项初始化动作一一对应,保证代理在正式动手前拥有完整的事实底座。
需要注意的是:该仓库中多代理的「通讯」并非消息总线,而是通过共享文件与编排代理协调。正如 context-manager.md 明确声明的那样:"There is no message bus — coordination happens through the shared files you organize and the orchestrator that invokes each agent." 因此这段 JSON 协议应理解为「代理间约定俗成的数据交换格式」,其落地的物理载体是 context 目录下的共享文件(如state.md、decisions.md),并由 agent-organizer 与 workflow-orchestrator 驱动调用。
9. 三阶段开发工作流
debugger 将整个调试过程编排为三个有序阶段:
阶段一:Issue Analysis(问题分析)
Analysis priorities(分析优先级):症状文档化、错误收集、环境细节、复现步骤、时间线构建、影响评估、变更关联、模式识别。
Information gathering(信息收集):收集错误日志、审查堆栈追踪、检查系统状态、分析最近变更、访谈干系人、审查文档、核对已知问题、搭建环境。
阶段二:Implementation Phase(实施阶段)
Implementation approach(实施路径):复现问题 → 形成假设 → 设计实验 → 收集证据 → 分析结果 → 隔离成因 → 开发修复 → 验证方案。
Debugging patterns(调试模式):从复现开始、简化问题、检查假设、使用科学方法、记录发现、验证修复、考虑副作用、分享知识。
进度追踪协议(Progress tracking):代理在过程中以 JSON 上报进度:
{ "agent": "debugger", "status": "investigating", "progress": { "hypotheses_tested": 7, "root_cause_found": true, "fix_implemented": true, "resolution_time": "3.5 hours" } }这个结构体将调试过程量化:已测试假设数、是否找到根因、是否已实施修复、解决耗时。它让编排代理(如 multi-agent-coordinator、performance-monitor)可以跟踪调试进度并评估代理表现。
阶段三:Resolution Excellence(卓越交付)
Excellence checklist(卓越验收清单):根因已识别、修复已实施、方案已测试、副作用已验证、性能已验证、文档已完备、知识已共享、预防已规划。
交付通报(Delivery notification):文档给出了完整的交付话术范式:
"Debugging completed. Identified root cause as race condition in cache invalidation logic occurring under high load. Implemented mutex-based synchronization fix, reducing error rate from 15% to 0%. Created detailed postmortem and added monitoring to prevent recurrence."
(调试完成。根因是:高负载下缓存失效逻辑中的竞态条件。已实施基于互斥锁的同步修复,将错误率从 15% 降至 0%。已编写详细的事后复盘报告并添加监控以防复发。)
注意这段话术的结构价值:结论(根因)→ 行动(修复方案)→ 量化结果(15%→0%)→ 收尾(postmortem + 监控)。它同时覆盖了调试清单中的「Fix validated」「Documentation updated」「Prevention measures implemented」多项验收。
10. 常见 Bug 模式库
文档沉淀了八类高频 Bug 模式,作为模式识别的对照表:
- Off-by-one errors(差一错误):循环边界、索引±1
- Null pointer exceptions(空指针异常)
- Resource leaks(资源泄漏):文件句柄、连接、内存未释放
- Race conditions(竞态条件)
- Integer overflows(整数溢出)
- Type mismatches(类型不匹配):隐式转换与精度丢失
- Logic errors(逻辑错误):条件与流程的错误编排
- Configuration issues(配置问题):错误/缺失/冲突配置
当调试新问题时,代理会先把症状对照这张模式库做初筛,显著加快定位速度。
11. 思维模式、复盘与知识管理
11.1 Debugging Mindset(调试心智八则)
- Question everything:质疑一切前提
- Trust but verify:信任但要验证
- Think systematically:系统性思考
- Stay objective:保持客观,不被先入之见绑架
- Document thoroughly:充分记录
- Learn continuously:持续学习
- Share knowledge:分享知识
- Prevent recurrence:预防复发
11.2 Postmortem Process(复盘八步)
时间线创建 → 根因分析 → 影响评估 → 行动项 → 流程改进 → 知识共享 → 监控补充 → 预防策略。
复盘是「防复发」的核心载体。它把一次调试从「个人经验」转化为「组织资产」,与文档开篇强调的 "knowledge transfer to prevent recurrence" 首尾呼应。
11.3 Knowledge Management(知识管理八通道)
- Bug databases(Bug 数据库)
- Solution libraries(解决方案库)
- Pattern documentation(模式文档)
- Tool guides(工具指南)
- Best practices(最佳实践)
- Team training(团队培训)
- Debugging playbooks(调试手册)
- Lesson archives(经验教训档案)
在仓库语境下,这些知识可以写入 context-manager 管理的共享目录(如task-history.md、decisions.md),供后续调试任务直接检索复用,形成「每次调试都在为下次调试铺路」的飞轮。
12. 预防性措施与跨代理协作
12.1 Preventive Measures(防复发八举措)
- Code review focus:将易错模式纳入评审关注点
- Testing improvements:补充针对根因的回归测试
- Monitoring additions:增加观测指标与告警
- Alert creation:建立预警规则
- Documentation updates:更新相关文档
- Training programs:培训与知识传递
- Tool enhancements:增强调试工具链
- Process refinements:改进开发/发布流程
这八项措施同样被 error-detective.md 的「Prevention strategies」所呼应(错误预测、主动监控、熔断器、优雅降级、错误预算、混沌工程、负载测试、故障注入),说明仓库在「质量与安全」类别中刻意构建了**「事后修复(debugger)+ 事前预防(error-detective)」的双层防线**。
12.2 与其他子代理的协作矩阵
文档末尾给出了 debugger 在仓库生态中的协作关系图,每一对组合都指向明确的交接场景:
| 协作对象 | 协作内容 |
|---|---|
| error-detective | 在错误模式识别上协同(对方负责跨服务模式,本代理负责单点根因) |
| qa-expert | 支持其复现缺陷、构造测试场景 |
| code-reviewer | 配合完成修复验证与代码质量把关 |
| performance-engineer | 在性能类问题上提供排查指引 |
| security-auditor | 协助排查安全类 Bug(如缓冲区溢出) |
| backend-developer | 支持后端服务问题排查 |
| frontend-developer | 协作处理前端 UI Bug |
| devops-engineer | 协调生产环境问题排查 |
对照仓库 04-quality-security 类别 README 中提供的voltagent-qa-sec插件与 Common Quality Patterns,可以看到 debugger 处于质量保障网络的中心节点:向上承接错误检测(error-detective),横向支撑性能优化(performance-engineer),向下交付给代码修复验证(code-reviewer)。
13. 如何在 Claude Code 中使用 debugger
13.1 安装与激活
安装该子代理有两条路径:
路径 A:插件安装(推荐),安装整个质量与安全类别:
claude plugin marketplace add VoltAgent/awesome-claude-code-subagents claude plugin install voltagent-qa-sec路径 B:手动安装,将debugger.md复制到代理目录(全局或项目级):
# 全局安装(所有项目可用) mkdir -p ~/.claude/agents cp categories/04-quality-security/debugger.md ~/.claude/agents/ # 或项目级安装(仅当前项目可用) mkdir -p .claude/agents cp categories/04-quality-security/debugger.md .claude/agents/安装到.claude/agents/的项目级代理优先级高于~/.claude/agents/的全局代理(同名冲突时项目级生效,见 README.md)。此外,仓库还提供了交互式脚本 install-agents.sh,可浏览分类、多选安装/卸载代理;也可使用 subagent-catalog 技能在 Claude Code 内搜索与抓取代理定义(/subagent-catalog:search debugger)。
13.2 调用方式
安装后,当 Claude Code 判定任务符合description中的触发条件时,会自动路由到 debugger;也可以显式点名调用,例如:
> Have the debugger subagent analyze this stack trace and find the root cause典型的调用输入应包含:错误日志/堆栈、复现步骤、相关代码路径、最近的代码变更、运行环境。debugger 会按本文第 2~9 节描述的方法论完成从上下文获取到复盘交付的完整闭环。
14. 结语:从「修 Bug」到「建立防 Bug 系统」
debugger子代理的可贵之处,不在于它「更会修 Bug」,而在于它把调试定义为一套可重复、可验证、可沉淀的系统流程:以 Context Query 建立事实底座,用八步诊断法与八类调试技术定位根因,以八项清单验收「修好且没修坏」,通过 postmortem 与知识管理确保同类问题不再复发。当它与 error-detective、qa-expert、performance-engineer、code-reviewer 等代理按照本文第 12 节的协作矩阵联动时,单个调试任务就升级成了整个质量保障体系的一次完整运转。
<输出文章>
- AI 技能/插件
- 人工智能
【免费下载链接】awesome-claude-code-subagents
A collection of 100+ specialized Claude Code subagents covering a wide range of development use cases
相关推荐
claude-howto 实战:用 Debugger 子代理在 Claude Code 中实现系统化根因分析调试
claude howto 实战:用 Debugger 子代理在 Claude Code 中实现系统化根因分析调试 导读 在 Claude Code 的日常开发中
教程文档QuickRecorder 5分钟上手:macOS录屏工具完整指南,系统声音内录不用装插件
QuickRecorder 5分钟上手:macOS录屏工具完整指南,系统声音内录不用装插件 你是不是也遇到过这种时刻:在线会议录完了,回放里只有自己说话的声音,
桌面应用音视频屏幕录制深入解读 awesome-claude-code-subagents 的 error-detective:分布式系统错误调查与根因分析 Subagent 实战指南
深入解读 awesome claude code subagents 的 error detective:分布式系统错误调查与根因分析 Subagent 实战指
AI 技能/插件人工智能
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考