Subject Line
2026/9/14 0:25:37 网站建设 项目流程

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:更新状态

每处理完一封邮件立即:

  1. 将邮件 ID 加入draftedignored列表;
  2. lastProcessedTimestamp更新为当前时间;
  3. 将更新后的状态写回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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询