ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

如何让 Rowboat 的邮件草稿代理根据新邮件自动起草回复?

如何让 Rowboat 的邮件草稿代理根据新邮件自动起草回复? 如何让 Rowboat 的邮件草稿代理根据新邮件自动起草回复【免费下载链接】rowboatOpen-source AI coworker, with memory项目地址: https://gitcode.com/GitHub_Trending/rowb/rowboatRowboat 内置了一个名为email-draft的 pre-built agent它定期扫描本地gmail_sync/目录中由 Gmail 同步产生的邮件文件自动判断哪些邮件需要回复并结合日历与知识库上下文生成回复草稿写入pre-built/email-draft/drafts/目录。完成本文后你会让该代理按固定间隔自动运行并能核对它生成的草稿与状态文件。代理本身只创建草稿、从不发送邮件最终由你人工审阅后手动发出。前提条件在执行配置之前需要确认三项内容对应 runner.ts 中的前置检查用户配置文件config/user.json必须存在包含三个字段name姓名、email邮箱需为合法邮箱格式、domain域名。字段结构定义见 types.ts 中的UserConfig。缺失时 runner 会跳过该代理并打印[PreBuilt] Skipping email-draft: No user config found. Create config/user.json示例请替换为你自己的真实值name/email/domain都会作为用户上下文传给代理用于在草稿中正确署名{ name: 你的姓名, email: youexample.com, domain: example.com }gmail_sync/目录中已有同步好的邮件文件。代理只处理该目录中的邮件文件文件名为{thread_id}.md例如19048cf9c0317981.mdThread ID 即代理使用的邮件 ID。邮件文件需由 Rowboat 的 Gmail 同步能力写入代理本身不拉取邮箱。可选上下文目录calendar_sync/日程冲突判断与knowledge/People/、Organizations/、Projects/下的笔记用于个性化草稿。这两个目录不存在时代理会照常运行只是缺少对应上下文——见 email-draft.md 的 Error Handling 一节。在 config/prebuilt.json 中启用 email-draft代理的开关与运行间隔保存在工作目录下的config/prebuilt.json路径定义见 config.ts 的CONFIG_PATH。该文件在首次加载配置时会自动创建默认包含两个内置代理meeting-prep与email-draft注册表见 types.ts 的PREBUILT_AGENTS全部处于enabled: false状态intervalMs默认3000005 分钟。编辑该文件把email-draft的enabled改为true{ agents: { meeting-prep: { enabled: false, intervalMs: 300000 }, email-draft: { enabled: true, intervalMs: 300000 } } }enabled是否允许 runner 调度该代理false时shouldRunAgent直接返回 false。intervalMs两次运行之间的最小间隔毫秒。runner 每 60 秒检查一次是否有到期的代理因此实际触发粒度是分钟级检查 intervalMs 间隔不要期望比这更精确的触发。如果服务启动日志显示[PreBuilt] No agents enabled. Enable agents in config/prebuilt.json说明配置还没生效或代理仍为禁用。让代理运行起来Rowboat 的 pre-built runner 作为服务随应用启动入口init()见 runner.ts启动时先执行一次checkAndRunAgents()之后每 60 秒循环检查每个到期且启用的代理会收到一条带当前时间与用户上下文name/email/domain的运行消息由代理按 email-draft.md 描述的流程处理无论运行成功或报错runner 都会更新pre-built/runner_state.json中该代理的lastRunTimes以避免在持续性故障时快速重试。需要立即验证一次而等待不到间隔时可以使用文档中标注useful for testing的手动触发入口triggerAgent(email-draft)它会跳过间隔检查直接运行一次该代理传入不在PREBUILT_AGENTS中的名称会抛出Unknown agent错误可用于确认代理名称拼写。代理自动处理一封邮件的流程了解这个流程有助于你判断某个结果是否符合预期完整规则见 email-draft.md加载状态读取pre-built/email-draft/state.json其中lastProcessedTimestamp用于只处理更新的邮件drafted与ignored两个列表中的邮件 ID 会被跳过。首次运行时该文件不存在代理会创建目录并以时间戳1970-01-01T00:00:00Z、空列表初始化。扫描gmail_sync/从文件名提取邮件 ID跳过已处理 ID。分类Newsletter、营销邮件、GitHub/Jira/Slack 等自动通知、垃圾邮件以及自己发出且无需回复的出站邮件进入ignored会议请求、熟人邮件、正当业务咨询、跟进邮件等进入草稿流程。规则明确拿不准就创建草稿。收集上下文日程邮件读取calendar_sync/检查冲突与空闲时间个性化回复则检索knowledge/下People/、Organizations/、Projects/中关于发件人、公司、项目的笔记。写草稿为每封需要回复的邮件创建pre-built/email-draft/drafts/{email_id}_draft.md内容包含原邮件 ID、主题、发件人、处理日期、Context Used使用了哪些日历/记忆上下文、草稿正文主题行为Re: {original_subject}以及 Notes。更新状态每处理完一封邮件就把其 ID 写入drafted或ignored并更新lastProcessedTimestamp后落盘——因此中途失败不会导致重复工件。验证运行结果运行一轮后按以下顺序核对runner 日志正常一次运行会依次出现[PreBuilt] Running agent: email-draft [PreBuilt] Agent email-draft completed successfully启动日志中还会列出当前启用状态格式为[PreBuilt] Enabled agents: email-draft及runs every 300s间隔按你设置的intervalMs / 1000显示。出错的运行会打印[PreBuilt] Error running agent email-draft:及错误详情。状态文件pre-built/email-draft/state.json确认新邮件 ID 出现在drafted或ignored中lastProcessedTimestamp已推进到本次运行时间。草稿文件检查pre-built/email-draft/drafts/下是否生成了对应{email_id}_draft.md核对草稿中的主题、署名与上下文引用。代理输出摘要处理完所有新邮件后代理会输出一份处理摘要文档给出的示例格式如下其中 X/Y/Z 为占位说明实际数字以你的邮箱为准## Processing Summary **Emails Scanned:** X **Drafts Created:** Y **Ignored:** Z ### Drafts Created: - {email_id}: {subject} - {brief reason} ### Ignored: - {email_id}: {subject} - {reason for ignoring}限制与排查代理绝不发送邮件只生成草稿文件发送动作始终由你完成。邮件文件畸形时代理记录日志并继续处理后续邮件不会中断整轮运行。calendar_sync/或knowledge/缺失代理照常运行只是相应上下文记为 N/A草稿个性化程度取决于知识库笔记是否齐全。代理名称无效triggerAgent会抛出Unknown agent: xxx. Available: meeting-prep, email-draft说明可用代理只有这两个名称拼写以此为准。运行报错runner 仍会更新 last-run 时间即同一故障不会导致高频重试需等下一个intervalMs周期再次尝试排查时先看上述错误日志再检查gmail_sync/中文件是否完整。【免费下载链接】rowboatOpen-source AI coworker, with memory项目地址: https://gitcode.com/GitHub_Trending/rowb/rowboat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表