Task Assessor

Other

任务难度与成本评估技能。当用户要求评估任务复杂度、所需时间、消耗成本或需要什么技能时激活。触发词包括"评估任务"、"难度分析"、"成本估算"、"需要多久"、"需要什么技能"、"任务规划"。**重要:自动检测任务难度,L3及以上在执行前必须先报告并确认。**

Install

openclaw skills install task-assessor

Task Assessor v2.0

概述

当用户提出任务需求时,快速评估任务的难度等级预估耗时资源消耗,并给出清晰的结构化评估报告


模块一:意图澄清拦截(新增)

触发条件

所有用户指令进入执行引擎前,先经过本模块检测。

满足以下任一条件时触发澄清:

条件类型示例
缺少必要参数"查股价"(缺股票代码)
动词模糊"处理文件"(打开/压缩/统计?)
范围过大"整理所有文件"(无数量/类型)
隐含假设"清空回收站"(回收站/邮箱?)
多义性名词"发出去"(邮件/飞书/微信?)

不触发情况:

  • 指令清晰、无歧义
  • 历史对话中已有同类任务的默认习惯(见记忆型澄清)

漏洞检测流程

用户指令
    ↓
调用大模型分析
    ↓
输出漏洞列表 [{field, type, options, question}]
    ↓
有漏洞? → 是 → 生成结构化问卷
    ↓ 否      ↓
直接执行    发送问卷 → 等待回复 → 补全参数 → 执行

漏洞数据结构

每个漏洞包含:

字段说明示例
field缺失的字段名stock_code
type数据类型string/number/enum/date
options枚举可选值(type=enum时)["技术面","基本面","资金面"]
question提问的自然语言"请选择分析角度"

问卷生成规则

  • 每个问题给出 2~5 个选项(用 A、B、C 标注)
  • 支持混合形式:选择题 + 填空
  • 格式示例:
请补充以下信息(回复序号+答案,如"1→600519,2→B"):
1️⃣ 股票代码:______
2️⃣ 分析角度:
 A. 技术面
 B. 基本面
 C. 全维度
3️⃣ 时间范围:
 A. 近1周
 B. 近1月
 C. 近3月

暂存与回复处理

  • 原始指令 + 问卷结构保存到会话缓存
  • 有效期:10分钟
  • 超时后自动放弃,用户需重新发起
  • 解析用户回复:1→600519,2→B 或自然语言 股票600519,技术面
  • 补全参数后重新提交,跳过本技能再次拦截

记忆型澄清(v2.0新增)

存储位置: ~/.openclaw/data/intent-clarifier/prefs.json

规则:

  • 同一任务类型连续3次相同选择 → 设为默认值
  • 下次同类任务不再询问该字段
  • 用户可回复"重新设置"覆盖

示例: 用户三次选择"技术面 + 近1月"分析股票 → 第四次说"分析茅台" → 直接执行"茅台技术面近1月分析"

主动建议模式(v2.0新增)

当漏洞 ≥ 2 个时,直接生成 2~3 个完整任务计划供选择:

看起来你想整理下载文件夹,我有两个方案:
方案A:按文件类型分类(图片、文档、压缩包)到不同文件夹
方案B:删除30天未使用的大文件,其余按日期归档
回复 A 或 B,或继续细化。

风险拦截二次确认(v2.0新增)

高风险操作(删除文件、批量发送、修改系统配置)执行前二次确认:

⚠️ 确认执行:删除 C:\temp\ 下的所有文件(共23个)
回复 CONFIRM 确认,或 CANCEL 取消。

风险白名单:references/risk-whitelist.md

撤回机制

用户可回复:

  • r / 重新来 → 重置当前澄清流程
  • 取消 → 放弃当前任务

模块二:难度评估(原有,保留)

任务复杂度等级

等级标识说明典型场景
L1🟢 简单单次操作,5分钟内完成查天气、读文件、发消息
L2🟡 普通需要几步操作,5-30分钟批量重命名、分析单只股票
L3🟠 复杂多步骤或需要判断,30分钟-2小时制作报告、分析多个标的
L4🔴 困难大量数据处理或跨系统操作,2小时以上全量年报整理、多平台同步
L5⚫ 极高需要持续维护或未知领域探索全新系统搭建、未知技术调研

