
你的 AI 灵魂伴侣 — 聊天、协作、创造
自托管 AI 智能体网关,支持 WhatsApp、Telegram、Discord、Slack、iMessage 等 30+ 渠道。
一个网关连接多渠道,兼顾数据掌控、路由能力与可扩展性。
项目简介 • 最近进展 • 功能概览 • 架构 • 仓库结构 • 技术栈 • 快速开始 • 配置说明 • 开发工作流 • 测试 • 扩展开发 • 故障排查 • 文档
OpenSoul 是一个自托管 AI 智能体网关。你只需要运行一个网关进程,就可以在 WhatsApp、Telegram、Discord、Slack、iMessage 等多个渠道中使用同一个 AI 智能体。
它采用本地优先控制平面:将渠道适配层统一接入一个运行时,由你掌控模型路由、长期记忆、工具调用与安全边界。
基于 CHANGELOG 的近期更新:
| 类别 | 渠道 |
|---|---|
| 即时通讯 | WhatsApp · Telegram · Signal · iMessage · Matrix · Mattermost · Zalo |
| 协作平台 | Slack · Discord · Microsoft Teams · 飞书 (Lark) · LINE |
| Web + API | Web 控制台 · WebChat · REST API · WebSocket |
| 语音与媒体 | 语音通话 · 音频 · 图片 · 文档 |
flowchart LR
A["渠道 / 渠道插件"] --> B["Gateway"]
B --> C["智能体运行时 (pi-ai)"]
B --> D["记忆与存储"]
B --> E["技能与工具"]
B --> F["Web 控制台"]
B --> G["CLI / TUI"]
B --> H["原生应用"]
| 模块 | 路径 | 职责说明 |
|---|---|---|
| Gateway | src/gateway | HTTP/WS 服务、编排、sidecar 管理 |
| Agent Runtime | src/agents | 会话执行、工具注入、运行时集成 |
| Routing | src/routing | 消息到智能体/会话的路由解析 |
| Plugins | src/plugins | 插件发现、加载、注册与运行时 API |
| Channels | src/ + extensions/ | 渠道适配器与协议集成 |
| Memory | src/memory | 长期记忆与存储 |
| Web UI | ui/ | 控制台前端(Lit + Vite) |
| Apps | apps/ | 原生移动/桌面客户端 |
src/ 核心网关、运行时、路由、配置、插件
extensions/ 外部渠道/Provider/Hook 扩展
ui/ Web 控制台资源与前端应用
skills/ 内置技能
docs/ 用户与参考文档
apps/ 原生客户端(Android/iOS/macOS/Windows)
scripts/ 构建、发布、测试与工具脚本
| 层级 | 版本 |
|---|---|
| Node.js | >= 22.12.0 |
| pnpm | 10.23.0 |
| TypeScript | 5.9.3 |
| Web UI | Lit 3.3.2 + Vite |
| API Server | Hono 4.11.10 / Express 5.2.1 |
| Testing | Vitest 4.0.18 |
| Lint/Format | Oxlint 1.43.0 + Oxfmt 0.28.0 |
git clone https://github.com/NJX-njx/opensoul.git
cd opensoul
pnpm install
pnpm build
# 跳过需要外部凭证的渠道
export OPENSOUL_SKIP_CHANNELS=1
export OPENSOUL_GATEWAY_TOKEN=dev-token
pnpm gateway:dev
$env:OPENSOUL_SKIP_CHANNELS = "1"; $env:OPENSOUL_GATEWAY_TOKEN = "dev-token"; node scripts/run-node.mjs --dev gateway
opensoul onboard
opensoul gateway run
可放在 .env 或 ~/.opensoul/.env:
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
OPENROUTER_API_KEY=
GEMINI_API_KEY=
MINIMAX_API_KEY=
OPENCODE_API_KEY=
ZAI_API_KEY=
OPENSOUL_GATEWAY_TOKEN=
加载顺序与优先级见 Environment。
OPENSOUL_GATEWAY_TOKEN(或 gateway.auth.token)。OPENSOUL_SKIP_CHANNELS=1。${ENV} 变量替换。pnpm install
pnpm build
pnpm dev
pnpm gateway:dev
pnpm check
pnpm test
修改 ui/ 后:
pnpm ui:buildpnpm check = 类型检查 + lint + 格式检查pnpm check:loc 使用仓库阈值:--max 2000 --max-function 150pnpm testvitest.config.ts、vitest.e2e.config.ts、vitest.gateway.config.ts、vitest.extensions.config.ts、vitest.live.config.tsscripts/e2e/ 与 test:docker:* 脚本extensions/<name>/opensoul/plugin-sdk 作为公开 APIsrc/* 模块opensoul.plugin.json 与 index.ts| 现象 | 常见原因 | 处理方式 |
|---|---|---|
| 网关启动后立即退出 | 缺少 gateway token | 设置 OPENSOUL_GATEWAY_TOKEN 或 gateway.auth.token |
| 开发模式启动渠道失败 | 缺少外部渠道凭证 | 本地开发使用 OPENSOUL_SKIP_CHANNELS=1 |
| 端口占用 | 端口已被其他进程占用 | 修改 gateway.port 或运行 pnpm test:force 清理 |
| 服务模式读不到 API Key | 守护进程未继承 shell 环境 | 将密钥写入 ~/.opensoul/.env 或开启 env.shellEnv |
MIT License — 详见 LICENSE。基于 OpenClaw(MIT)构建。
如果 OpenSoul 对你有帮助,欢迎在 GitHub 点亮 ⭐。
$ claude mcp add opensoul \
-- python -m otcore.mcp_server <graph>