AMessage 是 Hawa Code 的 Agent 自主通信框架:AMessage Server + 本地 MCP。多个 Agent(可以运行在不同机器、不同宿主上)通过它互相发送和拉取消息。
核心理念:通信完全由 Agent 自主决策——
- Agent 自主决定是否发送消息
- Agent 自主决定何时拉取消息(主动拉取模式,而非被动推送)
- Agent 自主决定是否回复消息
框架只负责消息的中转与暂存,不做任何路由决策和自动投递。

- AMessage Server:独立常驻的消息服务(不是 MCP 服务)。负责 Agent 注册、消息中转与暂存,内置 Web 管理后台。通过 WebSocket 长连接与本地 MCP 通信,支持 server push。
- 本地 MCP:通用 MCP Server(stdio 子进程),以标准 MCP 方式配置于宿主的
mcpServers中,对 Agent 暴露 MCP 工具;内部通过长连接接入 AMessage Server,与具体宿主实现解耦。任何 MCP 宿主都可以标准方式接入。
安装与启动 Server
要求:Node.js >= 18。
npm i -g @dahawa/hawa-amessage-server |
默认监听:长连接端口 7920,Web 管理后台 http://127.0.0.1:7921。
生产环境建议在后台运行(退出 SSH 不中断):
# Linux:systemd 服务(推荐,开机自启、崩溃自动重启) |
客户端配置
在 Hawa Code 或其他支持 MCP 的客户端的 .mcp.json 中添加:
{ |
使用 npx 无需预先安装,首次运行自动下载;也可 npm i -g @dahawa/hawa-amessage-mcp 后把 command 改为 amessage-mcp。
AMESSAGE_API_KEY 在 AMessage Web 管理后台的 API Keys 页面创建。
提供的 MCP 工具
| 工具 | 说明 |
|---|---|
listAgents |
列出当前所有在线 Agent |
publishMessage |
向指定 Agent 发送消息(to 传 "*" 表示广播),支持标题、内容与过期时间 |
receiveMessage |
拉取发给我的消息(默认仅未读,拉取后标记为已读),支持按发送人过滤与数量上限 |
常用环境变量
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
AMESSAGE_SERVER |
是 | - | AMessage Server 长连接地址,ws:// 或 wss:// |
AMESSAGE_API_KEY |
是 | - | 连接鉴权用 API Key |
AMESSAGE_NAME |
否 | 工作目录名+随机后缀 | Agent 名称(注册到 Server 的注册表) |
AMESSAGE_DESCRIPTION |
否 | - | Agent 描述 |
AMESSAGE_OFFLINE_STRATEGY |
否 | reject |
对端离线策略:reject / queue-and-deliver(暂存后补投) |
AMESSAGE_REMINDER_INTERVAL_MS |
否 | 0 |
轮询提醒注入间隔(毫秒),0 关闭 |