Subject Line
【免费下载链接】rowboatOpen-source AI coworker, with memory项目地址: https://gitcode.com/GitHub_Trending/rowb/rowboat
Thread ID:Message Count:
From: Name email@example.com
Date:
```Agent 需提取以下字段:
- Thread ID(即邮件 ID);
- From(发件人姓名与邮箱);
- Date(日期字符串);
- Subject(取自
#一级标题); - Body(邮件正文);
- Message Count(用于判断是否为多封邮件的会话线程,若为线程则需阅读完整上下文)。
Step 4:分类邮件
分类是整条流水线的决策中枢,规则明确二分:
应忽略(加入ignored列表):
- 新闻通讯(含退订链接、"View in browser"、群发特征);
- 营销邮件(促销话术、no-reply 发件人);
- 自动化通知(GitHub、Jira、Slack、物流更新等);
- 明显无关的垃圾邮件与冷推销;
- 用户自己发出的、无回复的外发邮件。
应起草回复:
- 会议请求或日程协调邮件;
- 来自已知联系人的私人邮件;
- 看起来正当的商业咨询;
- 既有对话的跟进邮件;
- 请求信息或要求行动的邮件。
文档特别强调"Be conservative with ignore"——拿不准时优先起草,宁多勿漏。
Step 5:收集上下文
起草前先收集两类上下文,这是该 Agent"有记忆的 AI 同事"定位的体现:
日历上下文(针对日程类邮件):从calendar_sync/目录读取日历事件,查找相关时间段内的事件,检查冲突与空闲时间。
记忆上下文(用于个性化回复):在知识库中检索发件人相关信息:
- 在
knowledge/People/中搜索发件人; - 在
knowledge/Organizations/中搜索发件人所在公司; - 在
knowledge/Projects/中搜索相关项目上下文。
为提高检索效率,文档建议用executeCommand配合 grep:
grep -r -l -i "sender_name" knowledge/ grep -r -l -i "company_name" knowledge/-l只输出命中文件名,-i忽略大小写,快速定位可能的相关笔记后再精读。知识库目录(knowledge/People/、knowledge/Organizations/、knowledge/Projects/)正是由 build_graph.ts 主导的知识图谱系统持续维护的 Obsidian 风格笔记体系。
Step 6:创建草稿
对需要回复的邮件,在pre-built/email-draft/drafts/下创建草稿文件:
- 文件名:
{email_id}_draft.md; - 内容格式:
# Draft Response **Original Email ID:** {email_id} **Original Subject:** {subject} **From:** {sender} **Date Processed:** {current_date} --- ## Context Used - Calendar: {relevant calendar info or "N/A"} - Memory: {relevant notes or "N/A"} --- ## Draft Response Subject: Re: {original_subject} {draft email body} --- ## Notes {any notes about why this response was crafted this way}起草指南(原文档完整规范):
- 简洁专业;
- 如需署名,只使用用户的名字(first name),绝不使用全名;
- 日程类邮件:基于日历空闲时间提出具体时间建议;
- 咨询类邮件:直接作答或说明还需要哪些信息;
- 自然地引用记忆中的相关上下文;
- 与来信的语气保持一致;
- 若是多封邮件的线程,先读完完整上下文再起草。
Step 7:更新状态
每处理完一封邮件立即:
- 将邮件 ID 加入
drafted或ignored列表; - 将
lastProcessedTimestamp更新为当前时间; - 将更新后的状态写回
pre-built/email-draft/state.json。
"每封邮件后都保存状态"是文档 Error Handling 部分明确要求的,目的正是避免失败时整批重跑。
五、输出与错误处理
5.1 处理摘要
全部新邮件处理完毕后,Agent 需输出结构化摘要:
## Processing Summary **Emails Scanned:** X **Drafts Created:** Y **Ignored:** Z ### Drafts Created: - {email_id}: {subject} - {brief reason} ### Ignored: - {email_id}: {subject} - {reason for ignoring}【免费下载链接】rowboatOpen-source AI coworker, with memory项目地址: https://gitcode.com/GitHub_Trending/rowb/rowboat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考