
⚠️ 踩坑警告:飞书端读到的内容比电脑端少?这是我实际遇到的问题。电脑端和飞书端读的是同一个USER.md文件,但飞书端显示的内容明显不全,后半部分任务直接消失了。根本原因不是文件读取问题,而是飞书消息API有长度限制——飞书机器人单条消息有字符上限(富文本约30KB,纯文本更短)。OpenClaw确实读到了完整内容,模型也生成了完整回复,但回复发回飞书时被截断了。判断方法:如果每次都是后面的任务看不到,前面的正常,基本就是这个原因。解决方案见下文「五、常见问题」中的消息截断处理。
操作 | 电脑网页端 | 飞书端 |
|---|---|---|
查看任务 | ✅ | ✅(只读) |
新增/修改任务 | ✅(task-onboarder) | ❌ |
执行任务 | ✅ | ✅(简单任务) |
复杂操作 | ✅ | ❌ |
~/.openclaw/workspace/USER.md# USER.md - About Your Human## 常规任务清单| 序号 | 任务 | 频率 | 对应技能 | 技能路径 | 说明 ||------|------|------|----------|----------|------|| 1 | 定时清理电脑 | 每日 9:30 | `daily-cleanup` | `skills/daily-cleanup/` | 清理系统缓存... || 2 | ... | ... | ... | ... | ... |## 技能使用速查| 任务 | 触发指令 ||------|----------|| 添加新闻 | "添加新闻" + 新闻内容 || 记录对话 | "保存对话" |## 技能详细说明### 1. daily-cleanup...# ~/.openclaw/config.yamlchannels: feishu: enabled: true user_md: enabled: true path: "~/.openclaw/workspace/USER.md" commands: - "查看任务" - "我的任务" - "有什么技能" - "帮助"skills: feishu-user-md: enabled: true read_user_md: refresh_interval: "5min" format: show_scheduled: true show_manual: true show_triggers: true max_tasks: 20# skills/feishu-user-md/feishu_user_md.pydef read_user_md(): """读取USER.md并解析任务清单""" with open(os.path.expanduser('~/.openclaw/workspace/USER.md'), 'r') as f: content = f.read() tasks = parse_task_table(content) return format_for_feishu(tasks)def format_for_feishu(tasks): """格式化为飞书消息""" message = "📋 您的任务清单\n\n" message += "【定时自动化】\n" for task in tasks['scheduled']: message += f"• {task['time']} {task['name']}\n" message += "\n【手动任务】\n" for task in tasks['manual']: message += f"• {task['name']} - {task['trigger']}\n" message += "\n💡 直接发送任务关键词即可触发" return messagetask-onboarder一键完成所有操作:输入:任务名称 + 频率 + 描述 ↓自动完成: ✓ 更新USER.md任务清单(自动分配序号) ✓ 更新技能使用速查表 ✓ 更新技能详细说明章节 ✓ 创建技能文件夹 + 生成SKILL.md模板 ↓飞书端立即可见# 自然语言用户:新增任务:每周生成数据报告# 或脚本调用node ~/.openclaw/workspace/skills/task-onboarder/scripts/task-onboarder.js add '{ "name": "每周数据报告", "skillName": "weekly-report-gen", "frequency": "每周", "description": "自动生成运营数据报告", "triggerCommand": "生成数据报告", "features": ["数据汇总", "图表生成", "飞书推送"]}'task-onboarder/├── SKILL.md└── scripts/ └── task-onboarder.js ├── toSkillName() # 名称转换 ├── getNextTaskNumber() # 获取序号 ├── updateUserMdTaskList() # 更新任务清单 ├── updateUserMdQuickRef() # 更新速查表 ├── updateUserMdSkillDetail() # 更新说明 ├── generateSkillMd() # 生成SKILL.md └── createSkillFolder() # 创建文件夹用户(飞书):查看任务OpenClaw:📋 您的任务清单(共10项)【定时自动化】• 0:00 对话记录自动归档• 9:00 Token日报生成 • 9:30 系统清理执行【手动任务】• 添加新闻 - 说"添加新闻"• 记录对话 - 说"保存对话"• 修改周报 - 说"更新周报"• 撰写新闻 - 说"写新闻"• 撰写SEO文章 - 说"写SEO文章"• Mac日历创建 - 说"明天9点开会"• 任务接入自动化 - 说"新增任务"💡 提示:直接发送任务关键词即可触发【电脑端】用户:新增任务:每周一生成数据报告 OpenClaw:✅ 任务接入完成!USER.md已更新(序号11)【飞书端】用户:查看任务 OpenClaw:📋 您的任务清单(共11项) ...• 每周一生成数据报告 - 说"生成数据报告"用户(飞书):添加新闻OpenClaw:📝 请提供新闻内容用户(飞书):[粘贴新闻内容]OpenClaw:✅ 已添加10条新闻到157-3.6.md~/.openclaw/workspace/USER.md,但飞书端只显示前面几个任务,后面的任务"消失"了。~/.openclaw/config.yaml 中配置消息分段发送:channels: feishu: message: max_length: 2000 # 单条消息最大字符数 split_long_messages: true # 超长消息自动拆分为多条发送⚠️ 注意:这个配置项是否生效取决于你的OpenClaw版本是否支持。如果加了配置没效果,另一个思路是精简USER.md本身——把"技能详细说明"从USER.md中移出去,放到各自的SKILL.md里,USER.md只保留任务清单和速查表,控制总长度。
问题 | 解决方案 |
|---|---|
飞书端看不到新任务 | 缓存未刷新,执行 openclaw cache clear --skill=feishu-user-md 或飞书发送"刷新任务" |
网页端频繁断连 | 启用会话持久化: session.persistence: true,storage: sqlite,ttl: 7d |
# 每周检查USER.md完整性openclaw user-md verify# 每月清理过期任务openclaw user-md cleanup --dry-run# 备份cp ~/.openclaw/workspace/USER.md ~/Documents/备份/USER.md.$(date +%Y%m%d)实施前 | 实施后 |
|---|---|
飞书端不知道有哪些任务 | 一键查看全部任务 |
每次需要重复说明需求 | 直接发送关键词触发 |
双端信息不一致 | USER.md统一维护,自动同步 |
飞书端使用率低 | 成为有效的辅助入口 |