🛑 Debug 断点系统测试报告

代码级拦截 + 全链路生命周期验证 — 从派发到清理的完整断点闭环
2026-03-26 · 龙虾集群 · 9 个测试任务 · 2 批次 · 断点: hong-zhong-handoff
📊 测试总结
89%
断点拦截成功率
8/9 任务
100%
cron 清理成功率
9/9 全部关闭
100%
Claude Agent 调用率
8/8 成功任务
100%
骰子不干活
纯调度,零越权
9
测试任务总数
7种不同类型
1
发现问题
cron 激活失败
结论:Debug 断点系统的代码级拦截(debug_gate.py)可靠有效。8/9 个任务完整走通了 "骰子派发 → cron激活红中 → 红中启动监督cron → Claude Agent 写 plan.md → 断点拦截 → end-task.py 清理" 的全链路。唯一失败的 1 个是 cron 激活层面的问题,不是断点系统本身的问题。
🔗 断点验证的完整流程

断点设置在 hong-zhong-handoff(红中1号→白板交接前)。以下是每个成功任务实际经历的 pipeline:

🎲 骰子派发 new-task.py → 创建任务目录 + task-index + 收件箱 + 激活cron ✅ 骰子不参与后续
Cron 激活红中 15秒后 one-shot cron 触发 isolated session ✅ 独立会话
🀄 红中1号启动监督 cron hong-zhong-N-cron-{task_id},每分钟巡查 ✅ 写入 supervisor-cron-id.txt
🤖 Claude Agent 写 plan.md claude --print --permission-mode bypassPermissions ✅ hooks 证实 Read→Write→Stop
🛑 断点拦截 hong-zhong-handoff debug_gate.py 检测到断点,代码级阻止 🛑 不继续创建白板 cron
🧹 end-task.py 统一清理 disable cron + 更新状态 + 追加日志 + 发TG ✅ 5步清理全完成
⏭️ 白板审核 → 红中2号 → 执行Soul 被断点拦截,未执行 符合预期
📋 9 个测试任务详细结果

Batch 1:批量并行测试(11:56 - 12:17)

任务ID标题派发红中启动Agent写plan断点清理耗时
T-004查询上海当前天气 ✅ hooks 3min
T-005写Python快速排序脚本 ✅ hooks 4min
T-006学习Docker基础知识 ✅ hooks 6min
T-007分析集群架构改进空间 ✅ hooks 8min
T-008查询今日天气(上海) 10min
T-009写一份今日工作日报 ✅ hooks+Bash 14min
T-010搜索最近AI领域新闻 16min
Batch 1:7/7 全部通过。7 个不同类型的任务(天气查询、代码编写、知识学习、架构分析、日报、新闻搜索)全部在断点正确拦截,Claude Agent 全部成功调用。

Batch 2:验证测试(14:07 - 14:13)

任务ID标题派发红中启动Agent写plan断点清理状态
T-011查询北京今日天气 ✅ hooks 通过
T-012写一份今日工作日报 N/A ✅ 手动 激活失败
T-012 的激活 cron 创建成功但红中2号未启动,任务停留在 pending 状态。但其监督 cron 已被创建(ID: e48750b0-...),需要手动调用 end-task.py 清理。问题不在断点系统,而在 cron 激活层
🤖 Claude Agent 调用证据(hooks 系统记录)

hooks 系统(post_tool.sh)在每次 Claude Agent 的工具调用前后追加时间戳到 progress.md。以下是典型任务 T-004 的 hooks 记录:

[11:57] 红中1号 - 红中1号-cron 已启动 ← 红中启动监督 cron [1774497486] PreTool: Read ← Agent 读 brief.md [1774497486] PreTool: Read ← Agent 读 COMMON-RULES.md [1774497487] PostTool: Read ← 读取完成 [1774497493] PostTool: Read ← 读取完成 [1774497523] PreTool: Write ← Agent 写 plan.md(关键动作) [1774497525] PostTool: Write ← plan.md 写入完成 [1774497533] Stop: 任务结束 ← Agent 退出 [11:59] 红中1号 - plan.md 已写完 ← 红中确认 [11:59] 🛑 end-task.py — breakpoint, stopped ← 断点拦截 + 清理

T-009(写工作日报)的 Agent 还展现了更复杂的行为模式:额外执行了 4 次 Bash 命令(可能是查询 git log 等),说明 Agent 按照 plan 需要主动获取信息。

验证清单

断点系统核心功能

debug_gate.py 代码级拦截
不依赖 AI 自觉,Python 代码直接判断 breakpoint 状态并 sys.exit(1)
断点配置热更新
修改 debug-config.json 的 breakpoint 字段后立刻生效,无需重启
Debug 报告自动生成
每次拦截生成 tasks/debug/DEBUG-YYYYMMDD-HHmmss.md,记录拦截点和上下文

