AI代理的精彩电子邮件 
一份精心策划的电子邮件基础设施、SDK、工具、框架和AI代理系统模式列表。
电子邮件是人工智能代理的通用异步协议。此列表涵盖了为代理提供真正收件箱所需的一切——从专用基础设施到框架集成再到生产模式。
纳入标准: 工具必须是专门为AI代理设计的,或者已经在代理堆栈中大规模展示了生产应用。
______________________________________________________________________
目录
______________________________________________________________________
电子邮件基础架构
为AI代理提供专用电子邮件功能的工具和平台。
专为代理商打造
公社 --为AI代理提供专用的电子邮件基础设施。每个代理都有自己的收件箱,入站电子邮件会触发Webhook,线程会跨客户端跟踪,附件会进行威胁扫描。内置:RFC 5322线程、语义向量搜索、结构化JSON提取、提示注入保护、HMAC签名的webhooks,具有8次重试交付保证。
- Python SDK:
pip install commune-mail— 公社python - TypeScript SDK:
npm install commune-ai— 公社ai - MCP服务器:
uvx commune-mcp— 公社mcp - 可自托管后端-- 公社
- 食谱: 公社烹饪书
交易电子邮件(两用)
重发 -面向开发人员的现代电子邮件API。清洁API,React电子邮件模板,webhook,入站电子邮件支持。不为每个代理提供独立收件箱。最适合只需要发送电子邮件(不需要接收)的代理。
npm install resend或pip install resend- github: 重新发送/重新发送节点
SendGrid --Twilio的电子邮件平台。大容量发送、可交付性工具、入站解析webhook。专为批量/营销电子邮件而设计;代理本机特性需要大量的包装器代码。
- github: sendgrid/sendgrid python,
邮戳 --专注于事务性电子邮件的可送达性。入站webhook支持。没有每个代理收件箱隔离。
亚马逊SES --AWS电子邮件服务。规模成本低。向S3/SNS/Lambda发送入站电子邮件。需要对代理用例进行大量设置。
自托管电子邮件服务器
邮政的 --用于大容量发送的开源邮件服务器。SendGrid/Mailgun的自托管替代方案。基于Ruby。
Mailu --全功能邮件服务器堆栈(Docker)。SMTP、IMAP、反垃圾邮件、网络邮件。对于需要IMAP访问现有邮箱的代理非常有用。
哈拉卡 --高性能Node.js SMTP服务器。可通过插件进行扩展。用于自定义入站处理管道。
______________________________________________________________________
MCP服务器
模型上下文协议服务器,为AI助手(Claude Desktop、Cursor、Windsurf)提供电子邮件功能。
公社mcp --用于Claude Desktop、Cursor和Windsurf的电子邮件工具。创建收件箱、阅读帖子、发送电子邮件。 uvx commune-mcp.
mcp服务器gmail --Gmail的官方MCP服务器。从您的个人Gmail帐户读取/发送。官方MCP服务器集合的一部分。
mcp服务器sendgrid --SendGrid电子邮件发送的官方MCP服务器。
______________________________________________________________________
框架集成
LangChain
- 公社烹饪书/语言链 --用于send_email、read_inbox、search_threads的LangChain工具——客户支持和主要外联代理的完整示例
- langchain社区电子邮件工具 --langchain社区中的Gmail工具包
船员AI
- 公社烹饪书 --多代理团队示例:分诊代理、专家代理、QA代理都通过Commune收件箱进行协调
OpenAI代理SDK
- 公社食谱/openai代理商 —
@function_tool公社经营包装
克劳德(人类学)
- 公社烹饪书/克劳德 —
tool_use示例:客户支持、潜在客户拓展、结构化提取
自动生成
- 公社烹饪书 --AutoGen示例即将推出
______________________________________________________________________
n8n/工作流自动化
n8n节点通信 --公社的n8n社区节点。全面覆盖:邮件(发送、列表)、收件箱(创建、列表、获取、更新、删除、设置Webhook、设置提取模式)、线程(列表、获取邮件、更新状态)、搜索、传递和入站电子邮件触发器。
______________________________________________________________________
生产模式
代理系统中电子邮件的架构模式——附代码示例。
模式1:每个代理一个收件箱
系统中的每个代理都有一个专用收件箱。客户支持代理使用 support@company.com,计费代理使用 billing@company.com这隔离了线程历史,使路由明确,并防止工作流之间的交叉污染。
# Create dedicated inboxes for each agent type
support_inbox = client.inboxes.create(local_part="support")
billing_inbox = client.inboxes.create(local_part="billing")
onboarding_inbox = client.inboxes.create(local_part="onboarding")模式2:Webhook→ 代理→ 在帖子中回复
规范代理电子邮件流:接收webhook,运行LLM,用thread_id回复。
@app.post("/webhook")
async def handle_email(request: Request):
body = await request.body()
verify_signature(body, headers["x-commune-signature"], WEBHOOK_SECRET, headers["x-commune-timestamp"])
payload = json.loads(body)
# Run your agent with the email content
reply = await agent.run(payload["content"])
# Reply in the same thread
client.messages.send(to=payload["sender"], text=reply, inbox_id=payload["inboxId"], thread_id=payload["thread_id"])模式3:用于零LLM解析的结构化提取
在收件箱上定义JSON模式。入站电子邮件会自动解析,无需额外的LLM调用。
client.inboxes.set_extraction_schema(domain_id, inbox_id,
name="support_ticket",
schema={"type": "object", "properties": {
"intent": {"type": "string"},
"priority": {"type": "string", "enum": ["low", "medium", "high", "critical"]},
"product": {"type": "string"}
}}
)
# Every inbound email now has extracted intent, priority, product before your webhook fires模式4:通过电子邮件进行多代理协调
代理通过电子邮件将任务相互移交。代理A完成一个子任务,并将结果通过电子邮件发送给代理B。完成后,代理B会回复。线程历史记录中的完整审计跟踪。
# Agent A hands off to Agent B
client.messages.send(
to="billing-agent@company.com", # Agent B's inbox
subject=f"Process refund for {customer_email}",
text=f"Customer {customer_id} requested refund of ${amount}. Order: {order_id}",
inbox_id=agent_a_inbox.id,
)
# Agent B receives via webhook, processes, replies to Agent A模式5:代理记忆的语义搜索
通过在所有电子邮件历史中进行矢量搜索,代理可以访问相关的过去上下文。
# Before replying, search for relevant past interactions
past_context = client.search.threads(
f"customer {customer_email} previous issues",
inbox_id=support_inbox.id,
limit=3,
)
context_str = "\n".join([t.snippet for t in past_context])
reply = llm.complete(f"Context from past interactions:\n{context_str}\n\nNew message: {email_content}\n\nReply:")模式6:Idempotent发送可靠的代理
代理循环重试。使用幂等性密钥来防止重复的电子邮件。
client.messages.send(
to="user@example.com",
subject="Weekly report",
text=report_body,
inbox_id=inbox.id,
idempotency_key=f"weekly-report-{user_id}-{week_number}",
)
# Safe to call 10 times — exactly one email is sent______________________________________________________________________
食谱示例
代理系统中电子邮件的完整、可运行的代码示例。
| 示例 | 框架 | 描述 |
|---|---|---|
| 客户支持代理 | 任意 | 完全支持工作流程:阅读、分类、回复 |
| LangChain电子邮件工具 | LangChain | @公社操作的工具包装器 |
| CrewAI多代理团队 | CrewAI | 分类+专家+QA代理管道 |
| OpenAI代理SDK | OpenAI | 函数工具集成 |
| 克劳德工具_使用 | 人类学 | 克劳德电子邮件工具 |
| 结构化提取 | 任意 | 自动将电子邮件字段解析为JSON |
| 语义搜索 | 任意 | 自然语言收件箱搜索 |
| Webhook处理程序 | TypeScript | 快速webhook+HMAC验证 |
| 招聘渠道 | 任何 | 候选人外展+筛查序列 |
| 销售拓展 | 任何 | 冷邮件+后续序列 |
| n8n工作流 | n8n | 无代码电子邮件代理工作流 |
______________________________________________________________________
文章和谈话
- 为什么AI代理需要自己的电子邮件基础设施 --代理原生电子邮件与重新利用人工电子邮件的案例
- 电子邮件作为代理通信协议 --RFC 5322,线程和异步代理工作流
______________________________________________________________________
贡献
找到属于这里的工具或图案了吗?打开一个pull请求。
纳入标准:
- 专为AI代理构建,或在代理堆栈中经过验证的生产采用
- 积极维护(最后一次提交在12个月内)
- 不是垃圾邮件或没有实质内容的自我推销
看 贡献.md 作为指导方针。
______________________________________________________________________
相关列表
______________________________________________________________________
*由维护 公社 ·MIT许可证*
