Obsidian ↔ 飞书双向同步
适用场景: RITFIT 品牌部的 Obsidian 知识管理与飞书协作的双向同步
核心功能:
- 📥 飞书 → Obsidian: 导入 Campaign Plan、Partnership 方案等文档,自动添加属性标签、清理格式、更新 FACT.md
- 📤 Obsidian → 飞书: 上传复盘文档、洞察库等到飞书,供团队协作
- 🔄 自动更新: 导入新项目时自动更新 FACT.md 的"当前项目状态"
🚀 快速开始
前置条件
- ✅ 已安装 lark-cli(v1.0.69+)
- ✅ 已完成飞书 OAuth 认证(
lark-cli auth login) - ✅ Obsidian Vault 路径:
C:\Users\fancy\Documents\Obsidian Vault
基本用法
从飞书导入文档到 Obsidian
用户指令: "导入飞书文档 [URL]"
AI 执行步骤:
- 提取文档 ID(从 URL 中
docx/后面的部分) - 使用 lark-cli 拉取文档内容
- 根据文档类型确定文件名和存放路径
- 添加 YAML frontmatter(type, status, tags, updated, source, feishu_url)
- 清理飞书格式(
<title>,<cite>,<callout>) - 自动更新 FACT.md 的"当前项目状态"
- 记录到 JOURNAL.jsonl
示例:
用户: "导入飞书文档 https://ritfitsports.feishu.cn/docx/Neixdzou5ouN60xr07ucvPr2nDg"
AI: [自动执行上述 7 个步骤]
从 Obsidian 上传文档到飞书
用户指令: "上传 [文档名] 到飞书"
AI 执行步骤:
- 切换到 Obsidian Vault 目录
- 使用 lark-cli 上传文档
- 返回飞书文档链接
- 记录到 JOURNAL.jsonl
示例:
用户: "上传 2026 World Cup Campaign Recap 到飞书"
AI: [自动执行上述 4 个步骤]
📥 飞书 → Obsidian 详细流程
Step 1: 提取文档 ID
从飞书 URL 中提取文档 ID:
URL: https://ritfitsports.feishu.cn/docx/Neixdzou5ouN60xr07ucvPr2nDg
文档 ID: Neixdzou5ouN60xr07ucvPr2nDg
Step 2: 拉取文档内容
cd "C:\Users\fancy\Documents\Obsidian Vault"
lark-cli docs +fetch \
--doc "文档ID" \
--doc-format markdown \
--format json \
--jq '.data.document.content' \
| sed 's/^"//;s/"$//' | sed 's/\\n/\n/g' \
> "临时文件.md"
Step 3: 确定文件名和存放路径
根据文档标题和内容,确定合适的文件名和存放路径:
| 文档类型 | 文件名格式 | 存放路径 |
|---|---|---|
| Campaign Plan | Campaign - YYYY [活动名称].md |
01-Projects 项目/ |
| Partnership 方案 | Partnership - [合作方] × RITFIT.md |
01-Projects 项目/ |
| 其他文档 | 根据内容确定 | 根据内容确定 |
示例:
- 标题包含 "Campaign Plan" →
Campaign - 2026 Member Month Plan.md - 标题包含 "Partnership" 或 "×" →
Partnership - BCRF × RITFIT.md
Step 4: 添加 YAML frontmatter
在文档开头添加属性标签:
---
type: project
status: [planning|in-progress|active|completed|on-hold]
tags: [campaign|partnership, 活动标识|合作方标识, 核心机制, 涉及领域...]
updated: YYYY-MM-DD
source: "飞书文档/文档标题"
feishu_url: "飞书文档链接"
---
标签选择规则:
Campaign Plan:
- 必须:
campaign,[活动标识](如world-cup,member-month) - 可选:
21-day-challenge,app-launch,giveaway,kol,paid-media,pr,ugc,community
Partnership 方案:
- 必须:
partnership,[合作方标识](如bcrf) - 可选:
pink-series,cause-marketing,pr,social-media,community
状态判断:
- 如果文档中有"合同期"且当前日期在合同期内 →
active - 如果文档中有"Campaign Window"且当前日期在活动期内 →
in-progress - 如果文档中有"Campaign Window"且当前日期在活动期前 →
planning - 如果文档中有"Campaign Window"且当前日期在活动期后 →
completed - 其他情况 →
active
Step 5: 清理飞书格式
删除或转换以下飞书特有格式:
删除
<title>标签❌ <title>2026 Member Month Campaign Plan</title> ✅ # 2026 Member Month Campaign Plan转换
<cite>标签为 Obsidian 双链(可选)❌ <cite doc-id="xxx" file-type="docx" title="文档标题" type="doc"></cite> ✅ [[文档标题]]转换
<callout>为 Obsidian callout(可选)❌ <callout emoji="🥛">内容</callout> ✅ > [!note] 🥛 > 内容保留
<table>HTML 标签(如果表格复杂)
Step 6: 自动更新 FACT.md
触发条件: 导入新项目/活动/合作方案时
更新内容:
- 打开
C:\Users\fancy\AppData\Roaming\CherryStudioEnterprise\Data\Agents\Ray\memory\FACT.md - 找到"当前项目状态"部分
- 根据项目状态添加到对应分类:
planning→ "下一步"in-progress→ "进行中"active→ "进行中"completed→ "刚完成"
- 更新"最后更新"日期
- 保存文件
示例:
### 进行中
- 🔄 2026 H2 Campaign 排期同步(RF 6 个活动)
- 🔄 2026 Member Month Plan(8/1-8/31,已导入 Obsidian)
- 🔄 BCRF × RITFIT 合作(2026/7/1—2027/6/30,已签署合同,Pink Series 公益营销)⭐ 新增
告知用户:
✅ 已自动更新 FACT.md,添加了 [项目名称]
Step 7: 记录到 JOURNAL.jsonl
使用 mcp__agent-memory__memory 工具的 append action 记录:
{
"timestamp": "YYYY-MM-DD HH:MM:SS",
"event": "document_imported_from_feishu",
"document_type": "campaign_plan|partnership",
"document_name": "[文档名称]",
"feishu_url": "[飞书链接]",
"obsidian_path": "[Obsidian 路径]",
"status": "[状态]",
"tags": ["标签1", "标签2"],
"auto_updated_fact": true
}
📤 Obsidian → 飞书 详细流程
Step 1: 切换到 Obsidian Vault 目录
cd "C:\Users\fancy\Documents\Obsidian Vault"
Step 2: 上传文档
lark-cli docs +create \
--content @"相对路径/文件名.md" \
--doc-format markdown \
--title "文档标题"
可选参数:
--parent-token "文件夹token"- 上传到指定文件夹--parent-position "my_library"- 上传到个人文档库
Step 3: 返回飞书文档链接
上传成功后,返回的 JSON 中包含:
{
"ok": true,
"data": {
"document": {
"document_id": "FtCMd5mfSo1NqnxT5EUcvRRDnAf",
"url": "https://ritfitsports.feishu.cn/docx/FtCMd5mfSo1NqnxT5EUcvRRDnAf"
}
}
}
Step 4: 记录到 JOURNAL.jsonl
{
"timestamp": "YYYY-MM-DD HH:MM:SS",
"event": "document_uploaded_to_feishu",
"document_name": "[文档名称]",
"obsidian_path": "[Obsidian 路径]",
"feishu_url": "[飞书链接]",
"document_id": "[文档ID]"
}
🎯 常见场景
场景 1: 导入 Campaign Plan
用户指令: "导入飞书文档 https://ritfitsports.feishu.cn/docx/Neixdzou5ouN60xr07ucvPr2nDg"
AI 执行:
- 提取文档 ID:
Neixdzou5ouN60xr07ucvPr2nDg - 拉取文档内容
- 识别为 Campaign Plan(标题包含 "Campaign Plan")
- 文件名:
Campaign - 2026 Member Month Plan.md - 存放路径:
01-Projects 项目/ - 添加 frontmatter:
--- type: project status: in-progress tags: [campaign, member-month, app-launch, 21-day-challenge, kol, ugc, community] updated: 2026-07-24 source: "飞书文档/2026 Member Month Campaign Plan" feishu_url: "https://ritfitsports.feishu.cn/docx/Neixdzou5ouN60xr07ucvPr2nDg" --- - 清理飞书格式
- 更新 FACT.md:
### 进行中 - 🔄 2026 Member Month Plan(8/1-8/31,已导入 Obsidian) - 记录到 JOURNAL.jsonl
- 告知用户: "✅ 已导入 Campaign - 2026 Member Month Plan.md,已自动更新 FACT.md"
场景 2: 导入 Partnership 方案
用户指令: "导入飞书文档 https://ritfitsports.feishu.cn/docx/MO29dWapVomhhfxnAv6c4Gr5njd"
AI 执行:
- 提取文档 ID:
MO29dWapVomhhfxnAv6c4Gr5njd - 拉取文档内容
- 识别为 Partnership 方案(标题包含 "×")
- 文件名:
Partnership - BCRF × RITFIT.md - 存放路径:
01-Projects 项目/ - 添加 frontmatter:
--- type: project status: active tags: [partnership, bcrf, pink-series, cause-marketing, pr, social-media, community] updated: 2026-07-24 source: "飞书文档/RitFit × Breast Cancer Research Foundation" feishu_url: "https://ritfitsports.feishu.cn/docx/MO29dWapVomhhfxnAv6c4Gr5njd" contract_period: 2026-07-01 ~ 2027-06-30 --- - 清理飞书格式
- 更新 FACT.md:
### 进行中 - 🔄 BCRF × RITFIT 合作(2026/7/1—2027/6/30,已签署合同,Pink Series 公益营销) - 记录到 JOURNAL.jsonl
- 告知用户: "✅ 已导入 Partnership - BCRF × RITFIT.md,已自动更新 FACT.md"
场景 3: 上传复盘文档到飞书
用户指令: "上传 2026 World Cup Campaign Recap 到飞书"
AI 执行:
- 切换到 Obsidian Vault 目录
- 上传文档:
lark-cli docs +create \ --content @"02-Areas 领域/活动复盘/2026 World Cup Campaign Recap.md" \ --doc-format markdown \ --title "2026 World Cup Campaign Recap" - 返回飞书链接:
https://ritfitsports.feishu.cn/docx/FtCMd5mfSo1NqnxT5EUcvRRDnAf - 记录到 JOURNAL.jsonl
- 告知用户: "✅ 已上传到飞书,链接: [URL]"
⚠️ 注意事项
人员信息铁律(最高优先级)
不得擅自从文档中提取人名添加到 FACT.md
- ❌ 不主动从飞书文档、Excel、PDF 等任何文档中提取人名
- ❌ 不主动添加"其他部门"人员
- ✅ 只有用户明确说"添加 XXX 到团队通讯录"时,才能添加
- 违反此规则 = 严重错误
自动更新限制
自动更新仅限于"当前项目状态"部分
- ✅ 可以自动更新 FACT.md 的"当前项目状态"
- ❌ 不可以自动更新 FACT.md 的"团队通讯录"
- ❌ 不可以自动更新 FACT.md 的其他部分
格式清理
保留 vs 转换:
- ✅ 保留: 复杂的 HTML 表格
- ✅ 转换:
<title>,<cite>,<callout> - ❌ 删除: 飞书特有的元数据标签
📚 相关资源
- 详细 SOP:
02-Areas 领域/SOP/Obsidian ↔ 飞书双向同步工作流.md - 飞书导入 SOP:
02-Areas 领域/SOP/飞书活动方案导入 SOP.md - FACT.md:
C:\Users\fancy\AppData\Roaming\CherryStudioEnterprise\Data\Agents\Ray\memory\FACT.md - lark-cli 文档:
lark-cli skills read lark-doc
🔄 更新日志
v1.0.0 (2026-07-24)
- ✅ 初始版本
- ✅ 支持飞书 → Obsidian 导入(自动添加属性标签、清理格式、更新 FACT.md)
- ✅ 支持 Obsidian → 飞书 上传
- ✅ 集成人员信息铁律
- ✅ 集成自动更新 FACT.md 规则
Last updated: 2026-07-24 by Ray