📦 Task Detection + Proactive Thinking — 任务异常检测与主动分析
v1.0.0自动扫描任务文件,检测停滞、阻塞、逾期、重复等异常任务,生成多步分析报告和解决方案,尝试自动修复并记录到内存文件中。
0· 91·0 当前·0 累计
安全扫描
OpenClaw
可疑
medium confidence该技能的行为大体符合任务扫描工具的特征,但存在多个不一致和风险选择(硬编码的工作区路径、未声明的飞书集成、写入agent内存),建议安装前进行审查。
评估建议
该技能基本符合其描述(扫描任务文件并写入日志),但建议安装前谨慎考虑:
- 审查并修复硬编码的WORKSPACE路径:scripts/detect.js 使用 '/Users/openclaw/.openclaw/workspace'。请将其改为可配置路径(环境变量或相对路径),以免意外读取/写入意外主目录中的文件。
- 确认飞书行为:README/SKILL.md 提到推送告警到飞书,但脚本仅记录占位符。如需启用飞书告警,需要提供明确的环境变量(FEISHU_TOKEN/APP_ID等)并审计任何新增的网络代码的端点和权限范围。
- 首先检查并沙箱运行:在沙箱环境(或工作区副本)中运行脚本,验证其仅读取预期的 HEARTBEAT.md/WORKING.md 并在指定位置写入 task-alert.md/thinking-log.md。
- 如不希望持久写入,修改脚本写入安全位置或禁用写入。脚本会创建 memory/hot 目录并在无提示情况下写入日志。
- 如期望自动修复功能,注意当前代码中该功能极少/仅为占位符;不要依赖它自动更改上游任务。如需生成补丁使 WORKSPACE 可配置...详细分析 ▾
⚠ 用途与能力
该技能的声明用途(扫描 HEARTBEAT.md/WORKING.md、检测异常、建议修复)与包含的脚本一致,脚本读取任务文件并写入检测日志。然而,脚本使用硬编码的绝对 WORKSPACE 路径('/Users/openclaw/.openclaw/workspace')而非相对路径或环境变量;这既脆弱又异常。写入agent内存文件夹(memory/hot、memory/warm)符合任务技能的特征,但硬编码的用户路径意味着它仅在特定路径上正确运行,并可能意外读取用户主目录中的文件。
⚠ 指令范围
SKILL.md 指示agent读取 HEARTBEAT.md 和 WORKING.md 并通过飞书推送严重告警。分发的代码实现了文件读写和日志生成,这符合预期。然而,SKILL.md 承诺飞书推送和与 'ClawMemory'/'三层内存' 的集成,但代码仅包含飞书的控制台占位符(未实现网络调用)且未声明或使用飞书凭证。'auto-fix'(自动修复)行为被宣传为尝试修复,但 tryAutoFix 函数实际上是一个空操作(除了对告警进行分类外从不执行操作),因此文档中描述的行为与代码中的行为存在差异。
✓ 安装机制
无安装规范 — 仅指令型技能附带脚本。安装期间未从远程源下载或执行任何内容,这降低了安装程序风险。
⚠ 凭证需求
SKILL.md 和 README 提到通过飞书推送告警以及与 memory/ClawMemory 的集成,但包元数据不需要环境变量或凭证。如果启用飞书通知或外部集成,通常需要凭证(令牌/API密钥);requires.env 中缺少这些是一个不一致之处,可能导致静默失败,或导致维护者后续添加期望凭证的网络代码。此外,代码写入agent内存目录时未请求明确的权限/配置。
ℹ 持久化与权限
always:false 且未请求特殊权限。脚本确实在工作区内存目录(memory/hot、memory/warm)下创建和写入文件 — 这对于此类技能是预期的,但值得注意的是:它会将检测结果和思考日志持久化到agent工作区内的磁盘。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/3/24
- 初始版本:自动化任务异常检测和主动解决方案生成。 - 扫描 HEARTBEAT.md 和 WORKING.md 以识别停滞、阻塞、逾期、重复及其他异常任务。 - 为每个异常生成多步分析报告和最多3个解决方案选项,并在可能的情况下尝试自动修复。 - 将检测结果和思考日志输出到结构化内存文件;通过飞书发送严重告警。 - 支持多种触发模式:心跳触发、定时扫描和手动命令。 - 灵活配置检测频率、阈值、自动修复尝试次数和告警选项。
● 无害
安装命令
点击复制官方npx clawhub@latest install task-detection-thinking
镜像加速npx clawhub@latest install task-detection-thinking --registry https://cn.longxiaskill.com
技能文档
自动检测任务异常,智能分析原因,并主动提出解决方案
触发条件
| 场景 | 触发方式 |
|---|---|
| 自动触发 | 在心跳检测期间执行 |
| 手动触发 | 用户输入 "check tasks"、"task status"、"anomaly detection" |
| 定时触发 | 每6小时自动扫描 |
任务管理文件标准
HEARTBEAT.md - 全局任务看板模板
## Global Task BoardTaskID Task Name Status Progress Deadline Last Update Block Reason T001 Initialize three-layer memory Done 100% 2026-03-10 2026-03-10 None T002 Integrate vector retrieval Active 60% 2026-03-15 2026-03-12 Waiting for API key T003 Test proactive thinking Waiting 0% 2026-03-20 2026-03-11 Depends on T002
状态定义:
| 状态 | 含义 |
|---|---|
| Queue | 等待开始 |
| Active | 进行中 |
| Waiting | 阻塞/等待 |
| Done | 已完成 |
| Aborted | 已取消 |
WORKING.md - 项目级任务规则
所有子任务必须包含:
- 状态:Queue/Active/Waiting/Done
- 进度:百分比 (0-100%)
- 负责人:责任人
- 依赖:此任务依赖的任务ID
自动检测规则:
- 活跃任务停滞 >24h → 自动标记为 "Abnormal" 🔴
- 阻塞任务必须填写:"Block Reason" + "Support Needed"
- 每日 23:00 → 自动汇总到 HEARTBEAT.md
检测规则(自动执行)
1. 扫描 HEARTBEAT.md
| 检测项 | 条件 | 标记 |
|---|---|---|
| 停滞任务 | 活跃状态 + 最后更新 > 24h | 🔴 Stalled |
| 待确认 | 等待状态 + 阻塞原因为空 | 🟡 Pending |
| 逾期任务 | 进度 < 100% + 截止时间 < 当前时间 | 🔴 Overdue |
| 无进展任务 | 活跃状态 + 0% 进度 > 48h | 🟡 No progress |
| 异常任务 | 活跃 + 无更新 > 24h | 🔴 Abnormal |
2. 扫描 WORKING.md
| 检测项 | 条件 | 标记 |
|---|---|---|
| 依赖阻塞 | 下游被未完成的上游阻塞 | 🔗 Dependency block |
| 重复任务 | 任务名称/内容相似度 > 80% | ⚠️ Duplicate |
| 僵尸任务 | 完成状态但无完成时间 | 👻 Zombie |
| 无意义任务 | 标题为空或内容 < 10 字符 | 🗑️ To clean |
| 缺少必填字段 | 无状态/进度/负责人 | ⚠️ Incomplete |
主动思考逻辑
对于「停滞任务」
分析步骤:
- 检查最后更新内容 → 确定停滞类型
- 扫描相关记忆 → 查找上下文
- 生成3个推进解决方案
自动尝试(无需人工):
- 补充缺失信息(从记忆中提取)
- 重试失败的接口/命令
- 如需要将任务状态更新为 Waiting
需要人工干预:
- 生成详细提醒,通过飞书推送
对于「阻塞任务」
分析步骤:
- 识别阻塞类型(资源/依赖/决策/外部)
- 确定是否可自动解决
- 将解决方案记录到 warm memory
自动解决场景:
- 依赖任务完成 → 自动解除阻塞
- 资源现已可用 → 自动重试
- 信息已补充 → 自动推进
对于「逾期任务」
分析步骤:
- 评估剩余工作量
- 确定延迟影响
- 生成调整计划
自动调整:
- 将截止时间更新为合理值
- 调整下游任务计划
- 标记为高优先级
输出规则
| 输出类型 | 位置 | 触发条件 |
|---|---|---|
| 检测结果 | memory/hot/task-alert.md | 每次检测后 |
| 思考结论 | memory/hot/thinking-log.md | 每次分析后 |
| 严重告警 | 飞书推送 | 逾期/严重阻塞 |
| 解决方案 | memory/warm/lessons_learned.md | 解决后记录 |
使用示例
# 手动触发检测 node skills/task-detection-thinking/scripts/detect.js# 查看检测结果 cat memory/hot/task-alert.md
# 查看思考日志 cat memory/hot/thinking-log.md
配置参数
task_detection: # 检测频率 heartbeat_check: true # 心跳期间检测 cron_schedule: "0 /6 " # 每6小时# 阈值设置 stale_threshold_hours: 24 # 停滞阈值 overdue_check: true # 检查逾期 dependency_check: true # 检查依赖链
# 自动修复 auto_fix_enabled: true # 启用自动修复 auto_fix_max_attempts: 3 # 最大自动尝试次数
# 通知设置 feishu_alert: true # 严重告警推送 alert_on_overdue: true # 逾期告警 alert_on_blocking: true # 严重阻塞告警
工作流程
心跳触发 / 定时触发 / 手动触发
↓
扫描 HEARTBEAT.md + WORKING.md
↓
识别异常任务(停滞/阻塞/逾期/重复)
↓
分析原因(上下文 + 历史记忆)
↓
生成解决方案(3个选项)
↓
尝试自动修复(无需人工的解决方案)
↓
写入检测结果 + 思考日志
↓
推送严重告警到飞书
与现有系统的集成
- HEARTBEAT.md - 读取全局任务看板
- WORKING.md - 读取子任务详情
- 三层记忆系统 - 存储检测结果和思考日志
- ClawMemory - 查询历史解决方案
- 飞书 - 推送严重告警
将任务管理从被动响应转变为主动预防