执行长时间运行的任务,避免 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 # 显示当前任务状态
async-task start "正在扫描文件..."async-task done "找到 42 个文件"用户提问:“统计这个项目中所有的 TypeScript 文件”
# 步骤 1:立即响应
async-task start "正在统计 TypeScript 文件..."
# 步骤 2:执行实际工作
count=$(find . -name "*.ts" | wc -l)
# 步骤 3:推送结果
async-task done "找到 $count 个 TypeScript 文件"
start 命令保存任务状态并立即返回确认。done/fail 命令使用 OpenClaw/Clawdbot CLI 将结果推送到当前活动会话。无需配置——通过 openclaw sessions 或 clawdbot 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 |
否 | 自定义端点的认证令牌 |
start 与 done 或 fail 配对使用。