Install
openclaw skills install feishu-process-feedback飞书消息自动处理与进度反馈技能。安装后后台运行,监听飞书任务消息并自动创建独立进程处理。 在处理前后发送实时进度反馈(任务确认、进度百分比、完成通知)。 支持任务类型识别、智能解析、错误重试、并发控制、状态持久化。 使用场景:飞书自动化工作流、任务进度追踪、批量任务处理、需要实时反馈的场景。
openclaw skills install feishu-process-feedback实时任务处理进度反馈系统,为飞书任务提供完整的状态追踪。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 飞书消息 │ → │ 任务识别 │ → │ 创建进程 │
└─────────────┘ └─────────────┘ └─────────────┘
↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 完成通知 │ ← │ 进度反馈 │ ← │ 发送确认 │
└─────────────┘ └─────────────┘ └─────────────┘
# 克隆或复制技能到本地
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(前台运行时)
关闭时会:
编辑 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);
}
// ...
}
在 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
.listener.log 错误信息openclaw message send --channel feishu --message "test"export FEISHU_PROCESS_TIMEOUT=600000export FEISHU_MAX_CONCURRENT=3export FEISHU_VERBOSE=trueMIT License
Carl Zhao
遇到问题?
.listener.log 和 .tasks.log