Token导航 LogoToken导航TokenDH.com
效率需要联网clawhub未标认证来源可访问clear审计提醒

longtask-system长任务系统

Agent Skill

longtask-system 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

14,829

周安装

637

GitHub Stars

1

下载量

5,198
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:longtask-system(长任务系统)
来源仓库:https://github.com/noah-1106/longtask-system
安装命令:
openclaw skills install longtask-system
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install longtask-system

简介

状态文件驱动的长任务管理器将任务拆分为顺序子任务,支持多代理协作和实时可视化监控。

SKILL.md

name
longtask_system
version
1.2.0
description
|

LongTask System - 长程任务执行管理

核心原则:保持自动化运行。任一环节断链(Agent 离线、CLI 失败等)都会打断自动化流程并标记任务失败。为此引入 Agent Inbox 作为 fallback 机制,支持原子级进度记录和崩溃后重启续做。

解决长任务执行中的"睡着"、跳步、上下文丢失问题。

核心机制

daemon.sh ──▶ task_state.json ──▶ Agent 执行 ──▶ complete_step.sh ──▶ 下一任务
   ▲                                                    │
   └────────────────── 状态更新 ────────────────────────┘
  1. daemon.sh 每15秒检查任务状态
  2. 发现 pending 子任务 → 标记为 doing → 通知 Agent(CLI 或 inbox)
  3. Agent 执行任务 → 调用 complete_step.sh 标记完成
  4. daemon 触发下一任务

文件结构

longtask_system/
├── daemon.sh          # 守护进程
├── notify_agent.sh    # 通知 Agent(CLI/inbox 双模式)
├── consume_inbox.sh   # Agent 读取并删除 inbox 任务
├── complete_step.sh   # 标记任务完成
├── cockpit_renderer.py # 可视化驾驶舱生成器 (Cockpit Visualizer) ⭐ NEW
├── agents.json        # Agent 配置
├── agent_inbox.json   # 消息收件箱(CLI 失败时备用)
├── task_template.json # 任务模板
├── tasks/             # 任务文件目录
└── longtask_log/      # 日志目录

快速开始

1. 配置 Agent

编辑 agents.json

{
  "agents": [
    {"agent_id": "bibi", "agent_name": "笔笔"},
    {"agent_id": "tutu", "agent_name": "图图"}
  ]
}

2. 创建任务

cp task_template.json tasks/my_task.json
# 编辑:定义 steps 数组,指定 agent_id

3. 启动守护进程

# 方案1: screen(推荐,跨平台,可恢复查看)
screen -d -m -S longtask bash daemon.sh my_task

# 方案2: setsid(Linux 环境)
setsid bash daemon.sh my_task > longtask_log/daemon.log 2>&1 &

# 或前台调试
./daemon.sh my_task

注意:OpenClaw 等 Agent 框架在 session 结束时会清理子进程,必须使用 screensetsid 确保 daemon 不被杀掉。

4. Agent 消费任务

方式1:CLI 直接通知(正常流程)

  • Agent 收到消息 → 执行任务
  • 回调时必须使用任务标识(文件名)./complete_step.sh 任务名 step_id success

方式2:Inbox 消费(崩溃恢复/CLI 失败)

# 读取并删除自己的 pending 任务(原子操作)
TASK_JSON=$(./consume_inbox.sh bibi)

if [ -n "$TASK_JSON" ]; then
    # 解析任务信息
    TASK_NAME=$(echo "$TASK_JSON" | jq -r '.task_name')
    STEP_ID=$(echo "$TASK_JSON" | jq -r '.step_id')
    
    # 执行任务...
    
    # 标记完成
    ./complete_step.sh "$TASK_NAME" "$STEP_ID" success
fi

关键consume_inbox.sh读取即删除,防止重复消费。

任务定义

{
  "task_id": "batch_writing_20260313",
  "description": "批量写作15篇文章",
  "status": "running",
  "total_steps": 15,
  "agent_id": "bibi",
  "session_name": "main",
  "max_retry": 0,
  "steps": [
    {
      "id": 1,
      "name": "文章1:伊朗警告美国科技公司",
      "status": "pending",
      "params": {"topic": "...", "fingerprint": "..."}
    }
  ]
}

