OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  async-task:执行长时间运行的任务以避免 HTTP 超时问题

async-task:执行长时间运行的任务以避免 HTTP 超时问题

 
  framework ·  2026-02-05 07:17:47 · 3 次点击  · 0 条评论  

OpenClaw 异步任务

概述

执行长时间运行的任务,避免 HTTP 超时。适用于以下场景:
- 运行可能超过 5 秒的命令
- 分析大型文件或代码库
- 执行多步骤操作
- 调用延迟不确定的外部 API

重要提示:当任务可能超时时,必须使用此技能,以避免出现“服务器无响应”错误。

触发词:"async task", "long running", "timeout", "background task", "push result"

安装

# 克隆并全局链接
git clone https://github.com/Enderfga/openclaw-async-task.git
cd openclaw-async-task
npm link

# 或直接复制 async-task.js 到 PATH 路径
chmod +x async-task.js
cp async-task.js /usr/local/bin/async-task

命令

async-task start "<描述>"  # 启动任务,立即返回
async-task done "<结果>"   # 完成任务,推送结果给用户
async-task fail "<错误>"   # 任务失败,推送错误信息
async-task push "<消息>"   # 直接推送消息(无需先启动)
async-task status          # 显示当前任务状态

使用流程(必须严格遵守)

  1. 启动async-task start "正在扫描文件..."
  2. 执行:运行实际的命令
  3. 推送结果async-task done "找到 42 个文件"

示例

用户提问:“统计这个项目中所有的 TypeScript 文件”

# 步骤 1:立即响应
async-task start "正在统计 TypeScript 文件..."

# 步骤 2:执行实际工作
count=$(find . -name "*.ts" | wc -l)

# 步骤 3:推送结果
async-task done "找到 $count 个 TypeScript 文件"

工作原理

  1. start 命令保存任务状态并立即返回确认。
  2. 执行所需的任何命令。
  3. done/fail 命令使用 OpenClaw/Clawdbot CLI 将结果推送到当前活动会话。

无需配置——通过 openclaw sessionsclawdbot sessions 自动检测活动会话。

高级用法:自定义推送端点

适用于自定义 Web 聊天或通知系统:

export ASYNC_TASK_PUSH_URL="https://your-server.com/api/push"
export ASYNC_TASK_AUTH_TOKEN="your-token"

端点接收的数据格式:

{
  "sessionId": "session-id",
  "content": "message",
  "role": "assistant"
}

环境变量

变量名 是否必需 描述
OPENCLAW_SESSION 目标会话(自动检测)
ASYNC_TASK_PUSH_URL 自定义 HTTP 推送端点
ASYNC_TASK_AUTH_TOKEN 自定义端点的认证令牌

要求

  • Node.js 16 或更高版本
  • 已安装 OpenClaw 或 Clawdbot CLI

关键规则

  • 必须startdonefail 配对使用。
  • 切勿启动任务后不完成。
  • 切勿说“稍后推送”然后忘记。

相关链接

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor