
JefferyandClaude Opus 5
9512293dc9
fix(role): 修好睡眠整理死鎖 —— 素材不再硬切、批次降為 4、錯誤訊息可診斷
角色整晚沒睡:05:03 到 08:33 每 10 分鐘試一次,連續 22 次全部失敗,
last_sleep 停在前一天 15:02,inbox 從 12 累積到 23 則。
錯誤訊息只有一句「整理結果無法套用」,看不出任何原因。
診斷過程中推論錯了三次,過程留在註解裡(每一次都很容易再犯):
1. 推論「輸出被 SLEEP_OUTPUT_LIMIT 截斷」→ 實測輸出僅 5772~6224,遠未達 8000。錯。
2. 推論「素材字元數過大」→ 實測素材 8815(6 則)失敗、8940(3 則)成功,
字元數幾乎相同。錯。
3. 推論「純粹是則數問題」→ 對一半:另有一種失敗是 CLI 回傳 Execution error。
真相是兩種失敗混在一起,而錯誤訊息把它們蓋成同一句話:
- CLI 偶發 Execution error → 需要重試
- 一次要求模型輸出太多筆 JSON → 需要降批
修正:
- 錯誤訊息附上素材大小、輸出長度、批次與輸出前 200 字元(已 redact)
—— 這是最先做的一步,沒有它只能靠猜
- cmdCollect 不再 slice() 硬切素材:改為逐則累加、超出預算留到下批,
並替 EXISTING 保留固定比例預算。舊版會切在記憶中間、甚至切掉整個 EXISTING 區塊,
而批次固定時每輪都收到同樣殘缺的素材 → 死鎖
- SLEEP_BATCH 12 → 4(實測 3~4 則穩定、6 則以上開始失敗)
- 失敗時逐次降批(4→2→1)作為保險,仍失敗才留到下個週期
- 批次預設值統一來源:role_sleep.sh 首次收集不傳 --batch,實際則數由素材反推
—— 原本兩邊各寫一個預設,改了 memory.js 的 SLEEP_BATCH 卻不會生效
實測:修正後第一次嘗試即成功,未觸發降批;連續整理清空 inbox(23 → 0),
情緒型態記憶由 1 增至 9,關係史累積 13 則。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 10:22:23 +08:00
..
2026-07-29 09:12:15 +08:00
2026-07-30 10:22:23 +08:00
2026-07-29 13:38:25 +08:00
2026-07-29 18:16:18 +08:00
2026-07-29 18:43:23 +08:00
2026-07-29 13:38:25 +08:00
2026-07-29 13:38:25 +08:00
2026-07-30 10:22:23 +08:00
2026-07-29 13:38:25 +08:00
2026-07-29 09:05:22 +08:00