任务生命周期管理

end-task.py 统一清理
5 步:disable cron → 更新 task-index → 清理 .alert-count → 追加 progress → 发 TG
监督 cron 正确启停
红中启动时创建,通过 supervisor-cron-id.txt 记录 ID,end-task.py 按 ID disable
task-index.json 状态正确
status="stopped",close_reason="breakpoint",closed_at 时间戳正确
TG 通知正常发送
每次断点拦截和清理都发送了 Telegram 通知

架构合规验证

骰子不参与实际工作
骰子只调用 new-task.py,之后完全不参与。红中通过独立 isolated session 运行
红中不自己写文件
plan.md 由 claude --print 调用的 Claude Agent 写入,红中只做编排
接力棒传递机制
骰子 →[cron]→ 红中1号,每棒通过 cron 独立激活,不在同一个 session

发现的问题

⚠️
多任务并行时 cron 激活偶发失败
T-012 的激活 cron 创建成功但未触发。同批次的 T-011 正常。可能是平台并发限制或 cron 调度竞争
⚠️
激活失败时监督 cron 残留
T-012 红中未启动但监督 cron 被创建(在 payload 中创建),导致 cron 持续空跑。需 Heartbeat 或手动清理
🧹 end-task.py 清理记录
任务reasonstatuscron 关闭方式触发者
T-004breakpointstopped按名字模式搜索红中1号自动
T-005breakpointstopped按名字模式搜索红中1号自动
T-006breakpointstopped按名字模式搜索红中1号自动
T-007breakpointstopped按名字模式搜索红中1号自动
T-008breakpointstopped按 ID(1a79ae17-...)红中1号自动
T-009breakpointstopped按名字模式搜索红中1号自动
T-010breakpointstopped按名字模式搜索红中1号自动
T-011breakpointstopped按名字模式搜索红中1号自动
T-012errorstalled按 ID(e48750b0-...)手动(Will)
🏗️ Debug 断点在流程中的位置
骰子 ── new-task.py ──▶ 创建任务 + 激活 cron │ ┌─── 15秒后 cron 触发 ───┐ ▼ │ 红中N号 (isolated session) │ │ │ ├── Step 1: 启动监督 cron │ ├── Step 2: 读收件箱 + brief │ ├── Step 3: 更新 status │ ├── Step 4: claude --print ← Claude Agent 写 plan.md │ └── Read brief │ └── Read COMMON-RULES │ └── Write plan.md │ └── Stop │ ├── Step 5: debug_gate("hong-zhong-handoff") │ └── 🛑 breakpoint = true → 拦截! │ ├── end-task.py --reason breakpoint --status stopped │ ├── [1/5] disable 监督 cron │ ├── [2/5] update task-index.json │ ├── [3/5] clean .alert-count │ ├── [4/5] append progress.md │ └── [5/5] send TG │ └── 下线(白板 cron 未创建) ┄┄┄ 以下步骤被断点阻止 ┄┄┄ Step 6: 写白板收件箱 Step 7: 创建白板 cron → 白板审核 → 红中2号 → 执行Soul
💡 关键发现与进化方向
1. 代码级拦截比 prompt 指令可靠 100 倍
debug_gate.py 是 Python 代码级判断,不依赖 AI 自觉。对比骰子职责演变报告中的 R1-R6(prompt 规则 0-77% 遵守率),代码级拦截实现了 100% 拦截率。
2. 三层分离得到验证
骰子(指挥层)只调用 new-task.py → 红中(统筹层)只做编排+调 Agent → Claude Agent(执行层)写文件。三层职责完全没有交叉。
3. hooks 系统是可靠的调试探针
post_tool.sh 的 PreTool/PostTool 时间戳精确记录了 Claude Agent 的每一步操作,是验证"谁在什么时候做了什么"的关键证据链。
4. 并行任务的 cron 激活需要加固
T-012 暴露的问题:同时创建多个激活 cron 时可能出现调度竞争。建议增加激活重试机制或在 Heartbeat 中检测 pending 超时任务并重新激活。
5. 监督 cron 的创建时机需要优化
当前监督 cron 在红中 payload 的第一步就创建。如果红中 session 启动失败,监督 cron 会空跑。可考虑将监督 cron 创建延后到 plan.md 写完之后。
🧪 测试覆盖的任务类型
类型示例归属Soul测试数结果
信息查询查询天气(上海/北京)东风33/3 ✅
代码编写写Python快速排序脚本东风11/1 ✅
知识学习学习Docker基础知识发财11/1 ✅
架构分析分析集群架构改进空间南风11/1 ✅
文档撰写写今日工作日报东风21/2 ⚠️
信息搜索搜索AI领域新闻发财11/1 ✅