用途:使用 Resend 与现有 AI 邮件流程,管理 ben-agent@zerofinance.ai 的入站和出站邮件。规范收件箱为 ben-agent@zerofinance.ai,域名通过 AI_EMAIL_INBOUND_DOMAIN 默认为 zerofinance.ai。
主要能力:入站流程由 Resend 的 catch-all 或路由域名接收邮件,Resend webhook 投递到 POST /api/ai-email,使用 RESEND_WEBHOOK_SECRET 校验签名,随后 AI 邮件流程解析、回复并更新会话状态。出站流程通过 Resend 以 from: "Ben Agent ben-agent@zerofinance.ai" 发送,回复与确认经由 packages/web/src/lib/email-provider/resend-provider.ts。
数据操作:邮件会话可创建/读取/更新,不支持删除;消息可创建(发送/回复)、读取(会话历史)、更新(跟进),不支持删除;附件可创建(持久化)、读取(加载),更新不使用,不支持删除。
用法与环境:在 .opencode/skill/ben-agent-email/.env 创建同目录 .env,需填写 RESEND_API_KEY、RESEND_WEBHOOK_SECRET、EMAIL_PROVIDER=resend、AI_EMAIL_INBOUND_DOMAIN=zerofinance.ai。若缺少 RESEND_API_KEY 或 RESEND_WEBHOOK_SECRET,应让用户提供并停止,不得自行编造凭据或在无明确授权下继续。
接口:packages/web/src/app/api/ai-email/route.ts 为入站 webhook 处理器;packages/web/src/lib/email-provider/resend-provider.ts 负责 Resend 收发;packages/web/src/lib/ai-email/* 处理会话状态、提示词与附件。
完成信号:complete 表示入站消息已处理并已发送回复;continue 表示等待用户澄清或确认;error 表示提供商故障或 webhook 签名无效。
适用场景:检查新发票并汇总、回复最新发件人确认收到请求、起草跟进邮件索取缺失的银行信息等。限制:不支持删除会话、消息或附件,附件更新未使用。