task-verification.md
2.32 KB
微信任务完成度验证
检查助手在微信里回复「已处理」的任务,是否真的完成了,还是卡住了/失败了。
典型场景
用户问:「他回复了要处理,但下一步结果你检查一下是不是真的处理完成了,还是卡住了。」
验证步骤
1. 确定账号和对话对象
import config, wechat_db
config.ACCOUNTS = config.discover_accounts()
config.set_current_account_id('653cdc2320abb089e149a3f7a7683fcf') # 小伙子账号
# 从 rcontact 查找对方 wxid
rows = wechat_db.query(
"SELECT username, nickname, alias FROM rcontact "
"WHERE nickname LIKE '%火星人%' OR username = 'yibooo' LIMIT 10"
)
2. 读取最近对话
SELECT msgId, type, isSend, content, createTime
FROM message
WHERE talker = 'yibooo' AND type = 1
ORDER BY createTime DESC
LIMIT 50
isSend=0 是对方发来的;isSend=1 是助手(小伙子)发的。
3. 区分三种状态
| 状态 | 消息特征 | 下一步 |
|---|---|---|
| 已完成 | 助手发了结果报告,后续无失败/重试 | 抽查实际系统状态确认 |
| 卡住了 | 助手说「在处理」「搞完给你报告」,但后面没有成功报告 | 检查实际配置/数据库/API |
| 已失败 | 助手明确说失败原因(如 empty_draft、403、timeout) |
分析根因,决定重试或人工介入 |
4. 交叉验证
根据消息里提到的任务,检查实际系统状态:
- 改 API key → 检查
.bashrc、.profile、config.yaml的custom_providers是否写了完整 key,并直接调一次 API 测试 - 写飞书表 → 检查对应表是否真的有记录
- 改代码 → 检查 git diff 或服务是否重启
- 建 cron job → 检查
cronjob list和实际运行日志
常见卡住根因
- 配置被截断/省略(如
sk-95e...348a而不是完整 key) - 助手调了 API 但返回失败,没有重试
- 环境变量或权限问题导致任务未真正执行
- 系统对 secrets 做 masking,写入时完整 key 被替换
- 任务依赖 Plan Agent 但任务没通过 Sprint 审核
输出结论
不要只回报「他说处理了」。要给出:
- 他实际做了什么
- 结果是什么(成功/失败/卡住)
- 证据(消息原文、API 响应、配置文件状态)
- 如果没完成,根因是什么
- 下一步建议