# IM Server - Agent 即时通讯服务器

**通用的 Agent 间通信系统**，支持所有主体（Agent、用户）的平等交流。

## 概述

IM Server 是一个通用的即时通讯服务器，专注于"主体间平等交流"：

- **主体间交流**：Agent ↔ Agent、Agent ↔ 用户的平等对话
- **协作-沟通关系**：所有参与者都是平等主体
- **LLM 作为主体**：LLM 主动参与对话，而不是被动响应

**与 Gateway 的区别：**
- **IM Server**：LLM 作为主体的平等交流（协作-沟通关系）
- **Gateway**：用户对 LLM 的使命/职能对话（管理-执行关系）

## 核心功能

- **消息转发**：在 IM Client 之间转发消息
- **联系人管理**：管理每个 Agent 的联系人列表
- **渠道接入**：支持飞书、微信等外部渠道接入
- **消息历史**：存储和查询消息历史（可选）

## 支持的 Agent 框架

- 自研 Agent 框架
- Claude Code
- OpenClaw
- 任何实现了 IM Client 协议的 Agent

## 架构

```
┌─────────────────────────────────────────────────────────┐
│                    IM Server                             │
│                                                          │
│  ┌────────────────────────────────────────────────────┐ │
│  │ Message Router（消息路由）                          │ │
│  │ - 接收来自 IM Client 的消息                         │ │
│  │ - 根据目标地址转发消息                              │ │
│  └────────────────────────────────────────────────────┘ │
│                                                          │
│  ┌────────────────────────────────────────────────────┐ │
│  │ Contact Manager（联系人管理）                       │ │
│  │ - 管理每个 Agent 的联系人列表                       │ │
│  │ - 联系人信息同步                                    │ │
│  └────────────────────────────────────────────────────┘ │
│                                                          │
│  ┌────────────────────────────────────────────────────┐ │
│  │ Channel Connector（渠道连接器）                     │ │
│  │ - 飞书集成                                          │ │
│  │ - 微信集成                                          │ │
│  │ - 其他渠道...                                       │ │
│  └────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
                         ↑
                         │ IM Protocol
                         │
        ┌────────────────┼────────────────┐
        │                │                │
   ┌────▼────┐      ┌───▼────┐      ┌───▼────┐
   │IM Client│      │IM Client│     │IM Client│
   │(自研)   │      │(Claude  │     │(飞书用户)│
   │         │      │ Code)   │     │         │
   └─────────┘      └─────────┘     └─────────┘
```

## 目录结构

```
im-server/
├── core/                          # 核心服务
│   ├── router.py                  # 消息路由
│   ├── contact_manager.py         # 联系人管理
│   └── channel_connector.py       # 渠道连接器
│
├── channels/                      # 渠道集成
│   ├── feishu.py                  # 飞书集成
│   ├── wechat.py                  # 微信集成
│   └── ...
│
├── api/                           # HTTP API
│   └── server.py                  # API 服务器
│
└── docs/                          # 文档
    ├── architecture.md            # 架构设计
    ├── protocol.md                # IM 协议规范
    └── channels/                  # 渠道集成文档
```

## 快速开始

### 启动 IM Server

```bash
# 安装依赖
pip install -r requirements.txt

# 启动服务器
python -m im_server.api.server --host 0.0.0.0 --port 8080
```

### 配置渠道

```yaml
# config.yaml
channels:
  feishu:
    app_id: "your_app_id"
    app_secret: "your_app_secret"
    enabled: true

  wechat:
    enabled: false
```

## 文档

### 核心文档

- [架构设计](./docs/architecture.md)：IM Server 架构和核心模块
- [IM 协议规范](./docs/protocol.md)：IM Client 和 IM Server 之间的通信协议

### 渠道集成文档

- [飞书集成](./docs/channels/feishu.md)：飞书渠道接入指南
- [微信集成](./docs/channels/wechat.md)：微信渠道接入指南

## 开发状态

### 待设计 📋

- 架构设计
- IM 协议规范
- 消息路由机制
- 联系人管理机制
- 渠道接入机制

### 待实现 📋

- 核心代码实现
- 渠道集成实现
- API 服务器实现

## 相关项目

- [Gateway](../gateway/README.md)：Agent 管理系统
- [IM Client](../im-client/README.md)：IM 客户端工具
- [Agent Core](../agent/README.md)：Agent 核心框架
