--- name: 艾叶 IM Bridge description: 多平台 IM 消息网关。将个人微信、企业微信、飞书、WhatsApp、网页聊天等平台的消息桥接到卡若AI,实现跨平台 AI 对话。使用本技能当需要:(1) 配置/启动 IM 桥接 (2) 新增聊天通道 (3) 排查 IM 通道问题 (4) 对接新的消息平台 triggers: 艾叶、IM、聊天对接、消息网关、微信对接、企业微信对接、飞书对接、WhatsApp对接、网页聊天、IM桥接、通道配置、艾叶IM owner: 火炬 group: 火 version: "1.0" updated: "2026-03-13" --- # 艾叶 IM Bridge ## 概述 艾叶是卡若AI的多平台 IM 消息网关,参考 OpenClaw 三层架构设计(Gateway → Channel → LLM),让任何聊天平台的消息都能路由到卡若AI进行对话,然后把 AI 回复推回对应平台。 **核心理念**:一个网关,任何平台,同一个 AI。 ## 架构 ``` 个人微信 / 企业微信 / 飞书 / WhatsApp / 网页 │ ┌─────────▼─────────┐ │ 艾叶 IM Bridge │ ← Channel Layer(通道适配) │ (FastAPI:18900) │ └─────────┬─────────┘ │ HTTP POST /v1/chat ┌─────────▼─────────┐ │ 卡若AI 网关 │ ← LLM Layer(AI 推理) │ (FastAPI:18080) │ └───────────────────┘ ``` ## 源代码位置 ``` /Users/karuo/Documents/个人/卡若AI/运营中枢/scripts/aiye_im_bridge/ ``` ## 支持的通道 | 通道 | 对接方式 | Webhook 路径 | 状态 | |:---|:---|:---|:---| | 个人微信 | 中间件 Webhook(兼容存客宝/WeChatFerry/ComWeChatBot) | `/webhook/wechat_personal` | ✅ 就绪 | | 企业微信 | 官方 API 回调 | `/webhook/wechat_work` | ✅ 就绪 | | 飞书 | 事件订阅回调 | `/webhook/feishu` | ✅ 就绪 | | WhatsApp | Cloud API Webhook | `/webhook/whatsapp` | ✅ 就绪 | | 网页聊天 | REST + WebSocket | `/api/web/chat` `/ws/web/chat` `/chat` | ✅ 就绪 | ## 快速开始 ### 1. 启动 ```bash cd 运营中枢/scripts/aiye_im_bridge bash start.sh # 默认端口 18900 bash start.sh 19000 # 指定端口 ``` ### 2. 配置通道 编辑 `config/channels.yaml`,按需启用通道并填入对应平台的凭证。首次运行会自动从 `channels.example.yaml` 复制一份。 ### 3. 验证 - 访问 `http://localhost:18900` 查看欢迎页 - 访问 `http://localhost:18900/chat` 打开网页聊天 - 访问 `http://localhost:18900/status` 查看通道状态 ## 各通道配置说明 ### 个人微信 需要一个微信协议中间件(存客宝、WeChatFerry、ComWeChatBot 等),中间件负责微信登录和消息抓取,艾叶只做 HTTP 桥接: 1. 中间件将消息 POST 到 `http://艾叶地址/webhook/wechat_personal` 2. 艾叶处理后通过 `callback_url` 回调中间件发送回复 ### 企业微信 1. 在企业微信管理后台创建自建应用 2. 设置回调 URL 为 `http(s)://你的域名/webhook/wechat_work` 3. 在 `channels.yaml` 填入 `corp_id`、`agent_id`、`secret`、`token`、`encoding_aes_key` ### 飞书 1. 在飞书开放平台创建应用 2. 开启「机器人」能力 3. 事件订阅地址设为 `http(s)://你的域名/webhook/feishu` 4. 订阅事件 `im.message.receive_v1` 5. 在 `channels.yaml` 填入 `app_id`、`app_secret`、`verification_token` ### WhatsApp 1. 在 Meta 开发者后台配置 WhatsApp Business API 2. Webhook URL 设为 `http(s)://你的域名/webhook/whatsapp` 3. 在 `channels.yaml` 填入 `phone_number_id`、`access_token`、`verify_token` ### 网页聊天 默认启用。访问 `/chat` 即可使用内置聊天界面,也可通过 REST API 或 WebSocket 集成到自己的系统。 ## 扩展新通道 继承 `core/channel_base.py` 的 `ChannelBase`,实现以下方法: ```python class MyChannel(ChannelBase): @property def platform(self) -> str: return "my_platform" async def start(self) -> None: ... async def stop(self) -> None: ... async def send(self, msg: OutboundMessage) -> bool: ... def register_routes(self, app) -> None: ... ``` 然后在 `main.py` 的 `_register_channels()` 中注册即可。 ## 聊天命令 在任何通道中发送: - `/reset` — 重置对话上下文 - `/status` — 查看当前会话状态 - `/help` — 查看可用命令 ## 管理接口 | 路径 | 方法 | 说明 | |:---|:---|:---| | `/` | GET | 欢迎页 | | `/status` | GET | 通道状态 | | `/health` | GET | 健康检查 | | `/chat` | GET | 网页聊天界面 | | `/docs` | GET | API 文档(Swagger) | ## 目录结构 ``` aiye_im_bridge/ ├── main.py # 主入口 ├── start.sh # 启动脚本 ├── requirements.txt # 依赖 ├── config/ │ ├── channels.yaml # 通道配置(不入库) │ └── channels.example.yaml # 配置示例 ├── core/ │ ├── channel_base.py # Channel 基类 │ ├── router.py # 消息路由 │ ├── session.py # 会话管理 │ └── bridge.py # 网关桥接 └── channels/ ├── wechat_personal.py # 个人微信 ├── wechat_work.py # 企业微信 ├── feishu.py # 飞书 ├── whatsapp.py # WhatsApp └── web.py # 网页聊天 ``` ## 依赖 - Python 3.10+ - fastapi、uvicorn、httpx、pyyaml、websockets - 卡若AI 网关运行中(默认 `http://127.0.0.1:18080`) ## 与消息中枢的关系 - **消息中枢**(Clawdbot/Moltbot):TypeScript,OpenClaw 框架,重型多通道 AI 助手 - **艾叶**:Python,轻量 Webhook 桥接,专注于把消息接到卡若AI网关 两者可共存,艾叶更适合快速对接新平台、轻量部署。