评估维度

每个任务从以下4个维度评估:
1. 数据规模 — 多少数据量?(条数、文件数、涉及实体数)
2. 操作复杂度 — 多少步骤?是否有分支判断?
3. 依赖技能 — 需要哪些skill或工具?
4. 时间消耗 — 大概多久?(初估 → 细估)

评估流程

Step 1: 理解任务本质

  • 用户想要什么最终结果?
  • 现有技能能不能覆盖?
  • 需要多少数据处理?

Step 2: 确定复杂度等级

数据量 < 100条 → L1-L2
数据量 100-1000条 → L2-L3
数据量 > 1000条 → L3-L4

多步骤(>3步) → +1级
涉及外部API/跨系统 → +1级
需要判断/决策 → +1级

Step 3: 估算时间与成本

复杂度时间估算Token消耗
L1<5分钟<10k
L25-30分钟10k-50k
L330分钟-2小时50k-200k
L42-8小时200k-500k
L58小时以上>500k

Step 4: 输出评估报告

## 📋 任务评估报告

**任务:** [简述]
**复杂度:** L[X] [等级名称]

### 规模数据
- 数据量:
- 涉及范围:

### 难度分析
[分析难点在哪里]

### 预估耗时
- 初估:[时间]
- 细估:[时间]

### 资源消耗
- Token估算:[X]k-[X]k
- 成本估算:$X.XX

### 所需技能
- 已有:
- 需要补充:

### 执行建议
[是否建议分批、如何优化]

### ⚠️ 风险提示
[可能的卡点或问题]

执行前检查(⚠️ 重要)

用户发布任务
     ↓
意图澄清拦截(检测漏洞)
     ↓
有漏洞? → 是 → 发送问卷 → 等待补全
     ↓ 否
评估任务难度等级
     ↓
判断等级
┌─────────────────────────┐
│ L1 或 L2                │
│ → 直接执行              │
└─────────────────────────┘
     ↓
┌─────────────────────────┐
│ L3、L4 或 L5            │
│ → 先输出评估报告        │
│ → 然后询问确认          │
└─────────────────────────┘

快速查表

用户需求默认等级典型耗时
"帮我查天气"L1<1分钟
"帮我分析贵州茅台"L25-15分钟
"帮我做个PPT"L330-60分钟
"整理所有A股年报"L5数天-数周
"给我解释这个概念"L1<5分钟
"帮我写个方案"L330-120分钟

特殊规则

当数据规模不明确时

"初估L3,但需要确认:你说的'所有数据'大概是多少条?"

当任务涉及多个子任务时

"这个任务可以拆成3个子任务:
① 数据清洗(L2)
② 格式转换(L3)
③ 报告生成(L2)
整体难度:L3,耗时约1小时"

当用户要求"顺便做一下"时

"这个'顺便'其实涉及:X步骤、Y数据量,可能比主任务还复杂"

缓存管理

意图澄清缓存

  • 路径: ~/.openclaw/data/intent-clarifier/cache.json
  • 结构:
{
  "sessionId": "xxx",
  "originalIntent": "分析茅台",
  "vulnerabilities": [...],
  "createdAt": 1716564000000,
  "expiresAt": 1716564600000
}
  • 超时: 10分钟(600秒)
  • 清理:scripts/intent-clarifier-cache.js 管理

用户偏好缓存

  • 路径: ~/.openclaw/data/intent-clarifier/prefs.json
  • 结构:
{
  "user": {
    "stock_analysis": {
      "角度": { "value": "技术面", "count": 3 },
      "时间范围": { "value": "近1月", "count": 3 }
    }
  }
}

参考资料

  • 评估方法论 → references/assessment-methodology.md
  • 评估报告模板 → references/assessment-template.md
  • 任务基准数据 → references/task-benchmarks.md
  • 意图检测逻辑 → references/intent-detection-logic.md
  • 回复解析规则 → references/response-parser.md
  • 风险白名单 → references/risk-whitelist.md