Personalized email 是一个基于 cognee 的邮件回复起草技能,运行 examples/cookbooks/personalized_email/ 下的 personalized email cookbook。它会将用户的 Granola 会议笔记、Gmail 收件箱以及已发送邮件记忆到 cognee 数据集 personalized_email 中,然后针对收件箱中最新的一封邮件起草回复。
用途 该技能用于根据用户此前在 Granola 会议中讨论的内容、对发件人的承诺以及用户自己的写作风格,自动起草对最新 Gmail 邮件的回复。
主要能力
- 记住 Granola 会议笔记。
- 记住 Gmail 收件箱和已发送邮件。
- 针对收件箱中最新的邮件生成回复草稿。
- 支持 --days N 参数按时间范围筛选会议。
- 支持 --no-granola 参数在不使用 Granola 的情况下运行。
- 支持 --sample 参数在即使账户已配置的情况下也使用示例邮箱数据。
- Gmail 访问为只读,不会发送任何内容。
使用方式 所有命令需从仓库根目录运行。
第一步:运行 uv run python examples/cookbooks/personalized_email/personalized_email.py --check。
- 退出码 0:进入第二步。
- 退出码 2:每条 [setup] MISSING: 行指出一项需要修复的配置。不要自行创建凭据,应告知用户需修复的具体行(参考 README 的 "What it needs" 表格),然后停止。如果仅缺少 Granola 配置,询问是否改用 --no-granola 运行。
第二步:运行 uv run python examples/cookbooks/personalized_email/personalized_email.py。如果用户指定了会议时间范围,添加 --days N;如果用户不想使用 Granola,添加 --no-granola。
草稿为 [draft] Reply: 行之后的所有内容。将其交给用户,并说明它回复的是哪封邮件([draft] Answering: 行)以及使用了哪些来源([ingest_granola] 和 [ingest_email] 行)。草稿永远不会被发送,交由用户自行发送。
如果脚本失败,personalized_email.py 会以退出码 1 退出,并输出一行说明出错原因。可以单独从 examples/cookbooks/personalized_email/scripts/ 运行该脚本以进一步排查。
适用场景 当用户希望在撰写邮件回复时结合此前的会议讨论内容、对发件人的承诺以及个人写作风格时使用。在未配置 Gmail 和 Granola 时,可用于示例邮箱数据([setup] 行会说明),针对一封虚构邮件起草回复,此时仅需 LLM_API_KEY,且应告知用户回复针对的是示例数据。
限制与规则
- Gmail 访问为只读,不会发送任何内容。
- 不要打印 credentials.json、token.json 或 .env 的内容。
- 示例运行会在摄取前遗忘 cookbook 的数据集 personalized_email([clear] 行)。对于用户自己的数据,仅在用户要求重新开始时才传入 --clear,这会遗忘数据集中的所有内容。
- 摄取会读取用户真实的会议和邮箱,每次运行都会消耗 LLM 额度,因此仅在用户要求时运行。
- 清理命令:uv run cognee-cli forget --dataset personalized_email
价格、平台兼容性等更多信息暂未提供。