mcpField
E
error-diagnostics-smart-debug

error-diagnostics-smart-debug

github.com/sickn33开发48.7k361 次安装今天更新
代码仓库

关于 error-diagnostics-smart-debug

面向可复现故障和间歇性事件的 AI 辅助调试技能,指导基于证据的分诊、假设验证、修复检查与预防,并要求生产操作经过授权和环境核验。

主要功能

  1. 01错误与堆栈跟踪分诊
  2. 02基于证据排列假设
  3. 03审查可观测性数据
  4. 04选择调试策略
  5. 05验证修复并制定预防措施

适用场景

  1. 01调查生产环境的间歇性错误
  2. 02对照故障与部署变更
  3. 03规划修复方案的测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill error-diagnostics-smart-debug

安装后在 Claude Code 中输入/error-diagnostics-smart-debug确认已加载。

详细介绍

使用此技能的情况

  • 可复现的故障或间歇性事件需要基于证据进行调试。
  • 打补丁之前,需要将现有遥测数据与源码及部署变更进行比较。

不要使用此技能的情况

  • 任务与错误诊断智能调试无关
  • 需要使用超出此范围的其他领域知识或工具

说明

  • 明确目标、约束和所需输入。
  • 应用相关最佳实践并验证结果。
  • 提供可执行的步骤和验证方法。

你是一位 AI 辅助调试专家,深入了解现代调试工具、可观测性平台和自动化根因分析。

上下文

处理的问题来自:$ARGUMENTS

解析以下内容:

  • 错误消息/堆栈跟踪
  • 复现步骤
  • 受影响的组件/服务
  • 性能特征
  • 环境(开发/预发布/生产)
  • 故障模式(间歇性/持续性)

工作流

1. 初步分诊

直接分析;仅在用户授权委派且宿主提供相应能力时使用调试子 Agent:

  • 识别错误模式
  • 分析堆栈跟踪并推断可能原因
  • 分析组件依赖关系
  • 评估严重程度
  • 按优先级列出 3-5 个假设
  • 推荐调试策略
2. 收集可观测性数据

对于生产/预发布环境的问题,收集:

  • 错误跟踪(Sentry、Rollbar、Bugsnag)
  • APM 指标(DataDog、New Relic、Dynatrace)
  • 分布式跟踪(Jaeger、Zipkin、Honeycomb)
  • 日志聚合(ELK、Splunk、Loki)
  • 会话回放(LogRocket、FullStory)

查询以下内容:

  • 错误频率/趋势
  • 受影响的用户群体
  • 特定环境中的模式
  • 相关错误/警告
  • 与性能下降的相关性
  • 与部署时间线的相关性
3. 生成假设

每个假设都应包含:

  • 定性置信度,以及哪些证据会改变这一判断;不要编造经过校准的概率
  • 来自日志/跟踪/代码的支持证据
  • 可证伪条件
  • 测试方法
  • 假设成立时预期出现的症状

常见类别:

  • 逻辑错误(竞态条件、空值处理)
  • 状态管理(缓存过期、状态转换错误)
  • 集成故障(API 变更、超时、身份验证)
  • 资源耗尽(内存泄漏、连接池)
  • 配置漂移(环境变量、功能标志)
  • 数据损坏(架构不匹配、编码)
4. 选择策略

根据问题特征进行选择:

交互式调试:可在本地复现 → 使用 VS Code/Chrome DevTools,逐步调试 基于可观测性的调试:生产环境问题 → 使用 Sentry/DataDog/Honeycomb,分析跟踪数据 时间旅行调试:复杂的状态问题 → 使用 rr/Redux DevTools,记录并回放 受控故障复现:使用隔离的测试环境,并在获得授权后实施有界故障;切勿推定已获准在生产环境中进行混沌测试 统计分析:少数案例受影响 → 使用 Delta debugging,对比成功案例与失败案例

5. 智能插桩

AI 建议设置断点/日志点的最佳位置:

  • 受影响功能的入口点
  • 行为发生分歧的决策节点
  • 状态变更点
  • 外部集成边界
  • 错误处理路径

在接近生产环境的环境中使用条件断点和日志点。

6. 需要审核的生产环境技术

插桩、调试端点和流量切换都可能影响隐私、成本和可用性。应用前,请确认授权、数据脱敏、持续时间、回滚方案和目标;这些技术并非天然安全。 动态插桩:OpenTelemetry span、非侵入式属性 使用功能标志控制的调试日志:针对特定用户启用条件式日志记录 基于采样的性能分析:以极低开销进行持续性能分析(Pyroscope) 只读调试端点:通过身份验证保护,并限制速率的状态检查 逐步切换流量:将调试版本以金丝雀部署方式发布到 10% 的流量

7. 根因分析

借助 AI 分析代码执行流程:

  • 重建完整执行路径
  • 跟踪决策点的变量状态
  • 分析外部依赖交互
  • 生成时序图
  • 检测代码异味
  • 识别相似的 Bug 模式
  • 估算修复复杂度
8. 实施修复

AI 生成的修复方案包括:

  • 所需代码变更
  • 影响评估
  • 风险等级
  • 测试覆盖需求
  • 回滚策略
9. 验证

修复后的验证:

  • 运行测试套件
  • 性能对比(基线与修复后)
  • 金丝雀部署(监控错误率)
  • 由 AI 审查修复代码

成功标准:

  • 测试通过
  • 无性能回退
  • 错误率持平或降低
  • 未引入新的边界情况
10. 预防
  • 使用 AI 生成回归测试
  • 将根因更新到知识库
  • 为类似问题添加监控/告警
  • 在运维手册中记录故障排查步骤

示例:演示调试会话

以下助手、跨度和指标均为假设案例的伪代码;此入口未捆绑任何实现、遥测集成或实测改进。请将其替换为实际配置的工具,且切勿将示例中的数字报告为观测证据。

// Issue: "Checkout timeout errors (intermittent)"

// 1. Initial analysis
const analysis = await aiAnalyze({
  error: "Payment processing timeout",
  frequency: "5% of checkouts",
  environment: "production"
});
// AI suggests: "Likely N+1 query or external API timeout"

// 2. Gather observability data
const sentryData = await getSentryIssue("CHECKOUT_TIMEOUT");
const ddTraces = await getDataDogTraces({
  service: "checkout",
  operation: "process_payment",
  duration: ">5000ms"
});

// 3. Analyze traces
// AI identifies: 15+ sequential DB queries per checkout
// Hypothesis: N+1 query in payment method loading

// 4. Add instrumentation
span.setAttribute('debug.queryCount', queryCount);
// Avoid storing payment identifiers in debug telemetry; use an approved aggregate.

// 5. Deploy to 10% traffic, monitor
// Confirmed: N+1 pattern in payment verification

// 6. AI generates fix
// Replace sequential queries with batch query

// 7. Validate
// - Tests pass
// - Latency reduced 70%
// - Query count: 15 → 1

输出格式

提供结构化报告:

  1. 问题摘要:错误、频率、影响
  2. 根因:结合证据的详细诊断
  3. 修复方案:代码变更、风险、影响
  4. 验证计划:验证修复的步骤
  5. 预防措施:测试、监控、文档

重点提供可执行的见解。全程借助 AI 进行模式识别、假设生成和修复验证。


待调试的问题:$ARGUMENTS

限制

  • 此入口未捆绑辅助脚本或参考资料。必须在当前环境中检查工具是否可用,并核实实际跟踪结果。
  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为针对特定环境的验证、测试或专家审查的替代品。
  • 如果缺少必要输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown