← 返回
未分类

任务进度神器

实时任务进度展示与用时统计技能。当用户布置任务给AI助手时,自动显示进度条、用时统计和步骤详情。适用于:1. 多步骤任务执行时 2. 需要实时进度反馈的场景 3. 任务用时统计需求 4. 项目管理与跟踪。触发词:进度条、用时统计、任务进度、实时展示、进度跟踪。
实时任务进度展示与用时统计技能。当用户布置任务给AI助手时,自动显示进度条、用时统计和步骤详情。适用于:1. 多步骤任务执行时 2. 需要实时进度反馈的场景 3. 任务用时统计需求 4. 项目管理与跟踪。触发词:进度条、用时统计、任务进度、实时展示、进度跟踪。
虾海经纪人
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 42
下载
💾 0
安装
1
版本
#latest

概述

Task Progress Tracker - 实时任务进度展示技能

🚀 核心功能

本技能为OpenClaw AI助手提供实时任务进度展示功能,当用户布置任务时自动启用:

  • 📊 动态进度条:显示任务完成百分比
  • ⏱️ 用时统计:记录每个步骤耗时和总用时
  • 状态标记:已完成/进行中/待开始状态
  • 🔔 自动提醒:60秒无进展时发送心跳消息
  • 📈 进度汇报:每步完成后自动推送进度

📋 使用场景

场景1:多步骤任务执行

用户:帮我分析销售数据并生成报告
AI:[████░░░░░░░░░░░░░░] 25%
✅ 步骤1:收集数据 - 已完成 (耗时: 2分钟)
🔄 步骤2:数据清洗 - 进行中 (预估: 3分钟)
⏳ 步骤3:分析趋势 - 待开始
⏳ 步骤4:生成报告 - 待开始

场景2:技能安装与配置

用户:安装并配置一个PDF处理技能
AI:[██████████████████░░] 80%
✅ 步骤1:搜索技能 - 已完成 (耗时: 1分钟)
✅ 步骤2:下载安装 - 已完成 (耗时: 3分钟)
🔄 步骤3:配置设置 - 进行中 (预估: 2分钟)
⏳ 步骤4:测试功能 - 待开始

场景3:文件处理任务

用户:处理这个Excel文件并生成图表
AI:[████████████████████] 100%
✅ 步骤1:读取文件 - 已完成 (耗时: 30秒)
✅ 步骤2:数据清洗 - 已完成 (耗时: 2分钟)
✅ 步骤3:生成图表 - 已完成 (耗时: 3分钟)
✅ 步骤4:保存结果 - 已完成 (耗时: 1分钟)

总用时: 6分30秒 ⏱️

🛠️ 核心脚本

scripts/progress_tracker.py

#!/usr/bin/env python3
"""
实时任务进度跟踪器
自动计算进度百分比、用时统计和状态更新
"""

import time
from datetime import datetime
from typing import List, Dict, Optional

class ProgressTracker:
    """任务进度跟踪器"""
    
    def __init__(self, task_name: str, total_steps: int):
        self.task_name = task_name
        self.total_steps = total_steps
        self.start_time = time.time()
        self.steps = []
        self.current_step = 0
        
    def start_step(self, step_name: str):
        """开始一个新步骤"""
        self.current_step += 1
        step = {
            'name': step_name,
            'start_time': time.time(),
            'end_time': None,
            'duration': None,
            'status': 'in_progress'
        }
        self.steps.append(step)
        return self.get_progress()
    
    def complete_step(self):
        """完成当前步骤"""
        if self.steps:
            current_step = self.steps[-1]
            current_step['end_time'] = time.time()
            current_step['duration'] = current_step['end_time'] - current_step['start_time']
            current_step['status'] = 'completed'
        return self.get_progress()
    
    def get_progress(self) -> Dict:
        """获取当前进度信息"""
        completed = len([s for s in self.steps if s['status'] == 'completed'])
        in_progress = len([s for s in self.steps if s['status'] == 'in_progress'])
        
        progress_percent = int((completed / self.total_steps) * 100) if self.total_steps > 0 else 0
        
        # 生成进度条
        bar_length = 20
        filled = int(bar_length * progress_percent / 100)
        progress_bar = f"[{'█' * filled}{'░' * (bar_length - filled)}]"
        
        # 计算总用时
        total_duration = time.time() - self.start_time
        
        return {
            'task_name': self.task_name,
            'progress_percent': progress_percent,
            'progress_bar': progress_bar,
            'total_steps': self.total_steps,
            'completed_steps': completed,
            'current_step': self.current_step,
            'total_duration': total_duration,
            'steps': self.steps.copy()
        }
    
    def format_progress_message(self) -> str:
        """格式化进度消息"""
        progress = self.get_progress()
        message = f"**进度条: {progress['progress_bar']} {progress['progress_percent']}%**\n\n"
        message += f"任务: {progress['task_name']}\n"
        message += f"总步骤: {progress['total_steps']}步\n\n"
        
        for i, step in enumerate(progress['steps'], 1):
            if step['status'] == 'completed':
                duration = f" (耗时: {int(step['duration'])}秒)" if step['duration'] else ""
                message += f"✅ **步骤{i}: {step['name']}** - 已完成{duration}\n"
            elif step['status'] == 'in_progress':
                message += f"🔄 **步骤{i}: {step['name']}** - 进行中\n"
        
        # 添加待开始步骤
        remaining = progress['total_steps'] - progress['current_step']
        for i in range(remaining):
            step_num = progress['current_step'] + i + 1
            message += f"⏳ **步骤{step_num}: [待定]** - 待开始\n"
        
        if progress['completed_steps'] == progress['total_steps']:
            message += f"\n---\n**总用时: {int(progress['total_duration'])}秒** ⏱️\n"
        
        return message

# 使用示例
if __name__ == "__main__":
    # 创建一个任务跟踪器
    tracker = ProgressTracker("销售数据分析报告", 4)
    
    # 开始并完成步骤
    tracker.start_step("收集销售数据")
    time.sleep(2)  # 模拟任务执行
    tracker.complete_step()
    print(tracker.format_progress_message())
    
    tracker.start_step("数据清洗与整理")
    time.sleep(3)
    tracker.complete_step()
    print(tracker.format_progress_message())
    
    tracker.start_step("生成可视化图表")
    time.sleep(4)
    tracker.complete_step()
    print(tracker.format_progress_message())
    
    tracker.start_step("撰写分析报告")
    time.sleep(2)
    tracker.complete_step()
    print(tracker.format_progress_message())

scripts/quick_progress.sh

#!/bin/bash
# 快速进度条生成脚本

# 参数:当前步骤 总步骤数 步骤名称
CURRENT_STEP=$1
TOTAL_STEPS=$2
STEP_NAME=$3

# 计算百分比
PERCENT=$((CURRENT_STEP * 100 / TOTAL_STEPS))

# 生成进度条
BAR_LENGTH=20
FILLED=$((BAR_LENGTH * PERCENT / 100))
EMPTY=$((BAR_LENGTH - FILLED))

PROGRESS_BAR="["
for ((i=0; i<FILLED; i++)); do
    PROGRESS_BAR+="█"
done
for ((i=0; i<EMPTY; i++)); do
    PROGRESS_BAR+="░"
done
PROGRESS_BAR+="]"

# 输出进度信息
echo "进度条: $PROGRESS_BAR $PERCENT%"
echo "当前步骤 ($CURRENT_STEP/$TOTAL_STEPS): $STEP_NAME"

# 状态标记
if [ $CURRENT_STEP -eq $TOTAL_STEPS ]; then
    echo "状态: ✅ 已完成所有步骤"
elif [ $CURRENT_STEP -eq 0 ]; then
    echo "状态: ⏳ 任务开始"
else
    echo "状态: 🔄 进行中"
fi

📖 使用指南

1. 自动触发

当AI助手执行3步及以上任务时,本技能自动启用,无需手动配置。

2. 进度汇报格式

**进度条: [████████████░░░░░░░░] 60%**

任务: 销售数据分析报告
总步骤: 5步

✅ 步骤1:收集数据 - 已完成 (耗时: 2分钟)
🔄 步骤2:数据清洗 - 进行中 (预估: 3分钟)
⏳ 步骤3:分析趋势 - 待开始
⏳ 步骤4:生成图表 - 待开始
⏳ 步骤5:撰写报告 - 待开始

3. 完成时统计

**进度条: [████████████████████] 100%**

