重新安装飞书SDK,改用 @openclaw/feishu
| | |
| | | ] |
| | | } |
| | | }, |
| | | "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": { |
| | |
| | | ], |
| | | "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" |
| | | } |
| | | } |
| | | } |
| | |
| | | 记录学习、改进和最佳实践。 |
| | | |
| | | --- |
| | | |
| | | ## [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会话隔离 |
| | | |
| | | --- |