跳转至

📚 飞书对话归档脚本 - 会话历史增强版

更新日期: 2026-03-17
状态: ✅ 会话历史获取功能已完成,⚠️ 飞书 API 需更新 Token


🎉 改进内容

之前的问题

  • ❌ 只能读取 memory 文件
  • ❌ 无法获取完整会话历史
  • ❌ 内容不全面

现在的功能

  • 双数据源合并:memory 文件 + 会话历史
  • 完整对话记录:包括用户消息、AI 回复、工具调用
  • 自动过滤日期:只获取指定日期的对话
  • 格式化输出:自动转换为飞书文档格式

📁 文件清单

文件 用途 状态
scripts/feishu-archive.py 主脚本(Python) ✅ 已更新
scripts/get-session-history.js 会话历史获取(Node.js) ✅ 新增
scripts/install-feishu-archive-cron.sh Cron 安装脚本 ⚠️ 待更新

🔧 使用方法

基础用法

1
2
3
4
5
6
7
8
# 归档今天
python3 scripts/feishu-archive.py

# 归档指定日期
python3 scripts/feishu-archive.py 2026-03-16

# 归档并测试(不上传飞书)
python3 scripts/feishu-archive.py 2026-03-16 --dry-run

输出示例

============================================================
📚 对话内容来源:memory 文件 / 会话历史 / 占位符
============================================================
📖 读取记忆文件:/home/admin/.openclaw/workspace/memory/2026-03-16.md
✅ 记忆文件长度:1028 字符
📖 获取会话历史...
✅ 获取到 100 条消息
✅ 会话历史长度:71792 字符
📊 合并记忆文件和会话历史...
✅ 内容来源:memory+session
📊 内容长度:72956 字符
============================================================
📝 开始归档:2026-03-16
============================================================
1️⃣ 创建云文档...
✅ 文档创建成功
   Document ID: xxxxx
2️⃣ 写入内容...
📊 总内容块数:150
   写入批次 1/3 (50 个块)...
   写入批次 2/3 (50 个块)...
   写入批次 3/3 (50 个块)...
✅ 内容写入成功(共 3 批)
3️⃣ 移动到知识空间...
✅ 移动成功
   Wiki Token: xxxxx
   URL: https://xcny2sco1sb0.feishu.cn/wiki/xxxxx
============================================================
🎉 归档完成!

📊 数据流程

┌─────────────────────────────────────────────────────────┐
│  1. 读取 memory/日期.md                                  │
│     - 关键对话摘要                                       │
│     - 决定和结论                                         │
│     - 待跟进事项                                         │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│  2. 获取会话历史(get-session-history.js)              │
│     - 调用 openclaw sessions --json                     │
│     - 读取 .jsonl 转录文件                               │
│     - 过滤指定日期                                       │
│     - 包含:用户消息、AI 回复、工具调用、思考过程         │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│  3. 合并内容                                             │
│     - 记忆摘要(上层)                                  │
│     - 完整会话历史(下层)                              │
│     - 转换为飞书文档格式                                 │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│  4. 上传飞书知识库                                       │
│     - 创建云文档                                         │
│     - 分批写入内容(每批 50 块)                          │
│     - 移动到知识空间                                     │
└─────────────────────────────────────────────────────────┘

🔑 配置飞书 API

获取 User Access Token

  1. 访问飞书开放平台:https://open.feishu.cn/
  2. 创建企业自建应用
  3. 获取权限:
  4. 云文档只写权限
  5. 知识库管理权限
  6. 使用授权码流程获取 User Access Token

更新 Token

编辑 scripts/feishu-archive.py

1
2
3
USER_ACCESS_TOKEN = "你的新_Token"
SPACE_ID = "你的空间 ID"
FOLDER_TOKEN = "你的文件夹 Token"

测试 Token

curl -X GET "https://open.feishu.cn/open-apis/docx/v1/documents/xxxxx" \
  -H "Authorization: Bearer YOUR_TOKEN"

🛠️ 技术细节

get-session-history.js

功能: 通过 OpenClaw CLI 获取会话历史

原理: 1. 调用 openclaw sessions --json 获取会话列表 2. 读取 .jsonl 转录文件 3. 过滤指定日期的消息 4. 输出为 JSON 格式

用法:

1
2
3
4
node scripts/get-session-history.js [日期] [限制条数]

# 示例
node scripts/get-session-history.js 2026-03-16 100

feishu-archive.py

功能: 整合数据源并上传飞书

数据源优先级: 1. memory + session(合并,最全面) 2. memory(单独) 3. session(单独) 4. 占位符(降级方案)

内容处理: - Markdown → 飞书文档块转换 - 分批写入(每批 50 块,避免 API 限制) - 自动更新 revision_id


⚠️ 已知问题

1. 飞书 Token 过期(401 错误)

现象:

❌ 创建失败:{'error': 'HTTP Error 401: Unauthorized'}

解决: - 重新获取 User Access Token - Token 有效期通常为 2 小时,需要使用 Refresh Token 续期

2. 内容过长被截断

现象: 会话历史超过飞书文档限制

解决: - 脚本自动限制每条消息 2000 字符 - 工具调用参数限制 500 字符 - 思考过程限制 500 字符

3. Python 版本兼容性

要求: Python 3.7+

原因: 使用 subprocess.run()capture_output 参数


📅 Cron 自动归档

安装 Cron

chmod +x scripts/install-feishu-archive-cron.sh
./install-feishu-archive-cron.sh

手动配置

1
2
3
4
crontab -e

# 每天 23:00 归档当日对话
0 23 * * * cd /home/admin/.openclaw/workspace && python3 scripts/feishu-archive.py

日志

1
2
3
4
5
# 查看 Cron 日志
tail -f /var/log/syslog | grep feishu-archive

# 查看脚本日志
tail -f /home/admin/.openclaw/workspace/logs/feishu-archive.log

🎯 未来改进

  • 支持 Refresh Token 自动续期
  • 添加重试机制(网络错误自动重试)
  • 支持多会话归档(群组对话)
  • 添加索引文档(按日期汇总)
  • 支持导出为 PDF/Markdown
  • 添加搜索功能(飞书知识库内)

📝 更新日志

2026-03-17 - 会话历史增强版

  • ✅ 新增 get-session-history.js 获取会话历史
  • ✅ 支持 memory + session 双数据源合并
  • ✅ 自动过滤指定日期
  • ✅ 格式化输出(包括工具调用、思考过程)
  • ⚠️ 飞书 Token 需更新

2026-03-16 - 初始版本

  • ✅ 基础归档功能
  • ✅ memory 文件读取
  • ✅ 飞书知识库上传

本文档由 AI 自动整理生成