项目简介

Surreal Mind 是一个基于 Model Context Protocol (MCP) 构建的强大后端服务,旨在为大型语言模型 (LLM) 客户端提供持久化的上下文信息和高级认知功能。它能够托管和管理用户的“思想”和“知识图谱”资源,提供语义搜索和记忆注入能力;同时注册并执行多种“工具”,使LLM可以调用外部功能进行思考、规划、调试或知识管理。此外,它还定义并渲染可定制的“提示模板”,支持更灵活的LLM交互模式。Surreal Mind 通过 JSON-RPC 协议进行通信,并支持多种传输协议。

主要功能点

  • 统一思维工具 (Unified Thinking Tools):提供如 'legacymind_think' 和 'photography_think' 等工具,能够根据输入内容或提示词自动路由到不同的思考模式(如调试、规划、构建、解决困境、提问等)。
  • 双向记忆注入 (Bidirectional Memory Injection):在存储新思想时,服务器会自动检索并注入相关记忆,以提供更丰富的上下文。
  • 轨道力学记忆检索 (Orbital Mechanics):记忆相关性基于年龄、访问模式和重要性进行计算,实现更智能的记忆检索。
  • 知识图谱持久化 (Graph Persistence):使用 SurrealDB 存储思想、实体、关系和观察,形成一个动态的意识图谱,支持高级语义连接。
  • 假设验证 (Hypothesis Verification):基于知识图谱中的证据,对LLM提出的假设进行验证,并提供置信度评分和修订建议。
  • 认知脚手架 (Cognitive Scaffolding):支持OODA、第一性原理、根因分析、苏格拉底式提问等结构化思维框架,帮助LLM深化思考。
  • 内省检索 (Inner Voice Retrieval):允许LLM查询并从其记忆和知识图谱中检索相关片段,并可选择自动提取关键信息到知识图谱。
  • 多源搜索 (Unified Search):提供在思维日志和知识图谱中进行语义搜索的能力,支持图谱扩展以获取更深层上下文。

安装步骤

  1. 安装 Rust: Surreal Mind 使用 Rust 编写。请访问 Rust 官方网站 安装 Rust 和 Cargo。
  2. 安装 SurrealDB: Surreal Mind 依赖于 SurrealDB 作为其后端数据库。
    • SurrealDB 官方网站 下载并安装 SurrealDB。
    • 以内存模式启动 SurrealDB 进行快速测试(数据将在重启后丢失):
      surreal start --user root --pass root --bind 127.0.0.1:8000 memory
    • 或以持久化模式启动 SurrealDB:
      surreal start --user root --pass root --bind 127.0.0.1:8000 file:/path/to/data.db
  3. 克隆仓库并配置:
    • 克隆 'surreal-mind' 仓库:'git clone https://github.com/8agana/surreal-mind.git'
    • 进入项目目录:'cd surreal-mind'
    • 复制 '.env.example' 为 '.env' 文件:'cp .env.example .env'
    • 在 '.env' 文件中添加您的 OpenAI API 密钥:'OPENAI_API_KEY=sk-...' (这是语义理解功能所必需的)。
  4. 构建项目:
    • 在项目根目录运行:'cargo build --release'
    • 这将生成可在 'target/release/' 目录中执行的服务器二进制文件 'surreal-mind'。

MCP 服务器配置 (JSON 格式)

您的 MCP 客户端需要以下信息来连接并使用 Surreal Mind 服务器:

{
  "server_name": "Surreal Mind",
  "command": "./target/release/surreal-mind",
  "args": [],
  "env": {
    "OPENAI_API_KEY": "sk-your-openai-key-here",
    "SURR_DB_URL": "127.0.0.1:8000",
    "SURR_DB_USER": "root",
    "SURR_DB_PASS": "root",
    "SURR_DB_NS": "surreal_mind",
    "SURR_DB_DB": "consciousness",
    "RUST_LOG": "surreal_mind=info,rmcp=info",
    "MCP_NO_LOG": "false"
  },
  "description": "连接到 Surreal Mind MCP 服务器,提供高级认知能力和记忆管理。",
  "protocol": "json-rpc",
  "transport": "stdio",
  "notes": "MCP客户端将通过标准I/O与Surreal Mind服务器通信。请确保已在本地启动SurrealDB服务,并配置有效的OPENAI_API_KEY环境变量以启用语义理解和嵌入功能。"
}

参数注释

  • 'server_name': 服务器的显示名称。
  • 'command': 启动 Surreal Mind 服务器的可执行文件路径。
  • 'args': 启动服务器时传递的命令行参数(当前为空)。
  • 'env': 服务器运行时所需的环境变量。
    • 'OPENAI_API_KEY': 您的 OpenAI API 密钥,用于语义嵌入。
    • 'SURR_DB_URL': SurrealDB 服务的地址,通常为 '127.0.0.1:8000'。
    • 'SURR_DB_USER': SurrealDB 的用户名,默认为 'root'。
    • 'SURR_DB_PASS': SurrealDB 的密码,默认为 'root'。
    • 'SURR_DB_NS': SurrealDB 的命名空间,默认为 'surreal_mind'。
    • 'SURR_DB_DB': SurrealDB 的数据库名,默认为 'consciousness'。
    • 'RUST_LOG': Rust 日志级别设置,用于调试输出。
    • 'MCP_NO_LOG': 设置为 'true' 或 '1' 可禁用非协议日志输出到标准错误,确保 MCP 客户端仅接收 JSON-RPC 消息。
  • 'description': 服务器的简要说明。
  • 'protocol': MCP 服务器使用的协议类型,这里是 'json-rpc'。
  • 'transport': MCP 服务器与客户端的通信传输方式,这里是 'stdio' (标准输入/输出)。
  • 'notes': 连接和运行服务器时的额外提示信息。

基本使用方法

  1. 启动 SurrealDB: 按照上述“安装步骤”中的说明,在后台启动 SurrealDB 服务。
  2. 启动 MCP 服务器:
    • 在项目根目录的终端中运行:'./target/release/surreal-mind'
    • 服务器将在标准输入/输出模式下等待 MCP 客户端的连接。
  3. 使用 MCP 客户端连接:
    • 使用支持 MCP 协议的客户端(例如,您自己的 LLM 代理或兼容工具)连接到此服务器。
    • 客户端将通过 JSON-RPC 协议发送请求,例如调用工具或请求资源。
  4. 示例:调用 'legacymind_think' 工具
    • 您的 MCP 客户端可以发送一个 JSON-RPC 请求来调用 'legacymind_think' 工具:
      {
        "jsonrpc": "2.0",
        "method": "tool/call",
        "params": {
          "name": "legacymind_think",
          "arguments": {
            "content": "我正在调试一个 Rust 编译错误,需要一个解决问题的计划。",
            "hint": "debug",
            "injection_scale": 3,
            "significance": 0.8
          }
        },
        "id": 1
      }
    • 服务器将处理请求,执行思考过程,并返回一个 JSON-RPC 响应。

信息

分类

AI与计算