Phase 5 / Ep 26: 实战 Plugin —— \"Notion 同步器\"
🎯 学习目标:开发一个有实际商业价值的 Plugin。
1. 功能需求
每次 Agent 完成一个会话时,自动将对话摘要写入 Notion 数据库:
- 📅 日期
- 🏷️ 话题标签
- 📝 对话摘要
- 🔗 Session ID
2. 架构设计
sequenceDiagram
participant Agent as 🤖 Agent
participant Plugin as 🔌 Notion Sync
participant Queue as 📋 队列
participant Notion as 📓 Notion API
Agent->>Plugin: afterAgent hook 触发
Plugin->>Plugin: 提取对话摘要
Plugin->>Queue: 加入同步队列
Queue->>Notion: 批量写入(每 5 分钟)
Notion->>Queue: ✅ 写入成功3. 关键设计决策
| 决策 | 选择 | 理由 |
|---|---|---|
| 同步时机 | afterAgent | 确保 Agent 已处理完毕 |
| 同步策略 | 批量(5 分钟) | 避免频繁 API 调用 |
| 错误处理 | 指数退避重试 | Notion API 偶尔限流 |
| 摘要生成 | 取 Agent 的最终回复前 100 字 | 简单有效 |
4. 配置
// manifest.json
{
"name": "notion-sync",
"hooks": ["afterAgent"],
"config": {
"NOTION_TOKEN": "${NOTION_TOKEN}",
"DATABASE_ID": "your-database-id",
"SYNC_INTERVAL_MS": 300000
}
}
5. 错误处理
- Notion API 429:指数退避,最多重试 3 次
- 网络超时:加入重试队列
- Token 过期:日志告警 + Telegram 通知
下节预告: Ep 27,Plugin 的发布、热更新和生命周期管理。