任务难度与成本评估技能。当用户要求评估任务复杂度、所需时间、消耗成本或需要什么技能时激活。触发词包括"评估任务"、"难度分析"、"成本估算"、"需要多久"、"需要什么技能"、"任务规划"。**重要:自动检测任务难度,L3及以上在执行前必须先报告并确认。**
---
name: task-assessor
description: 任务难度与成本评估技能。当用户要求评估任务复杂度、所需时间、消耗成本或需要什么技能时激活。触发词包括"评估任务"、"难度分析"、"成本估算"、"需要多久"、"需要什么技能"、"任务规划"。**重要:自动检测任务难度,L3及以上在执行前必须先报告并确认。**
---
# 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 |
| L2 | 5-30分钟 | 10k-50k |
| L3 | 30分钟-2小时 | 50k-200k |
| L4 | 2-8小时 | 200k-500k |
| L5 | 8小时以上 | >500k |
**Step 4: 输出评估报告**
```
## 📋 任务评估报告
**任务:** [简述]
**复杂度:** L[X] [等级名称]
### 规模数据
- 数据量:
- 涉及范围:
### 难度分析
[分析难点在哪里]
### 预估耗时
- 初估:[时间]
- 细估:[时间]
### 资源消耗
- Token估算:[X]k-[X]k
- 成本估算:$X.XX
### 所需技能
- 已有:
- 需要补充:
### 执行建议
[是否建议分批、如何优化]
### ⚠️ 风险提示
[可能的卡点或问题]
```
### 执行前检查(⚠️ 重要)
```
用户发布任务
↓
意图澄清拦截(检测漏洞)
↓
有漏洞? → 是 → 发送问卷 → 等待补全
↓ 否
评估任务难度等级
↓
判断等级
┌─────────────────────────┐
│ L1 或 L2 │
│ → 直接执行 │
└─────────────────────────┘
↓
┌─────────────────────────┐
│ L3、L4 或 L5 │
│ → 先输出评估报告 │
│ → 然后询问确认 │
└─────────────────────────┘
```
---
## 快速查表
| 用户需求 | 默认等级 | 典型耗时 |
|---------|---------|---------|
| "帮我查天气" | L1 | <1分钟 |
| "帮我分析贵州茅台" | L2 | 5-15分钟 |
| "帮我做个PPT" | L3 | 30-60分钟 |
| "整理所有A股年报" | L5 | 数天-数周 |
| "给我解释这个概念" | L1 | <5分钟 |
| "帮我写个方案" | L3 | 30-120分钟 |
---
## 特殊规则
### 当数据规模不明确时
```
"初估L3,但需要确认:你说的'所有数据'大概是多少条?"
```
### 当任务涉及多个子任务时
```
"这个任务可以拆成3个子任务:
① 数据清洗(L2)
② 格式转换(L3)
③ 报告生成(L2)
整体难度:L3,耗时约1小时"
```
### 当用户要求"顺便做一下"时
```
"这个'顺便'其实涉及:X步骤、Y数据量,可能比主任务还复杂"
```
---
## 缓存管理
### 意图澄清缓存
- **路径:** `~/.openclaw/data/intent-clarifier/cache.json`
- **结构:**
```json
{
"sessionId": "xxx",
"originalIntent": "分析茅台",
"vulnerabilities": [...],
"createdAt": 1716564000000,
"expiresAt": 1716564600000
}
```
- **超时:** 10分钟(600秒)
- **清理:** 由 `scripts/intent-clarifier-cache.js` 管理
### 用户偏好缓存
- **路径:** `~/.openclaw/data/intent-clarifier/prefs.json`
- **结构:**
```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`don't have the plugin yet? install it then click "run inline in claude" again.