安装
内容详情
安装
{
"mcpServers": {
"neuroverse": {
"command": "npx",
"args": ["neuroverse"]
}
}
}
{
"mcpServers": {
"neuroverse": {
"command": "python",
"args": ["mcp/server.py"],
"cwd": "/path/to/neuroverse"
}
}
}🧠 NeuroVerse
你的 AI 智能体只会说英语。NeuroVerse 解决了这个问题。
你的 AI 智能体什么都记不住。NeuroVerse 记得。
你的 AI 智能体可能会做出危险操作。NeuroVerse 阻止它。
你的 AI 智能体被锁定在单一模型上。NeuroVerse 会路由到最优模型。
面向自主 AI 智能体的多语言智能 + 记忆 + 安全 + 语音层。
🚀 v4.1 新特性
- OpenRouter 推理:集成
stepfun/step-3.5-flash:free模型,用于高性能分析任务。使用新的neuroverse_reason工具进行深度思考。 - 推理 Token:实时追踪每个请求的推理 token。
- 语音层(v2.0):内置对 Whisper STT 和 Coqui TTS 的支持。
🚀 NeuroVerse 是什么?
每次你用 Cursor、VS Code Copilot 或任何兼容 MCP 的 AI 智能体开启一段新对话时,它都从零开始——没有记忆、没有安全保障,也听不懂你的语言。NeuroVerse 是一个 MCP 服务器,为你的智能体提供:
| 特性 | 描述 | |
|---|---|---|
| 🌐 | 多语言智能 | 理解混合的印度语言——泰米尔语、印地语、泰卢固语、卡纳达语、马拉雅拉姆语、孟加拉语 + 英语。语码切换?没问题。 |
| 🎙️ | 语音层 | 通过 Whisper 进行 STT,通过 Coqui 进行 TTS。转写用户音频并合成智能体回复。 |
| 🧠 | 意图提取 | 以 LLM 为主的结构化意图提取,并带有确定性的基于规则的兜底。绝不遗漏任何命令。 |
| 💾 | 分层记忆 | 短期(会话)、情景(近期)、语义(长期事实)——全部带有重要性评分。 |
| 🛡️ | 三层安全(Kavach) | 关键词黑名单 → 意图风险分类器 → LLM 裁判。在 DROP DATABASE 酿成大祸之前将其拦截。 |
| 🤖 | 多模型路由器(Marga) | OpenAI · Anthropic · Sarvam AI · Ollama · OpenRouter——自动将每项任务路由到最合适的模型。 |
| 🔗 | 智能体到智能体(Setu) | REST+JSON 智能体注册表,带自动兜底。智能体调用智能体再调用智能体。 |
| ⚡ | 全部异步 | FastAPI + asyncpg + httpx。亚毫秒级安全检查。零阻塞。 |
⚡ NeuroVerse 是一个模块化智能层——而非单体应用。按需插拔。不需要的部分直接忽略。
目录
- 快速开始
- 为什么选择 NeuroVerse?
- 工作原理
- 多语言智能(Vani)
- 意图提取(Bodhi)
- 分层记忆(Smriti)
- 安全层(Kavach)
- 多模型路由器(Marga)
- 智能体到智能体(Setu)
- MCP 工具
- REST API
- 配置
- 测试
- 架构
- 路线图
- 贡献指南
🚀 快速开始
1. 安装
方式 A:npm(推荐)——随处可用
npm install neuroverse
方式 B:从源码安装(Python)
git clone https://github.com/joshua400/neuroverse.git
cd neuroverse
python -m pip install -e ".[dev]"
💡 提示: 如果你通过 npm 安装,路径是 node_modules/neuroverse/dist/index.js。如果从源码安装,请使用你克隆目录的绝对路径。
2. 将 NeuroVerse 添加到你的 MCP 配置
NeuroVerse 是一个标准的 MCP 服务器(stdio)。将它添加到你的宿主配置中:
Cursor / VS Code Copilot / Claude Desktop(npm)
{
"mcpServers": {
"neuroverse": {
"command": "npx",
"args": ["neuroverse"]
}
}
}
从源码(Python)
{
"mcpServers": {
"neuroverse": {
"command": "python",
"args": ["mcp/server.py"],
"cwd": "/path/to/neuroverse"
}
}
}
3. 让你的智能体使用 NeuroVerse
将此加入你的智能体规则文件(.md、.cursorrules、系统提示词等):
## NeuroVerse 集成
- 使用 `neuroverse_process` 处理任何用户请求——它会自动检测语言、提取意图、检查安全性并执行。
- 使用 `neuroverse_reason` 处理需要分析推理的复杂任务(由 OpenRouter 驱动)。
- 使用 `neuroverse_store` / `neuroverse_recall` 实现跨会话的持久上下文。
- 使用 `neuroverse_execute` 处理任何有潜在危险的操作——它会拦截破坏性操作。
就这样。你的智能体只需要知道两个命令:
| 命令 | 何时使用 | 会发生什么 |
|---|---|---|
neuroverse_process(text, user_id) |
任何用户请求 | 检测语言、提取意图、安全检查、执行 |
neuroverse_store(user_id, intent, ...) |
工作结束时 | 保存上下文供下次会话使用 |
下次会话时,你的智能体会从上次中断的地方精准继续——就像从未遗忘一样。
环境要求
- npm 版: Node.js 18+(零数据库依赖——使用 JSON 文件)
- Python 版: Python 3.10+ + PostgreSQL(用于持久化记忆)
🤔 为什么选择 NeuroVerse?
| 没有 NeuroVerse | 有了 NeuroVerse |
|---|---|
| 智能体只懂英语 | 智能体理解泰米尔语、印地语、泰卢固语、卡纳达语 + 英语语码切换 |
"anna file ah csv convert pannu" → ❌ 报错 |
"anna file ah csv convert pannu" → ✅ 将文件转换为 CSV |
| 每次会话从零开始 | 智能体记住它做过什么——跨会话、跨智能体 |
DROP DATABASE → 💀 你的数据没了 |
DROP DATABASE → 🛡️ 在 < 1ms 内拦截,零 token |
| 被锁定在单一 LLM 供应商 | 自动为每项任务路由到最优模型 |
| 两个智能体 = 混乱 | 智能体 A 无缝交接给智能体 B |
Token 效率
NeuroVerse 的安全层以零 token 成本运行——纯正则表达式和规则匹配,不浪费任何 LLM 调用:
| 安全方案 | 每次检查成本 | 延迟 |
|---|---|---|
| 基于 LLM 的安全 | 500–2,000 tokens | 1–5 秒 |
| 基于嵌入 | 100–500 tokens | 200–500ms |
| NeuroVerse Kavach | 0 tokens | < 1ms |
在每个会话 100 次工具调用的情况下,相比基于 LLM 的安全方案,可节省 50,000–200,000 tokens。
⚙️ 工作原理
用户输入(任意语言)
│
┌────┴────┐
│ Vani │ ← 语言检测 + 关键词归一化
│ (भाषा) │ 泰米尔语/印地语/泰卢固语 → 归一化的内部格式
└────┬────┘
│
┌────┴────┐
│ Bodhi │ ← LLM 意图提取 + 基于规则的兜底
│ (बोधि) │ 返回带置信度的结构化 JSON
└────┬────┘
│
┌────┴────┐
│ Kavach │ ← 三层安全:黑名单 → 风险 → LLM 裁判
│ (कवच) │ 以零 token 成本拦截危险操作
└────┬────┘
│
┌────┴────┐
│ Marga │ ← 路由到最优模型(OpenAI/Anthropic/Sarvam/Ollama)
│ (मार्ग) │ 基于任务类型:多语言/推理/本地
└────┬────┘
│
┌────┴────┐
│ Smriti │ ← 从分层记忆中存储/召回
│ (स्मृति) │ 短期 + 情景 + 语义(PostgreSQL)
└────┬────┘
│
工具执行 + 响应
🌐 多语言智能 — Vani
问题: 每个 MCP 服务器都只会说英语。而印度有 70% 的人每天都在使用语码切换。
"anna indha file ah csv convert pannu"
↓
"anna this file ah csv convert do" ← 关键词归一化(非完整翻译)
↓
Intent: convert_format { output_format: "csv" }
混合流水线(规则 + LLM)
输入 → 语言检测(langdetect)→ 语码切换拆分 → 关键词归一化 → 输出
关键洞见: 不要做完整翻译。只归一化领域关键的关键词。其余内容保持原样——从而保留上下文、语气和细微含义。
支持的语言
| 语言 | 映射的关键词 | 示例 |
|---|---|---|
| 🇮🇳 泰米尔语 | pannu → do, maathru → change, anuppu → send |
"file ah csv convert pannu" |
| 🇮🇳 印地语 | karo → do, banao → create, bhejo → send |
"report banao sales ka" |
| 🇮🇳 泰卢固语 | cheyyi → do, pampu → send, chupinchu → show |
"data chupinchu" |
| 🇮🇳 卡纳达语 | v2 版本将支持 | — |
| 🇬🇧 英语 | 直接通过 | "convert json to csv" |
语码切换检测
{
"languages": ["ta", "en"],
"confidence": 0.92,
"is_code_switched": true,
"original_text": "anna indha file ah csv convert pannu",
"normalized_text": "anna this file ah csv convert do"
}
🧠 意图提取 — Bodhi
LLM 优先。基于规则兜底。绝不失败。
LLM 成功(置信度 ≥ 0.5)?
├─ 是 → 使用 LLM 结果
└─ 否 → 基于规则的解析器(确定性)
LLM 策略
# Prompt to LLM:
"Extract structured intent from the following input.
Return ONLY valid JSON: {intent, parameters, confidence}"
基于规则的兜底(7 种模式)
| 模式 | 意图 | 触发关键词 |
|---|---|---|
| 格式转换 | convert_format |
convert, csv, json, excel, pdf |
| 摘要 | summarize |
summarise, summary, brief, tldr |
| 报告生成 | generate_report |
report, generate report |
| 删除 | delete_data |
delete, remove, drop, clean |
| 数据查询 | query_data |
query, search, find, fetch, get |
| 通信 | send_message |
send, share, email, notify |
| 解释 | explain |
explain, describe, what is, how to |
输出
{
"intent": "convert_format",
"parameters": { "input_format": "json", "output_format": "csv" },
"confidence": 0.87,
"source": "rule"
}
关键区别:由代码决定——而非 LLM。如果 LLM 失败、产生幻觉或返回垃圾内容,规则引擎会接管。确定性。可靠。
💾 分层记忆 — Smriti
问题: 原始日志毫无用处。存储一切浪费资源。没有相关性评分。
NeuroVerse 的方案: 评分 → 过滤 → 压缩 → 存储。
三个层级
| 层级 | 存储 | 生命周期 | 用途 |
|---|---|---|---|
| 短期 | 进程内字典 | 当前会话 | 活跃上下文,每用户上限 50 条 |
| 情景 | PostgreSQL | 近期操作 | 智能体最近做了什么 |
| 语义 | PostgreSQL | 长期事实 | 关于用户、项目、实体的持久知识 |
重要性评分
if importance_score >= 0.4:
persist_to_database() # worth remembering
else:
skip() # noise
只有重要的记忆才会保留。没有冗余。没有不相关的召回。
上下文压缩
❌ Bad: "The user asked about sales data three times in the last hour and seemed frustrated..."
✅ Good: { "intent": "sales_query", "frequency": 3, "sentiment": "frustrated" }
结构化 JSON 负载,而非原始文本堆砌。已压缩。可索引。可查询。
记忆结构(PostgreSQL)
CREATE TABLE memory_records (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
tier TEXT NOT NULL, -- short_term | episodic | semantic
intent TEXT NOT NULL,
language TEXT DEFAULT 'en',
data JSONB DEFAULT '{}', -- compressed structured payload
importance REAL DEFAULT 0.5,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Indexed: user_id, intent, tier
🛡️ 安全层 — Kavach
"永不入睡的盾牌。"
三层——纵深防御
智能体调用工具 → MCP 服务器接收请求
│
┌───────────┴───────────┐
│ 第 1 层:黑名单 │ ← 正则 + 关键词,< 0.1ms
└───────────┬───────────┘
│ 通过
┌───────────┴───────────┐
│ 第 2 层:风险评分 │ ← 意图 → 风险分类
└───────────┬───────────┘
│ 通过
┌───────────┴───────────┐
│ 第 3 层:LLM 裁判 │ ← 可选的基于模型的检查
└───────────┬───────────┘
│ 通过
执行处理器
第 1 层 — 基于规则的黑名单(零成本)
在 MCP 服务器内部运行。纯正则。无网络。无 token。
拦截的关键词:
delete_all_data, drop_database, drop_table, system_shutdown,
format_disk, rm -rf, truncate, shutdown, reboot, erase_all, destroy
拦截的模式(正则):
DROP (DATABASE|TABLE|SCHEMA)
DELETE FROM *
TRUNCATE TABLE
FORMAT [drive]:
rm (-rf|--force)
第 2 层 — 意图风险分类
| 风险等级 | 意图 | 操作 |
|---|---|---|
| 🟢 低 | convert_format, summarize, generate_report, query_data, explain |
✅ 允许 |
| 🟡 中 | send_message, unknown |
⚠️ 严格模式下拦截 |
| 🔴 高 | delete_data |
❌ 始终拦截 |
| ⛔ 严重 | drop_database, system_shutdown |
❌ 始终拦截 |
第 3 层 — LLM 安全裁判(可选)
如果第 1–2 层通过,可选地询问 LLM:"这个操作安全吗?"
// LLM returns:
{ "safe": false, "reason": "This action would delete all user data." }
安全判定
{
"allowed": false,
"risk_level": "critical",
"reason": "Blocked keyword detected: 'drop_database'",
"blocked_by": "rule"
}
Token 成本:零
大多数 AI 安全: 智能体 → "rm -rf /" → 安全 LLM → 消耗 2,000 tokens
NeuroVerse: 智能体 → "rm -rf /" → 正则匹配 → 拦截(0 tokens,< 1ms)
严格模式
# .env
SAFETY_STRICT_MODE=true # 同时拦截中风险(unknown/send)
SAFETY_STRICT_MODE=false # 仅拦截高风险和严重
🤖 多模型路由器 — Marga
问题: 供应商锁定。一个模型包打天下。过度付费。
NeuroVerse 的方案: 将每项任务路由到最优模型。自动完成。
路由逻辑
def route_task(task):
if task.type == "multilingual":
return sarvam_model # Best for Indian languages
elif task.type == "reasoning":
return claude_or_openai # Best for complex analysis
elif task.type == "local":
return ollama # Free, on-device, private
else:
return best_available # Fallback chain
支持的供应商
| 供应商 | 默认模型 | 最适合 | 成本 |
|---|---|---|---|
| 🇮🇳 Sarvam AI | sarvam-2b-v0.5 |
印度语言、多语言 | 低 |
| 🧩 OpenRouter | stepfun/step-3.5-flash:free |
高性能推理 | 免费 |
| 🧠 Anthropic | claude-sonnet-4-20250514 |
推理、分析 | 中 |
| 🤖 OpenAI | gpt-4o |
通用任务、代码 | 中 |
| 🦙 Ollama | llama3 |
本地、私密、离线 | 免费 |
优势
| 没有 Marga | 有了 Marga | |
|---|---|---|
| 成本 | 一切任务都付 GPT-4 的钱 | 简单任务用 Ollama |
| 速度 | 所有任务延迟相同 | 快速任务用本地模型 |
| 隐私 | 一切都发往云端 | 敏感数据留在本地 |
| 供应商锁定 | 被单一供应商绑定 | 随时切换 |
兜底链
如果你首选的供应商宕机或未配置:
OpenRouter → Anthropic → OpenAI → Sarvam → Ollama(本地,始终可用)
🔗 智能体到智能体 — Setu
智能体调用智能体再调用智能体。
智能体注册表
register_agent({
"agent_name": "report_agent",
"endpoint": "http://localhost:8001/generate",
"capabilities": ["generate_report", "sales_analysis"]
})
路由
{
"target_agent": "report_agent",
"task": "generate_sales_report",
"payload": { "quarter": "Q1", "year": 2026 }
}
兜底
如果目标智能体不可达:
{
"success": false,
"error": "Agent unreachable: ConnectError",
"fallback": true
}
调用方可以回退到本地执行。没有硬性失败。
🧩 MCP 工具
NeuroVerse 通过 Model Context Protocol 暴露 6 个工具:
| # | 工具(npm) | 工具(Python) | 描述 |
|---|---|---|---|
| 1 | neuroverse_process |
india_mcp_process_multilingual_input |
完整流水线:检测 → 归一化 → 意图 → 安全 → 执行 |
| 2 | neuroverse_store |
india_mcp_store_memory |
在分层系统中存储一条记忆记录 |
| 3 | neuroverse_recall |
india_mcp_recall_memory |
按用户、意图或层级检索记忆 |
| 4 | neuroverse_execute |
india_mcp_safe_execute |
端到端安全执行(便捷方法) |
| 5 | neuroverse_route |
india_mcp_route_agent |
将任务路由到已注册的下游智能体 |
| 6 | neuroverse_model |
india_mcp_model_route |
查询多模型路由器(可选调用) |
| 7 | neuroverse_transcribe |
india_mcp_transcribe_audio |
通过 Whisper STT 将音频转写为文本 |
| 8 | neuroverse_synthesize |
india_mcp_synthesize_speech |
通过 Coqui TTS 从文本合成语音 |
| 9 | neuroverse_reason |
N/A | 通过 OpenRouter 进行高性能推理 |
真实示例
── 会话 1(智能体 Alpha,下午 2 点)───────────────────────
india_mcp_process_multilingual_input({
text: "anna indha sales data ah csv convert pannu",
user_id: "alpha",
execute: true
})
→ 语言:泰米尔语 + 英语(语码切换)
→ 意图:convert_format { output_format: "csv" }
→ 安全:✅ 允许(低风险)
→ 执行:✅ 成功
india_mcp_store_memory({
user_id: "alpha",
intent: "convert_format",
tier: "episodic",
data: { "file": "sales_q1.json", "output": "csv" },
importance_score: 0.8
})
── 会话 2(智能体 Beta,第二天)─────────────────────────
india_mcp_recall_memory({
user_id: "alpha",
intent: "convert_format",
limit: 5
})
→ "智能体 Alpha 昨天把 sales_q1.json 转换成了 CSV"
→ Beta 从 Alpha 中断的地方精准继续
🌐 REST API
NeuroVerse 还附带一个 FastAPI REST 层——用于非 MCP 客户端:
python app/main.py
# → http://localhost:8000/docs (Swagger UI)
| 端点 | 方法 | 描述 |
|---|---|---|
/health |
GET | 健康检查 |
/api/process |
POST | 完整多语言流水线 |
/api/memory/store |
POST | 存储记忆 |
/api/memory/recall |
POST | 检索记忆 |
⚙️ 配置
所有设置通过环境变量(.env)配置:
# Database (PostgreSQL required for persistent memory)
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/neuroverse
# AI Model API Keys (configure the ones you have)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
SARVAM_API_KEY=...
# Ollama (local, free)
OLLAMA_BASE_URL=http://localhost:11434
# Safety
SAFETY_STRICT_MODE=true # Block MEDIUM risk actions too
# MCP Transport
MCP_TRANSPORT=stdio # or streamable_http
MCP_PORT=8000
🧪 测试
python -m pytest tests/ -v
tests/test_intent.py — 10 passed (rule-based + async + mock LLM + fallback)
tests/test_language.py — 10 passed (keyword normalisation + detection + code-switch)
tests/test_pipeline.py — 8 passed (full e2e: English, Tamil, Hindi, dangerous, edges)
tests/test_safety.py — 12 passed (blocklist, regex, risk classification, pipeline)
============================= 40 passed in 0.87s ==============================
测试内容
| 类别 | 测试数 | 覆盖范围 |
|---|---|---|
| 语言检测 | 10 | 泰米尔语、印地语、英语、空输入、语码切换标志 |
| 意图提取 | 10 | 全部 7 种规则模式、LLM 模拟、LLM 失败、空输入 |
| 安全引擎 | 12 | 关键词、正则、风险等级、完整流水线、严格模式 |
| 完整流水线 | 8 | 端到端英语、泰米尔语、印地语、危险命令、边界情况 |
🏗️ 架构
npm 版(Node.js / TypeScript)
npm/
├── src/
│ ├── core/
│ │ ├── language.ts # Vani — Language detection (zero deps)
│ │ ├── intent.ts # Bodhi — Intent extraction (LLM + fallback)
│ │ ├── memory.ts # Smriti — Tiered memory (JSON files)
│ │ ├── safety.ts # Kavach — 3-layer safety engine
│ │ └── router.ts # Marga — Multi-model AI router
│ ├── services/
│ │ ├── executor.ts # Tool registry + retry engine
│ │ └── agent-router.ts # Setu — Agent-to-Agent routing
│ ├── types.ts # TypeScript interfaces & enums
│ ├── constants.ts # Shared constants
│ └── index.ts # MCP Server — 6 tools (McpServer + Zod)
├── package.json # npm publish config
├── tsconfig.json
└── LICENSE # Apache-2.0
Python 版
app/
├── core/
│ ├── language.py # Vani — Language detection (langdetect)
│ ├── intent.py # Bodhi — Intent extraction (LLM + fallback)
│ ├── memory.py # Smriti — Tiered memory (PostgreSQL)
│ ├── safety.py # Kavach — 3-layer safety engine
│ └── router.py # Marga — Multi-model AI router
├── models/schemas.py # 12 Pydantic
替代品








VIP会员