Agent 邮箱:我们的思考和定位
从一个真实的问题出发
人和人之间有飞书、钉钉、邮件。我发出去,你空了来看,不需要同时在线。这件事我们觉得理所当然。
Agent 和 Agent 之间呢?
今天,Agent A 给 Agent B 发消息,B 不在线,消息直接丢了。没有标准机制保证"我发出去的消息,对方上线后能收到"。每个构建多 Agent 系统的团队,都在用自己的临时方案绕过这个问题——Redis pub/sub、轮询数据库、自研任务队列。能用,但都是绕路。
这个问题真实存在。我们想解决它。
我们在探索什么
不是定标准,不是改变行业,不是颠覆现有系统。
我们想探索的是:RobustMQ 跟 AI 结合的点在哪里。 探索 RobustMQ 成为 Agent 最好用的通信基础设施的可能性。关键词是探索,是思考,是一步步进化。
Agent 邮箱是我们找到的第一个支点——一个足够真实的问题,一个 RobustMQ 天然能解决的场景。不是因为它是终点,而是因为它是一个好的起点。用这个支点撬动下一个思考,发现下一个点,然后继续。
这是我们对 RobustMQ 成长路径的理解:不是提前规划好的蓝图,而是一步一步走出来的探索。每一步都踩在真实需求上,每一步都让 RobustMQ 离"AI 时代通信基础设施"近一点。
Agent 邮箱是什么
虽然叫邮箱,但它不是一个应用,是基础软件。是通信管道,不是通信产品。
就像 SMTP 不是 Gmail,它是 Gmail 的底层。Agent 邮箱不是一个 Agent 通信工具,是构建 Agent 通信工具的基础设施层。
它解决的核心问题只有一个:发件方和收件方不需要同时在线。 我发出去,消息在那里等着,你上线了来取。Agent 是临时的,邮箱也是临时的——Agent 消亡,邮箱自动清理,消息自动回收。
为什么是这三个原语
Agent 通信有三个本质特征:
Agent 是异步的——任务完成就消亡,上下线不可预测,不能假设对方一直在线。Agent 是不知道彼此的——发布方不知道谁在监听,消费方不知道消息从哪来,关系是网状的不是点对点的。Agent 是临时的——日抛型工作负载,生命周期可能只有几秒,资源必须自动回收。
对应这三个特征,我们选择了三个原语:
优先级队列——解决异步问题。消息在邮箱里等着,Agent 上线按优先级处理,紧急指令不会被普通任务淹没。
广播——解决网状通信问题。发出去,关心的人自己来订阅,不需要维护收件人列表,拓扑变化对所有人透明。
轻量——解决临时性问题。调用即申请身份,TTL 自动绑定生命周期,到期自动销毁,Agent 完全不需要关心资源管理。
这三个原语组合在一起,覆盖了 Agent 异步通信的所有场景。单独看每一个都不新鲜,组合在一起专门为 Agent 设计,是别人没有的东西。
它不跟任何人争
HTTP 和 A2A 协议解决的是同步调用——我调你,你现在必须在,你现在必须响应。这是一个场景。
Agent 邮箱解决的是异步通信——我发给你,你什么时候在线什么时候处理,我不等你。这是另一个场景。
两个不重叠,不竞争。我们不需要说服任何人放弃他们现有的方案,只需要在异步通信这个今天没有好答案的位置,提供一个够用的工具。
为什么 RobustMQ 适合做这件事
不是因为我们特意为 Agent 设计了什么,而是因为 RobustMQ 已有的底层能力天然支撑这个场景。
NATS 协议——subject 是地址不是资源,动态路由,通配符订阅,原生支持网状通信。统一存储——邮箱需要临时持久化,广播不需要,同一套接口一个参数区分,底层自动处理。多租户——不同 Agent 系统的邮箱天然隔离,A 看不到 B 的消息。TTL——生命周期自动管理,Agent 消亡邮箱自动清理,不需要任何人工干预。
这些能力本来就在 RobustMQ 里,Agent 邮箱是从底层长出来的自然延伸,不是硬加上去的新功能。
这是一个支点,不是终点
Agent 邮箱是 RobustMQ 进入 Agent 时代的切入点,不是终点。
用户用 Agent 邮箱解决了异步通信问题,用着用着,新的需求会自然出现——需要审计谁跟谁通信了,Kafka 协议接入;有 IoT 设备需要跟 Agent 通信,MQTT 接入;需要跟企业已有系统对接,AMQP 接入。每一个新需求,都从真实使用里长出来,不是提前设计的。
RobustMQ 的统一存储架构让每一个新需求的满足成本都很低——不需要部署新系统,不需要重新设计,直接解锁已有能力。一个 broker,随着用户的需求自然生长,覆盖越来越多的场景。
这是我们对"AI 时代通信基础设施"这个方向的理解:不是提前规划出来的,是跟着真实需求一步一步走出来的。Agent 邮箱是第一步,后面的路用户会告诉我们。
我们的定位
RobustMQ 是 Agent 时代的通信管道。Agent 邮箱是它的入口。
解决问题,满足需求,让有这个痛点的开发者能找到它、用起来、问题解决了。然后以这个支点,发现更多的点,继续解决更多的问题。
不宏大,不激进,就是一件一件把真实的问题解决掉。
