From 06d7e79268896c95a10f8161f16f2193f1b1c43c Mon Sep 17 00:00:00 2001
From: TevinClaw <510129976@qq.com>
Date: Mon, 16 Mar 2026 09:20:03 +0800
Subject: [PATCH] 重新安装飞书SDK,改用 @openclaw/feishu
---
openclaw.json | 27 ++++---------
workspace/.learnings/LEARNINGS.md | 51 +++++++++++++++++++++++++
2 files changed, 60 insertions(+), 18 deletions(-)
diff --git a/openclaw.json b/openclaw.json
index 925f8db..3ce4a53 100644
--- a/openclaw.json
+++ b/openclaw.json
@@ -152,11 +152,17 @@
]
}
},
- "connectionMode": "websocket",
"domain": "feishu",
+ "connectionMode": "websocket",
+ "streaming": true,
"timeout": 2000,
"idempotent": true,
- "sessionMode": "per-chat"
+ "sessionMode": "per-chat",
+ "requireMention": true,
+ "footer": {
+ "elapsed": true,
+ "status": true
+ }
}
},
"gateway": {
@@ -197,27 +203,12 @@
],
"load": {
"paths": [
- "/home/tevin/.nvm/versions/node/v24.14.0/lib/node_modules/@m1heng-clawd/feishu"
+ "/home/tevin/.nvm/versions/node/v24.14.0/lib/node_modules/@openclaw/feishu"
]
},
"entries": {
"feishu": {
"enabled": true
- }
- },
- "installs": {
- "feishu": {
- "source": "npm",
- "spec": "@m1heng-clawd/feishu",
- "installPath": "/home/tevin/.nvm/versions/node/v24.14.0/lib/node_modules/@m1heng-clawd/feishu",
- "version": "0.1.17",
- "resolvedName": "@m1heng-clawd/feishu",
- "resolvedVersion": "0.1.17",
- "resolvedSpec": "@m1heng-clawd/feishu@0.1.17",
- "integrity": "sha512-6BMqvndOXvWvGzMJEQQdp3vX1jidaIXrwwlz6Q8F5gC+yzcuHmNqIaAxXsrVOj7jaEAtznFjGmPWZ97sGc2eRw==",
- "shasum": "4e33e4c0cef6593da0b9e40f96d9310adc5bf6ab",
- "resolvedAt": "2026-03-15T03:57:41.889Z",
- "installedAt": "2026-03-15T03:58:15.894Z"
}
}
}
diff --git a/workspace/.learnings/LEARNINGS.md b/workspace/.learnings/LEARNINGS.md
index 6db62ac..0f96a3d 100644
--- a/workspace/.learnings/LEARNINGS.md
+++ b/workspace/.learnings/LEARNINGS.md
@@ -3,3 +3,54 @@
记录学习、改进和最佳实践。
---
+
+## [LRN-20260316-001] best_practice
+
+**Logged**: 2026-03-16T07:20:00+08:00
+**Priority**: high
+**Status**: resolved
+**Area**: infra
+
+### Summary
+飞书 Webhook 超时导致消息重复投递问题及解决方案
+
+### Details
+**问题现象:**
+- 收到用户未主动发送的消息(05:40 消息在 06:23 再次出现)
+- 消息内容完全一致但消息ID不同(`om_x100b545876a2ed34c3d91545d8feb5f` vs 新ID)
+- 触发对话意外延续
+
+**根因分析:**
+飞书事件订阅规则要求 **3秒内必须返回HTTP 200**,否则触发重试:
+- 重试间隔:15秒 → 5分钟 → 1小时 → 6小时(最多4次)
+- 由于超时未响应,飞书服务器重复投递了消息
+
+**解决方案:**
+修改 `openclaw.json` 配置:
+```json
+"feishu": {
+ "connectionMode": "websocket", // 使用长连接替代HTTP webhook
+ "timeout": 2000, // 响应超时<3000ms
+ "idempotent": true, // 开启幂等去重
+ "sessionMode": "per-chat" // 按会话隔离
+}
+```
+
+### Suggested Action
+1. 监控网关响应时间,确保<3000ms
+2. 优先使用 websocket 连接模式
+3. 开启幂等性配置自动过滤重复 event_id
+4. 识别重复消息特征:相同内容、不同消息ID、间隔符合重试规则
+
+### Metadata
+- Source: user_feedback
+- Related Files: ~/.openclaw/openclaw.json
+- Tags: feishu, webhook, timeout, retry, websocket
+- Pattern-Key: infra.feishu_webhook_timeout
+
+### Resolution
+- **Resolved**: 2026-03-16T07:20:00+08:00
+- **Action**: 已更新 openclaw.json 配置,用户已重启网关
+- **Notes**: 配置已添加 websocket 模式、2000ms超时、幂等去重、per-chat会话隔离
+
+---
--
Gitblit v1.9.1