✅ 步骤1:收集数据 - 已完成 (耗时: 2分钟)
✅ 步骤2:数据清洗 - 已完成 (耗时: 3分钟)
✅ 步骤3:分析趋势 - 已完成 (耗时: 4分钟)
✅ 步骤4:生成图表 - 已完成 (耗时: 3分钟)
✅ 步骤5:撰写报告 - 已完成 (耗时: 5分钟)

---
**总用时: 17分钟** ⏱️

4. 心跳提醒

当任务超过60秒无进展时,自动发送:

🔔 仍在执行中,请稍候...
当前进度: [████████░░░░░░░░░░░░] 40%

🎯 最佳实践

步骤划分建议

  • 简单任务:3-4个步骤,每步25-33%
  • 中等任务:4-5个步骤,按工作量分配
  • 复杂任务:5+个步骤,每步10-20%

用时估算

  • 数据收集:1-3分钟
  • 文件处理:2-5分钟
  • 分析计算:3-7分钟
  • 报告生成:2-4分钟

状态标记

  • 已完成:步骤执行完毕,显示实际用时
  • 🔄 进行中:当前正在执行的步骤
  • 待开始:尚未开始的步骤

🔧 集成示例

在AI助手的响应中集成进度跟踪:

# 在任务开始时
tracker = ProgressTracker("用户任务名称", 总步骤数)

# 每步开始时
tracker.start_step("步骤名称")
# 执行任务...

# 每步完成时
tracker.complete_step()
print(tracker.format_progress_message())

# 任务完成时
print(f"**总用时: {int(tracker.get_progress()['total_duration'])}秒** ⏱️")

📊 输出示例

示例1:技能安装

**进度条: [██████████████████░░] 80%**

任务: 安装PDF处理技能
总步骤: 5步

✅ 步骤1:搜索技能库 - 已完成 (耗时: 45秒)
✅ 步骤2:下载技能包 - 已完成 (耗时: 2分钟)
✅ 步骤3:解压文件 - 已完成 (耗时: 30秒)
🔄 步骤4:配置设置 - 进行中
⏳ 步骤5:测试功能 - 待开始

示例2:数据分析

**进度条: [████████████████████] 100%**

任务: 月度销售数据分析
总步骤: 4步

✅ 步骤1:导入数据 - 已完成 (耗时: 1分钟)
✅ 步骤2:数据清洗 - 已完成 (耗时: 3分钟)
✅ 步骤3:计算指标 - 已完成 (耗时: 4分钟)
✅ 步骤4:生成报告 - 已完成 (耗时: 2分钟)

---
**总用时: 10分钟** ⏱️

🚨 注意事项

  1. 进度准确性:百分比基于步骤数,非实际工作量
  2. 用时统计:包含AI思考时间,可能略长于实际执行时间
  3. 自动触发:3步以上任务自动启用,2步以下可手动启用
  4. 心跳间隔:默认60秒,可根据需要调整
  5. 格式兼容:支持所有主流聊天平台(Telegram、Discord、微信等)

本技能让用户随时了解任务执行进度,提升透明度和用户体验!✨

版本历史

共 1 个版本

  • v1.0.0 首发 当前
    2026-05-29 14:37 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

表格处理神器

user_176cb31c
Excel数据处理神器。读取、分析、合并、拆分、格式化Excel/CSV文件,支持批量操作、数据透视、公式计算、图表生成、多表合并、条件筛选、去重、格式转换。当用户需要处理Excel/CSV数据、做数据分析、合并多个表格、筛选特定数据、生成
★ 0 📥 65

视频剪辑神器

user_176cb31c
视频剪辑自动化处理工具。支持本地视频截取、字幕生成(Whisper)、字幕嵌入、视频拼接、格式转换/缩放、添加水印、音频提取/替换、直播切片、JSON工作流编排等功能。适用于录屏后期、直播回放切片、短视频批量处理等场景。
★ 0 📥 164

定制产品追进工作流

user_176cb31c
柔性定制工作流管理系统构建技能。适用于需要为调味品/食品/制造等行业创建一个8阶段工作流管理系统的场景(涵盖客户信息收集→需求挖掘→立项→打样→测试反馈→新品上市→下单→复购的全流程)。此技能提供完整的单页应用HTML模板、数据模型、交互逻
★ 0 📥 55