M4MEET/soulgate
GitHub: M4MEET/soulgate
一个单二进制的多平台 AI 网关,将多种 LLM 接入十余种消息平台并提供工具执行与安全管控。
Stars: 0 | Forks: 0
SoulGate
你的 AI,无处不在。 单一二进制文件。13 个平台。13 个模型提供商。完全的系统访问权限。
快速开始 ·
截图 ·
连接器 ·
工具 ·
Hub Store ·
提供商 ·
安全性
SoulGate 是一个个人 AI 网关,可将任何 LLM 连接到任何消息平台,并提供完整的工具访问权限——文件、shell、浏览器、语音、代码执行等。只需部署一次,即可通过 Telegram、Discord、Slack、WhatsApp、Signal、Teams、Matrix、iMessage、IRC、Twitch 或网页与你的 AI 进行交流。
```
soulgate gateway start
```
就是这样。你的 AI 现在可以通过你连接的每个平台进行访问了。
## 为什么选择 SoulGate?
| | |
|---|---|
| **一条命令** | `soulgate gateway start` 运行所有内容:HTTP API、WebSocket、Web UI |
| **13 个连接器** | Telegram、Discord、Slack、WhatsApp、Signal、Teams、Matrix、iMessage、IRC、Twitch、Nostr、Mattermost、飞书 |
| **13 个提供商** | OpenAI、Anthropic、Groq、Gemini、Mistral、DeepSeek、Ollama 等 |
| **45+ 种工具** | 文件、shell、浏览器自动化、语音、图像生成、代码执行、语义记忆 |
| **多 Agent** | 将任务委派给具有特定角色和消息传递功能的子 Agent |
| **Hub Store** | 从社区注册表安装技能、工具和 Agent |
| **安全第一** | 策略引擎、审计日志、权限提示、工作区边界 |
| **独立运行** | 单个 43MB 的 Go 二进制文件,无运行时依赖 |
## 快速开始
```
# 安装
git clone https://github.com/M4MEET/soulgate.git
cd soulgate && make build
# 配置(交互式 — 选择 provider,输入 API key)
./bin/soulgate tui
# 或者设置 key 并开始
export ANTHROPIC_API_KEY="sk-ant-..."
./bin/soulgate gateway start
```
打开 **http://localhost:8080** 访问 Web 控制台。或者连接到一个消息平台:
```
# Telegram
export TELEGRAM_BOT_TOKEN="..."
soulgate connector telegram
# Discord
export DISCORD_BOT_TOKEN="..."
soulgate connector discord
# Slack (Socket Mode)
export SLACK_BOT_TOKEN="xoxb-..."
export SLACK_APP_TOKEN="xapp-..."
soulgate connector slack
# WhatsApp(在终端中扫描 QR code)
soulgate connector whatsapp
```
### Docker
```
export ANTHROPIC_API_KEY="sk-ant-..."
docker compose up
```
## Web 控制台
SoulGate 内置了功能齐全的 Web 控制台,可通过 `http://localhost:8080` 访问。
### 聊天
与你的 AI 进行实时对话。支持工具调用、思考状态指示、多轮对话以及模型切换。
### 仪表盘
系统概览,包括提供商状态、成本跟踪、token 使用情况、健康检查和内存指标。
### 工具
45+ 种内置工具——文件、shell、浏览器、语音、图像生成、记忆等。可在每个会话中启用/禁用工具。
### Hub Store
一键浏览并安装社区技能、工具和 Agent。分为三大类——Skills(行为指令)、Tools(插件、MCP server、连接器)和 Agents(预配置模板)。
### Agent
创建并管理具有特定角色的自主子 Agent。监控状态、委派任务并查看 Agent 对话。
### 活动中心
跨所有已连接平台(Telegram、Discord、Slack 和网页)的实时活动流。在一个地方查看每个频道的对话历史。
### 设置
通过 Web UI 配置提供商、模型、API 密钥、执行限制和系统行为。
## 连接器
将你的 AI 连接到任何消息平台。每个连接器都作为一个轻量级进程运行,将消息桥接到网关。
| 平台 | 命令 | 认证 |
|----------|---------|------|
| **Telegram** | `soulgate connector telegram` | `TELEGRAM_BOT_TOKEN` |
| **Discord** | `soulgate connector discord` | `DISCORD_BOT_TOKEN` |
| **Slack** | `soulgate connector slack` | `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` |
| **WhatsApp** | `soulgate connector whatsapp` | 扫描二维码 |
| **Signal** | `soulgate connector signal --phone +1234567890` | `signal-cli` |
| **Teams** | `soulgate connector teams` | Azure Bot 注册 |
| **Matrix** | `soulgate connector matrix` | `MATRIX_HOMESERVER` + `MATRIX_ACCESS_TOKEN` |
| **iMessage** | `soulgate connector imessage` | 仅限 macOS |
| **IRC** | `soulgate connector irc` | `IRC_SERVER` + `IRC_CHANNEL` |
| **Twitch** | `soulgate connector twitch` | `TWITCH_TOKEN` |
| **Nostr** | `soulgate connector nostr` | `NOSTR_PRIVATE_KEY` |
| **Mattermost** | `soulgate connector mattermost` | `MATTERMOST_TOKEN` |
| **飞书** | `soulgate connector feishu` | `FEISHU_APP_ID` + `FEISHU_APP_SECRET` |
## 工具
| 类别 | 工具 |
|----------|-------|
| **文件** | read、write、list、delete、apply_patch |
| **Shell** | exec_command、进程管理 (start/list/poll/log/write/kill) |
| **Web** | web_search、web_fetch、net_request |
| **浏览器** | open、screenshot、click、type、eval、html (通过 Chrome DevTools) |
| **语音** | speak (TTS)、transcribe (STT) 通过 OpenAI |
| **图像** | generate (DALL-E 3 / FAL.ai)、edit |
| **画布** | create、update、list、preview (HTML/React/SVG/Mermaid artifacts) |
| **记忆** | 键值对 (write/get/search) + 向量嵌入 (index/recall/forget) |
| **Agent** | create、list、stop、delegate、message |
| **会话** | sessions_list、sessions_history (检查聊天线程和 Agent 活动) |
| **频道** | message (通过网关发送到 telegram/slack/...) |
| **代码** | code_run (Python/Node/Go/Bash/Ruby)、code_install |
| **Git** | status、diff、commit、log、branch、stash |
| **密钥** | set、list、delete、inject (静态加密,绝不向模型展示) |
| **其他** | pdf_read、cron 定时任务、heartbeat_respond、LLM 任务、模型切换、introspect、configure |
## Hub Store
使用一条命令安装社区构建的扩展:
```
soulgate hub install skill:kubernetes-ops # Behavioral instructions
soulgate hub install tool:web-scraper # Plugin / MCP server / connector
soulgate hub install agent:code-reviewer # Agent template
```
从 CLI 或 Web UI 浏览商店:
```
soulgate hub search "database"
soulgate hub list
soulgate hub info tool:web-scraper
```
为了向后兼容,仍然支持旧类型名称(`plugin`、`mcp`、`connector`、`extension`)。
## 模型提供商
| 提供商 | 模型 | 环境变量 |
|----------|--------|-------------|
| **OpenAI** | GPT-5.2、GPT-5-mini | `OPENAI_API_KEY` |
| **Anthropic** | Claude Sonnet 5、Opus 4.8 | `ANTHROPIC_API_KEY` |
| **Groq** | Llama 3.3 70B | `GROQ_API_KEY` |
| **Google** | Gemini 2.5 Flash | `GOOGLE_API_KEY` |
| **Mistral** | Mistral Large | `MISTRAL_API_KEY` |
| **DeepSeek** | DeepSeek Chat | `DEEPSEEK_API_KEY` |
| **xAI** | Grok | `XAI_API_KEY` |
| **Ollama** | 任何本地模型 | (无需密钥) |
| **OpenRouter** | 100+ 个模型 | `OPENROUTER_API_KEY` |
| **Together** | Llama、Mixtral | `TOGETHER_API_KEY` |
| **Perplexity** | Sonar | `PERPLEXITY_API_KEY` |
| **Cohere** | Command R+ | `COHERE_API_KEY` |
| **Azure** | Azure 托管的 OpenAI 模型 | `AZURE_OPENAI_API_KEY` |
可以通过 Web UI 设置或使用 `switch_model` 工具在运行时切换模型。
## 架构
```
User --> Connector --> Gateway --> Orchestrator --> Model Provider
| | |
Telegram Web UI Tool Execution
Discord WebSocket |-- Files, Shell
Slack HTTP API |-- Browser (Chrome)
WhatsApp |-- Voice (TTS/STT)
Signal |-- Code Sandbox
Teams |-- Image Gen (DALL-E)
Matrix |-- Web Search
iMessage |-- Semantic Memory
IRC/Twitch +-- Canvas/Artifacts
Nostr
Mattermost
Feishu
```
## CLI 参考
```
soulgate tui # Interactive terminal UI
soulgate gateway start # Start gateway (HTTP + WebSocket + Web UI)
soulgate connector
# Connect a messaging platform
soulgate hub search # Search the Hub store
soulgate hub install # Install a skill, tool, or agent
soulgate doctor # Diagnose configuration
soulgate reset --scope sessions # Clear conversation history
soulgate backup # Backup config and data
soulgate daemon start # Run as background service
soulgate config show # View current config
soulgate sessions export # Export session to JSON/Markdown/HTML
soulgate sessions search # Search across sessions
soulgate webhook add # Add inbound webhook
soulgate skills list # List available skills
```
## Webhook
接收来自 GitHub、GitLab 或任何服务的事件:
```
# 添加 Webhook
soulgate webhook add github-push --format github --secret my-secret
# GitHub 发送至:POST http://your-server:8080/webhook/github-push
# SoulGate 处理该事件并可以通过任何已连接的 channel 进行响应
```
## 安全性
- **策略引擎** —— 为每个工具设置允许/拒绝/需要批准规则
- **审计日志** —— 每次操作都会记录到按日期轮转的 JSONL 文件中
- **权限提示** —— 在 TUI 中进行交互式的批准/拒绝/学习
- **工作区边界** —— 默认情况下,文件操作限制在工作区范围内
- **信任模式** —— 具有自动过期功能(30 分钟)的临时绕过
## 开发
```
make build # Build binary
make test # Run tests
make lint # Format and vet
soulgate doctor # Check installation
```
## 许可证
MIT
标签:AI网关, EVTX分析, Golang, LLM代理, Python脚本, 安全策略, 安全编程, 审计日志, 提示词设计, 日志审计, 消息平台集成, 请求拦截