飞书消息自动处理与进度反馈技能。安装后后台运行,监听飞书任务消息并自动创建独立进程处理。 在处理前后发送实时进度反馈(任务确认、进度百分比、完成通知)。 支持任务类型识别、智能解析、错误重试、并发控制、状态持久化。 使用场景:飞书自动化工作流、任务进度追踪、批量任务处理、需要实时反馈的场景。
---
name: feishu-process-feedback
description: |
飞书消息自动处理与进度反馈技能。安装后后台运行,监听飞书任务消息并自动创建独立进程处理。
在处理前后发送实时进度反馈(任务确认、进度百分比、完成通知)。
支持任务类型识别、智能解析、错误重试、并发控制、状态持久化。
使用场景:飞书自动化工作流、任务进度追踪、批量任务处理、需要实时反馈的场景。
---
# 飞书进程反馈技能
实时任务处理进度反馈系统,为飞书任务提供完整的状态追踪。
## 核心功能
### 1. 自动后台监听
- 持续运行,轮询监听飞书新消息
- 智能识别任务消息(关键词:帮我、处理、创建、生成、分析等)
- 状态持久化,重启后继续处理
### 2. 即时确认反馈
- 收到任务后 5 秒内回复确认消息
- 包含任务 ID、类型识别、子任务数量
- 显示当前队列状态
### 3. 进度实时追踪
- 每个子任务处理前后发送进度更新
- 百分比格式(33%、66%、100%)
- 支持成功/失败状态标记
### 4. 进程隔离管理
- 每个任务独立 Node.js 进程
- 并发控制(默认最多 5 个并发)
- 超时自动终止(默认 5 分钟)
- 优雅关闭处理
### 5. 错误容错处理
- 自动重试机制(默认 3 次)
- 错误日志记录
- 失败任务标记通知
## 工作流程
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 飞书消息 │ → │ 任务识别 │ → │ 创建进程 │
└─────────────┘ └─────────────┘ └─────────────┘
↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 完成通知 │ ← │ 进度反馈 │ ← │ 发送确认 │
└─────────────┘ └─────────────┘ └─────────────┘
```
## 安装方式
### 本地安装
```bash
# 克隆或复制技能到本地
git clone <repo-url> ~/.openclaw/skills/feishu-process-feedback
# 或使用 clawhub(发布后)
clawhub install feishu-process-feedback
```
### 启动服务
```bash
cd ~/.openclaw/skills/feishu-process-feedback
node scripts/listener.js
```
### 后台运行(推荐)
```bash
# 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 |
示例:
```bash
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 信号:
```bash
# 发送终止信号
kill -SIGTERM <pid>
# 或 Ctrl+C(前台运行时)
```
关闭时会:
1. 停止接收新任务
2. 等待当前任务完成(最多 30 秒)
3. 保存状态
4. 发送通知消息
## 扩展开发
### 添加自定义任务处理器
编辑 `scripts/process_task.js` 中的 `executeSubtask()` 函数:
```javascript
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:
```javascript
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();
}
```
## 故障排查
### 监听器未启动
```bash
# 检查 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 社区
don't have the plugin yet? install it then click "run inline in claude" again.