Skip to content

架构概览

Project N.E.K.O. 采用多进程微服务架构构建,三个主要服务器通过 WebSocket、HTTP 和 ZeroMQ 消息进行协作。

系统架构图

架构图

三服务器设计

服务器端口入口文件职责
主服务器48911main_server.pyWeb UI、REST API、WebSocket 聊天、TTS
记忆服务器48912memory_server.py语义召回、时间索引历史、记忆压缩
智能体服务器48915agent_server.py后台任务执行(MCP、Computer Use、Browser Use)

主服务器是面向用户的入口。它提供 Web UI 服务,处理所有 REST API 请求,并维护用于实时语音/文字聊天的 WebSocket 连接。记忆服务器和智能体服务器是内部服务,由主服务器与之通信。

通信模式

┌──────────────────────────────────────────┐
│              主服务器 (:48911)             │
│                                          │
│  FastAPI ─── REST 路由                    │
│  WebSocket ─── LLMSessionManager         │
│  ZeroMQ PUB ───┐                         │
│  ZeroMQ PULL ──┼── AgentEventBridge      │
│  HTTP Client ──┤                         │
└────────────────┼─────────────────────────┘

        ┌────────┼────────┐
        │        │        │
        ▼        ▼        ▼
     记忆       智能体    监控
     服务器     服务器    服务器
   (:48912)   (:48915) (:48913)
  • 主服务器 <-> 记忆服务器:通过 HTTP 请求存储/查询记忆
  • 主服务器 <-> 智能体服务器:通过 ZeroMQ 发布/订阅进行任务委派和结果流式传输
  • 主服务器 <-> 监控服务器:通过 WebSocket 进行实时状态更新

关键架构模式

会话热切换

LLMSessionManager 在当前会话仍然活跃时,于后台预先准备新的 LLM 会话。当用户结束一个对话轮次时,系统无缝切换到预热好的会话,实现零停机。音频在过渡期间被缓存,之后再行发送。

按角色隔离

每个角色(通过 lanlan_name 标识)拥有独立的:

  • LLMSessionManager 实例
  • 同步连接器线程
  • WebSocket 锁
  • 消息队列
  • 关闭事件

异步/同步边界

FastAPI 处理器是异步的。TTS 合成在专用线程中运行,通过队列通信。音频处理使用执行器线程池。ZeroMQ 事件桥运行后台接收线程。

下一步

基于 MIT 许可发布。