结构化任务规划与分步执行(Structured Task Planning)。支持两种模式:(1) 文件模式 - 从 Markdown 任务文档加载步骤执行;(2) 自然语言模式 - 接受自然语言任务描述,自动生成计划书并确认后执行。触发词:/stp、任务规划、步骤执行。功能包括:步骤分解、状态跟踪、执行日志记录、快速失败策略。
Scanned 2/12/2026
Install via CLI
openskills install openclaw/skills---
name: stp
description: 结构化任务规划与分步执行(Structured Task Planning)。支持两种模式:(1) 文件模式 - 从 Markdown 任务文档加载步骤执行;(2) 自然语言模式 - 接受自然语言任务描述,自动生成计划书并确认后执行。触发词:/stp、任务规划、步骤执行。功能包括:步骤分解、状态跟踪、执行日志记录、快速失败策略。
---
# STP(Structured Task Planning)结构化任务规划与分步执行
## 功能概述
1. **任务解析**:从 Markdown 任务文档加载步骤
2. **目录管理**:自动创建任务专属目录(格式:`task-{ID}`)
3. **文档生成**:生成标准化步骤文档和执行日志
4. **状态跟踪**:支持步骤状态标记(待执行/成功/失败)
5. **智能执行**:每个步骤作为子任务执行,附带成功判断标准
6. **快速失败**:步骤失败立即终止,不尝试替代方案
7. **完整日志**:所有 exec 命令和 AI 执行过程完整记录
---
## 两种使用模式
### 模式 A:文件模式(原有)
用户提供写好的任务文档路径:
```
/stp /path/to/task.md
```
### 模式 B:自然语言模式(新增)
用户用自然语言描述任务:
```
/stp 我想查一下腾讯、贵州茅台、Meta 的股票价格
```
---
## 模式 B:自然语言任务规划流程
当用户输入的不是 `.md` 文件路径,而是自然语言描述时,执行以下流程:
### 第一步:任务分析与计划生成
1. **理解用户意图**:分析自然语言,明确任务目标
2. **拆解执行步骤**:将任务分解为可执行的具体步骤
3. **生成计划书**:按标准格式生成 Markdown 任务文档
### 第二步:确认循环
1. **展示计划书**:将生成的计划书完整展示给用户
2. **询问确认**:
```
📋 任务计划书已生成,请确认:
- 输入 "ok" 或 "确认" → 开始执行
- 输入修改意见 → 我会调整计划后重新展示
- 输入 "取消" → 放弃此任务
```
3. **修改循环**:如果用户有修改意见,调整计划书后重新展示,直到用户确认
### 第三步:保存并执行
1. **生成文件名**:基于任务内容生成简短文件名(如 `stock-query.md`)
2. **保存位置**:`~/.openclaw/workspace/task-list/<filename>.md`
3. **开始执行**:按原有 STP 流程执行任务
### 计划书标准格式
```markdown
# 任务名称
## 任务描述
用户原始需求的简要描述
## 技术方案
- 使用的工具/库/API
- 关键技术约束
## 核心执行步骤
- [ ] 步骤 1:具体描述(含成功标准)
- [ ] 步骤 2:具体描述(含成功标准)
- [ ] 步骤 3:具体描述(含成功标准)
## 预期产出
- 输出文件/结果说明
```
### 示例流程
**用户输入**:
```
/stp 我想查一下腾讯、贵州茅台、Meta 的股票价格
```
**Agent 生成计划书**:
```markdown
# 三支股票收盘价查询
## 任务描述
查询腾讯控股、贵州茅台、Meta 三支股票的最新收盘价
## 技术方案
- 使用 AkShare 库查询股票数据
- 支持 A股(沪深)、港股、美股三个市场
## 核心执行步骤
- [ ] 步骤 1:编写基于 AkShare 的股票查询脚本,保存至 `temp/scripts/stock_query.py`
- [ ] 步骤 2:查询贵州茅台(600519.SH)收盘价
- [ ] 步骤 3:查询腾讯控股(00700.HK)收盘价
- [ ] 步骤 4:查询 Meta(META.O)收盘价
## 预期产出
- 三支股票的收盘价信息(股票名称、代码、日期、价格、市场)
```
**Agent 询问**:
```
📋 任务计划书已生成,请确认:
- 输入 "ok" 或 "确认" → 开始执行
- 输入修改意见 → 我会调整计划后重新展示
- 输入 "取消" → 放弃此任务
```
**用户确认后**:
- 保存到 `~/.openclaw/workspace/task-list/stock-query-20260207.md`
- 开始执行 STP 任务流程
---
## Agent 执行规范(重要!)
执行每个步骤时,**必须**记录关键命令和输出:
### 方法:步骤完成后补记执行日志
1. **执行步骤时**:正常用 `exec` tool 执行命令
2. **步骤完成后**:把关键命令和输出写入临时文件,然后用 `--exec-file` 记录
```bash
# 1. 先把执行记录写入临时文件
cat > /tmp/step_exec.log << 'EOF'
[命令1] python3 -c "import akshare; print(akshare.__version__)"
[输出1] AkShare version: 1.18.22
[退出码] 0
[命令2] python3 stock_query.py 600519.SH
[输出2] 贵州茅台 收盘价: 1515.01
[退出码] 0
EOF
# 2. 记录步骤状态时附带执行日志
python3 execute_task.py --log task-8 1 success "脚本执行成功" --exec-file /tmp/step_exec.log
```
### 执行日志格式建议
```
[命令] <执行的完整命令>
[输出] <命令输出(可截断关键部分)>
[退出码] <0=成功, 非0=失败>
```
---
## 模式 A:文件模式使用方式
### 步骤1:准备 Markdown 任务文档
```markdown
# 任务名称
## 核心执行步骤
- [ ] 步骤 1:具体描述
- [ ] 步骤 2:具体描述
- [ ] 步骤 3:具体描述
```
### 步骤2:生成任务目录和步骤文档
```bash
python3 ~/.openclaw/workspace/skills/stp/scripts/execute_task.py --task-file /path/to/task.md
```
**任务目录命名规则**:`task-{自增ID}`
- 使用 `.task_counter` 计数器文件记录自增ID
- 目录示例:`task-1/`、`task-2/`、`task-3/`
### 步骤3:查看生成的文档
任务目录结构:
```
tasks/
└── task-XXX/
├── task_steps.md # 步骤文档(含状态标记和成功标准)
├── task_execution.log # 完整执行日志(含所有exec命令)
├── result.txt # 结果汇总
└── temp/
├── scripts/
└── downloads/
```
### 步骤4:执行步骤并更新状态
主 Agent 读取 `task_steps.md`,逐个执行步骤,然后更新状态标记:
- `[ ]` → `✓`(执行成功)
- `[ ]` → `✗`(执行失败)
---
## 状态标记
| 标记 | 含义 |
|------|------|
| `[ ]` | 待执行 |
| `✓` | 执行成功 |
| `✗` | 执行失败(任务终止) |
## 执行规则(重要!)
### 1. 原方案优先原则
**必须严格按照任务文档中定义的方案执行,禁止擅自更改实现方式。**
示例:
```
❌ 错误做法:原方案要求用 AkShare,实际改用新浪 API
✅ 正确做法:严格使用 AkShare,遇到问题按失败处理
```
### 2. 快速失败策略
**原则**:一步到位,不做替代方案尝试
- 子任务返回「失败」状态 → 立即终止整个任务链
- 不自动重试、不尝试其他实现方式
- 记录失败原因到日志
### 3. 失败处理
- 方案执行失败 → 立即终止,不尝试替代方案
- 明确记录失败原因(违反方案/技术限制/接口问题)
- 任务结果标记为 FAILED
---
## 资源
### scripts/
- `execute_task.py` - 主脚本
- 解析任务文档并生成步骤文件
- 管理 `.task_counter` 自增ID
- 支持 `--subtask` 模式:生成子任务 prompt
- 支持 `--exec-file` 参数:附带执行日志
- 自动记录 exec 命令到日志
### task-list/
- 存放自然语言模式生成的任务计划书
- 文件命名格式:`<简短描述>-<日期>.md`
> **注意**:`stp` 是 `structured-task-planning` 的缩写。
No comments yet. Be the first to comment!