360 Secure SkillHub
360 安全技能中心

feishu-process-feedback

该技能在后台轮询监听飞书任务消息,按关键词识别 create、analyze、calculate、query 等任务类型,为每个任务创建独立 Node.js 进程并限制并发与超时,处理过程中发送确认、进度百分比、完成或失败反馈,支持错误重试、状态持久化与优雅关闭。具体子任务处理器需自行扩展,消息收发依赖 OpenClaw 飞书通道。

carlzhao007
carlzhao007
热度 38.25
最近更新 2026-05-18 12:18:14
分类:协作依赖:代码执行 / 读写文件 / 第三方 API应用场景:任务管理 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add feishu-process-feedback
Metadata
name
feishu-process-feedback
description
飞书消息自动处理与进度反馈技能。安装后后台运行,监听飞书任务消息并自动创建独立进程处理。 在处理前后发送实时进度反馈(任务确认、进度百分比、完成通知)。 支持任务类型识别、智能解析、错误重试、并发控制、状态持久化。 使用场景:飞书自动化工作流、任务进度追踪、批量任务处理、需要实时反馈的场景。

飞书进程反馈技能

实时任务处理进度反馈系统,为飞书任务提供完整的状态追踪。

核心功能

1. 自动后台监听

  • 持续运行,轮询监听飞书新消息
  • 智能识别任务消息(关键词:帮我、处理、创建、生成、分析等)
  • 状态持久化,重启后继续处理

2. 即时确认反馈

  • 收到任务后 5 秒内回复确认消息
  • 包含任务 ID、类型识别、子任务数量
  • 显示当前队列状态

3. 进度实时追踪

  • 每个子任务处理前后发送进度更新
  • 百分比格式(33%、66%、100%)
  • 支持成功/失败状态标记

4. 进程隔离管理

  • 每个任务独立 Node.js 进程
  • 并发控制(默认最多 5 个并发)
  • 超时自动终止(默认 5 分钟)
  • 优雅关闭处理

5. 错误容错处理

  • 自动重试机制(默认 3 次)
  • 错误日志记录
  • 失败任务标记通知

工作流程

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ 飞书消息    │ →  │ 任务识别    │ →  │ 创建进程    │
└─────────────┘    └─────────────┘    └─────────────┘
                                              ↓
┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ 完成通知    │ ←  │ 进度反馈    │ ←  │ 发送确认    │
└─────────────┘    └─────────────┘    └─────────────┘

安装方式

本地安装

# 克隆或复制技能到本地
git clone <repo-url> ~/.openclaw/skills/feishu-process-feedback

# 或使用 clawhub(发布后)
clawhub install feishu-process-feedback

启动服务

cd ~/.openclaw/skills/feishu-process-feedback
node scripts/listener.js

后台运行(推荐)

# Windows (PowerShell)
Start-Process node -ArgumentList "scripts/listener.js" -WindowStyle Hidden

# Linux/Mac (systemd 或 screen)
screen -dmS feishu-listener node scripts/listener.js

配置选项

通过环境变量配置:

变量名 说明 默认值
FEISHU_POLL_INTERVAL 轮询间隔(毫秒) 5000
FEISHU_MAX_RETRIES 最大重试次数 3
FEISHU_RETRY_DELAY 重试延迟(毫秒) 1000
FEISHU_MAX_CONCURRENT 最大并发进程数 5
FEISHU_PROCESS_TIMEOUT 进程超时(毫秒) 300000
FEISHU_TASK_DELAY 子任务处理延迟(毫秒) 500
FEISHU_VERBOSE 启用详细日志 false

示例:

export FEISHU_POLL_INTERVAL=3000
export FEISHU_MAX_CONCURRENT=10
export FEISHU_VERBOSE=true
node scripts/listener.js

反馈格式

任务确认

📋 任务收到,开始处理...
任务 ID: #1
类型:🛠️ create
共 3 个子任务
主任务:帮我创建一个 Excel 数据表...
当前队列:1 个任务

进度更新

⏳ 进度 33% - 正在处理:设计表格结构...
✅ 完成 33% - 设计表格结构...

完成通知

🎉 任务完成!
任务 ID: #1
状态:全部完成
成功:3 | 失败:0
耗时:2.45 秒
进度:100%

错误处理

⚠️ 失败 66% - 生成报告:API 超时
❌ 任务处理失败
任务 ID: #1
错误:网络连接失败
请联系管理员或重试

任务类型识别

自动识别任务类型并采用相应处理策略:

类型 关键词 图标 处理策略
create 创建、build、create 🛠️ 设计→创建→验证
analyze 分析、analyze 🔍 收集→分析→结论
calculate 计算、calculate 🧮 准备→计算→验证
query 查询、search、find 🔎 构建→搜索→整理
simple 其他 ⚙️ 直接处理

日志文件

技能运行产生以下日志文件:

  • .listener.log - 监听器日志
  • .tasks.log - 任务处理日志
  • .listener_state.json - 状态持久化文件

位置:~/.openclaw/skills/feishu-process-feedback/

状态查看

监听器每 5 分钟自动输出状态:

==================================================
📊 FeishuListener 状态
==================================================
运行时间:2h 15m 30s
活跃进程:2/5
总任务数:47
最后消息:om_xxx
轮询间隔:5000ms
==================================================

优雅关闭

支持 SIGINT/SIGTERM 信号:

# 发送终止信号
kill -SIGTERM <pid>

# 或 Ctrl+C(前台运行时)

关闭时会:

  1. 停止接收新任务
  2. 等待当前任务完成(最多 30 秒)
  3. 保存状态
  4. 发送通知消息

扩展开发

添加自定义任务处理器

编辑 scripts/process_task.js 中的 executeSubtask() 函数:

async function executeSubtask(subtask, index, total) {
  // 根据任务类型调用不同处理器
  if (subtask.includes('Excel')) {
    return await handleExcelTask(subtask);
  } else if (subtask.includes('分析')) {
    return await handleAnalysisTask(subtask);
  }
  // ...
}

集成飞书 API

在 scripts/listener.js 的 getLatestMessage() 中集成飞书开放平台 API:

async function getLatestMessage() {
  const response = await fetch('https://open.feishu.cn/open-apis/im/v1/messages', {
    headers: { 'Authorization': `Bearer ${ACCESS_TOKEN}` }
  });
  return await response.json();
}

故障排查

监听器未启动

# 检查 Node.js 版本
node --version  # 需要 v14+

# 检查依赖
ls -la scripts/

# 手动启动测试
node scripts/listener.js

消息未发送

  1. 检查 OpenClaw 飞书通道配置
  2. 查看 .listener.log 错误信息
  3. 测试手动发送:openclaw message send --channel feishu --message "test"

任务处理超时

  • 增加超时时间:export FEISHU_PROCESS_TIMEOUT=600000
  • 减少并发数:export FEISHU_MAX_CONCURRENT=3
  • 查看详细日志:export FEISHU_VERBOSE=true

依赖

  • Node.js v14+
  • OpenClaw 飞书通道
  • 飞书应用权限(im:message)

版本历史

v1.0.0 (2026-03-10)

  • 初始版本
  • 基础监听和反馈功能
  • 任务类型识别
  • 错误重试机制
  • 状态持久化

许可证

MIT License

作者

Carl Zhao

支持

遇到问题?

  • 查看日志文件:.listener.log 和 .tasks.log
  • 提交 Issue 到项目仓库
  • 联系 OpenClaw 社区