| name | feishu-cold-start |
| description | 项目管理冷启动。当机器人首次或重新加入群聊时,拉取历史消息、建立群记忆、生成初始项目总结。触发词:冷启动、初始化项目、读取历史记录、生成初始总结、项目上下文初始化。 |
| metadata | {"openclaw":{"emoji":"🚀","requires":{"config":["channels.feishu"]}}} |
项目管理冷启动
当机器人被添加到一个新群聊(或重新加入之前被移除的群聊)时,执行冷启动流程:拉取历史消息、导入数据库、生成群记忆、创建初始项目总结。
触发场景
- 自动触发:收到
[系统通知] 机器人首次加入群聊 或 [系统通知] 机器人重新加入群聊 的消息
- 手动触发:用户在群聊中要求"冷启动"、"初始化项目"、"读取历史记录"、"生成初始总结"
完整冷启动流程(首次入群)
步骤 1:通知群聊冷启动开始
在群里发一条消息告知群成员,避免大家疑惑机器人在做什么:
{
"name": "feishu_send_message",
"arguments": {
"chat_id": "oc_xxx",
"text": "🚀 正在初始化项目上下文,将读取历史记录并生成项目总结,请稍候..."
}
}
步骤 2:拉取全部历史消息并导入数据库
{
"name": "feishu_get_chat_history",
"arguments": {
"chat_id": "oc_xxx",
"fetch_all": true,
"sort_order": "asc",
"save_to_db": true
}
}
关键参数:
fetch_all: true — 拉取全部消息(最多 5000 条)
sort_order: "asc" — 按时间正序,确保消息入库顺序正确
save_to_db: true — 将消息批量导入 messages 表
工具会返回导入统计(如"已导入 X 条新消息到数据库"),据此判断后续处理量。
步骤 3:读取未优化消息
{
"name": "feishu_group_memory",
"arguments": {
"action": "read",
"chat_id": "oc_xxx",
"include_unoptimized": true
}
}
步骤 4:分批生成记忆摘要
对未优化消息生成摘要,每批约 100 条。摘要应包含:
- 关键讨论主题和决策
- 重要的任务分配和进度
- 项目里程碑和时间节点
- 团队成员的角色和职责
{
"name": "feishu_group_memory",
"arguments": {
"action": "update",
"chat_id": "oc_xxx",
"summary": "## 项目初始化摘要 (冷启动)\n\n### 讨论主题\n- ...\n\n### 关键决策\n- ...\n\n### 任务分配\n- ...\n\n### 进度节点\n- ..."
}
}
如果消息量很大(>500 条),应分多次更新记忆,每次处理 ~100 条未优化消息,按时间段切分:
- 读取最早的 100 条未优化消息
- 生成该时段摘要并更新记忆
- 重复直到所有消息都被优化
步骤 5:生成初始项目总结
{
"name": "feishu_project_summary",
"arguments": {
"chat_id": "oc_xxx"
}
}
步骤 6(可选):关联任务清单
查找是否有可关联的任务清单:
{
"name": "feishu_tasklist",
"arguments": {
"action": "list"
}
}
如果发现相关清单,可建议用户关联。
步骤 7:通知群聊冷启动完成
将项目总结发送到群里,标记冷启动完成:
{
"name": "feishu_send_message",
"arguments": {
"chat_id": "oc_xxx",
"text": "✅ 项目上下文初始化完成!\n\n{项目总结内容}\n\n如需进一步了解或调整,请随时 @我。"
}
}
重新入群冷启动流程
当系统通知包含"重新加入"且提供了 start_time 时,仅补齐空窗期:
步骤 1:通知群聊
{
"name": "feishu_send_message",
"arguments": {
"chat_id": "oc_xxx",
"text": "👋 我回来了!正在补齐离开期间的消息记录..."
}
}
步骤 2:拉取空窗期消息
使用系统通知中提供的 start_time 只拉取缺失的消息:
{
"name": "feishu_get_chat_history",
"arguments": {
"chat_id": "oc_xxx",
"fetch_all": true,
"sort_order": "asc",
"save_to_db": true,
"start_time": "从系统通知中获取的时间戳"
}
}
步骤 3-7:同完整冷启动
读取记忆 → 更新摘要 → 生成总结 → 通知群聊完成。
注意事项
- 幂等性:冷启动可以安全地多次执行。
ON CONFLICT DO NOTHING 保证消息不重复入库,optimized 标记防止重复生成摘要
- 大群处理:超过 1000 条消息的群,记忆优化必须分批进行,每批 ~100 条,按时间段切分
- 名字解析:
save_to_db=true 时工具会自动预加载群成员名字缓存,无需额外操作
- 历史消息范围:飞书 API 允许获取机器人入群前的消息(前提是群设置允许新成员查看历史消息,大部分群默认开启)
- 后续消息:冷启动完成后,新消息会通过实时事件自动存储到数据库,无需手动干预
- 冷启动通知:一定要先发消息通知群聊再开始拉取操作,让群成员知道机器人在做什么
- 错误恢复:如果冷启动中途失败,可以安全地重新执行(幂等性保证)