skills/liangdabiao/lark-workflow-feishu-cli/lark-workflow-chat-digest

lark-workflow-chat-digest

Installation
SKILL.md

群消息日报生成器工作流

CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理

适用场景

  • "帮我总结一下今天项目群聊了什么" / "群日报"
  • "生成XX群的周报" / "群消息摘要"
  • "这个群今天有什么重要消息" / "群聊总结"
  • "帮我看看今天群里有没有重要通知" / "今日群消息回顾"
  • "生成本周产品群的讨论摘要"

前置条件

仅支持 user 身份。执行前确保已授权:

lark-cli auth login --domain im
# 如需保存文档,还需:
lark-cli auth login --domain im,docs

工作流

{群名称/群ID + 时间范围}
  ├── im +chat-search ──────────────► 查找群聊(获取 chat_id)
  ├── im +chat-messages-list ───────► 拉取群消息(分页,max 50/页)
  │     └── --start / --end 过滤时间范围
  ├── AI 分析消息 ──────────────────► 提取关键信息
  │     ├── 话题分类
  │     ├── 决策记录
  │     ├── 待办事项
  │     ├── 问题与风险
  │     └── 重要通知
  ├── AI 生成结构化日报 ────────────► Markdown 格式
  ├── [可选] docs +create ──────────► 保存为飞书文档
  └── [可选] im +messages-send ─────► 发送到群聊

Step 1: 查找群聊

如果用户提供了群名称,先获取 chat_id:

lark-cli im +chat-search --query "<群名称>" --as user

从返回结果中提取 chat_idoc_xxx 格式)。如果用户直接提供了 chat_id,跳过此步。

Step 2: 拉取群消息

# 拉取指定时间范围内的消息(按时间倒序,最新在前)
lark-cli im +chat-messages-list \
  --chat-id "<chat_id>" \
  --start "2026-04-09T00:00:00+08:00" \
  --end "2026-04-09T23:59:59+08:00" \
  --page-size "50" \
  --sort "asc" \
  --as user

分页处理

每页最多 50 条消息。如果返回结果中有 has_more: true,用 --page-token 继续拉取:

# 第一页
lark-cli im +chat-messages-list --chat-id "oc_xxx" --start "..." --end "..." --page-size "50" --as user
# 返回 page_token 后,拉取下一页
lark-cli im +chat-messages-list --chat-id "oc_xxx" --start "..." --end "..." --page-size "50" --page-token "<token>" --as user

注意

  • 如果一天的消息量超过 500 条,建议只分析最近 200-300 条以避免超出上下文
  • 过滤掉纯表情回复、系统消息、图片/文件消息(除非用户特别要求)
  • --sort asc 按时间正序排列,便于 AI 理解讨论脉络

Step 3: AI 生成日报

将拉取到的消息交给 AI 分析,按以下结构生成日报:

## {群名} 日报 — {日期}

### 概览
- 消息总数:N 条
- 活跃成员:N 人
- 主要话题:{2-3个关键词}

### 重要决策
| 决策内容 | 提出者 | 时间 |
|---------|--------|------|

### 待办事项
| 事项 | 负责人 | 来源 |
|------|--------|------|

### 话题讨论
#### 1. {话题标题}
- **摘要**:一句话概括
- **参与人**:A、B、C
- **结论**:{如有}

#### 2. {话题标题}
...

### 问题与风险
| 问题描述 | 提出者 | 状态 |
|---------|--------|------|

### 其他通知
- {通知1}
- {通知2}

分析规则:

  • 忽略无意义的闲聊和纯表情消息
  • 重点关注包含决策、待办、问题的消息
  • 保留关键上下文,但去除冗余讨论
  • 如果消息中包含 @某人 的提醒,在待办中标注

Step 4: 输出日报(可选)

发送到群聊

lark-cli im +messages-send \
  --chat-id "<chat_id>" \
  --markdown "{日报内容}" \
  --as bot

发送给个人

lark-cli im +messages-send \
  --user-id "<open_id>" \
  --markdown "{日报内容}" \
  --as bot

保存为文档

lark-cli docs +create \
  --title "{群名} 日报 — {日期}" \
  --markdown "{日报内容}" \
  --as user

降级策略

场景 降级方案
找不到群聊 提示用户确认群名称,或直接使用 chat_id
群内无消息 返回"该时段内群内无消息"
消息量过大 只分析最近 N 条,其余折叠为"N 条消息未分析"
im 推送失败 仅输出到对话,告知用户手动发送
docs 保存失败 仅输出 Markdown 到对话
消息内容为图片/文件 在日报中标注"[图片/文件]",建议用户手动查看

权限表

命令 所需 scope
im +chat-search im:chat:readonly
im +chat-messages-list im:message:readonly
im +messages-send im:message
docs +create docx:document:create

参考

Weekly Installs
2
GitHub Stars
20
First Seen
Apr 13, 2026