关键字段

字段说明默认
agent_id执行 Agent-
session_nameSession 名称main
max_retry单步骤失败重试次数0(不重试)
global_retry全局自动复苏次数(离线恢复用)0(最多3次)
steps[].statuspending/doing/done/failed-

状态流转

子任务: pending ──▶ doing ──▶ done
                    │
                    ▼ (超时或失败)
                  failed ──▶ pending (重试,若 retry < max_retry)
                    │
                    ▼ (重试用尽)
                  任务标记 failed,daemon 退出

超时doing 状态默认 5分钟 超时(环境变量 TIMEOUT 可调)。

断点续传:重启任务时(status 改回 running):

  • done → 跳过
  • failed → 重置 retry_count 为 0,重新尝试
  • pending → 执行

多 Agent 协作

Session ID 格式:agent:{agent_id}:{session_name}

示例:agent:bibi:mainagent:tutu:main

在任务中指定 agent_id 即可分配给不同 Agent。

关键设计

1. 原子写入

jq '...' state.json > tmp.json && mv tmp.json state.json

2. 防重复消费

  • CLI 成功:直接送达 Agent
  • CLI 失败:写入 inbox,Agent 用 consume_inbox.sh 读取即删除

3. Fail-Stop 闭环(任务复苏)

CLI 投递失败时的处理流程:

1. CLI 失败 → 写入 Inbox → daemon 标记 failed → daemon 自杀
2. Agent 重启 → consume_inbox.sh → 执行任务 → complete_step.sh
3. 自动复苏:子任务成功时,若全局状态为 failed,自动重置为 pending
4. 重启 daemon → 继续执行

防重保护notify_agent.sh 写入 Inbox 前检查是否已存在相同任务,避免重复投递。

全局重试上限global_retry 字段记录自动复苏次数,超过 3 次不再自动重置,需手动检查。

调试

tail -f longtask_log/daemon.log              # 全局守护进程日志
tail -f longtask_log/task_任务名.log         # 单个任务的独立日志
tail -f longtask_log/trigger.log             # 任务触发日志
cat agent_inbox.json | jq                    # 检查 inbox
cat tasks/任务名.json | jq                   # 检查任务状态

🎨 Cockpit 可视化驾驶舱 / Visual Cockpit ⭐ NEW

实时监控任务执行状态的可视化界面。

功能特性 | Features

  • 🐕 萌宠主题 - Pet Workshop 可爱风格,缓解等待焦虑
  • 🔄 实时刷新 - 每 3 秒自动更新状态
  • 📊 进度可视化 - 果酱流动效果进度条
  • 🎭 状态动画 - 不同状态对应不同小动物动画:

- 🐱 done - 猫咪满意 - 🐕 doing - 小狗挖土(摇摆动画) - 💤 pending - 小猫睡觉(呼吸动画) - 👻 failed - 小鬼出现

自动生成

Cockpit 会在以下情况自动生成/更新:

  • 任务状态变更时(daemon 自动触发)
  • 手动运行: python3 cockpit_renderer.py tasks/任务名.json

查看驾驶舱

# 生成后打开浏览器查看
open tasks/cockpit.html

截图预览 / Screenshot

See preview in GitHub README


注意事项

  1. 不要手动修改 doing 状态的任务
  2. 默认不重试max_retry 默认为 0,失败即停
  3. 超时时间:默认 5分钟,可通过环境变量 TIMEOUT 调整
  4. daemon 自动退出:状态文件超过 20 分钟未更新时退出

更新日志

  • v1.2 (2026-03-17)

- 新增 cockpit_renderer.py 可视化驾驶舱,萌宠主题设计 - 修复 daemon 在 OpenClaw 环境下被 session 杀掉的问题(使用 screen/setsid) - 优化 agent_id 读取逻辑,支持 step 级别覆盖 - 优化驾驶舱 Agent 显示,正确显示 step 级 agent_id

  • v1.1 (2026-03-13)

- 新增 consume_inbox.sh,实现读取即删除 - 新增多 Agent 支持 - 新增 agents.json 配置

  • v1.0 (2026-03-12)

- 初始版本

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

70.42%
按下载量换算3,660

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills