这是一个基于 Model Context Protocol (MCP) 构建的数字孪生服务器实现。它模拟了一个具有独立个性、记忆和学习能力的AI实体,通过MCP协议向兼容的LLM客户端提供其上下文信息和功能。
项目简介
本项目实现了一个能够模拟特定用户响应、维护演进的人格画像,并使用语言模型管理向量化记忆的数字孪生系统。它利用 FastMCP 库将核心功能暴露为 MCP 工具,从而可以被 LLM 客户端调用和交互。
主要功能点
- 个性模拟: 根据预设或学习到的人格特质和沟通风格生成响应。
- 记忆管理: 存储和检索长期及短期记忆,支持内容关联搜索。
- 自主进化: 基于与用户的交互自动更新人格特质和知识。
- 反思系统: 定期对过往经历进行自我反思和总结。
- 工具暴露: 通过MCP协议暴露如获取个性、添加记忆、搜索记忆等功能作为可调用的工具。
安装步骤
-
克隆仓库(请注意,仓库信息中提供的URL 'https://github.com/ChiragPatankar/digital-twin-mcp' 在代码中似乎使用了 'jlowin-fastmcp' 的路径,这可能表示该项目是基于 'jlowin-fastmcp' 仓库的一个分支或示例。以下步骤基于提供的代码结构进行说明):
git clone https://github.com/ChiragPatankar/digital-twin-mcp.git cd digital-twin-mcp -
创建并激活Python虚拟环境:
python -m venv venv source venv/bin/activate # 在 Windows 上使用: venv\Scripts\activate -
安装项目依赖:
pip install -e . -
创建 '.env' 文件在项目根目录,并填入必要的API密钥和数据库连接信息:
OPENAI_API_KEY=your_openai_api_key_here OPENAI_MODEL=gpt-4 # 或其他支持的模型 HUGGINGFACE_API_KEY=your_huggingface_api_key_here # 可选,如果使用相关模型 DATABASE_URL=sqlite:///digital_twin.db # 数据库文件路径
服务器配置
MCP客户端需要知道如何启动和连接到这个数字孪生服务器。典型的MCP客户端配置会包含如下信息。请根据你的实际环境调整 'command' 和 'args' 中的路径。
{ // 服务器名称,用于在客户端界面显示 "server name": "Alice's Digital Twin", // 启动服务器进程的命令 "command": "python", // 传递给命令的参数列表。这里指向运行服务器的Python脚本路径 "args": [ "examples/digital_twin_example.py" ], // MCP协议的传输方式 (stdio, sse, websocket)。此实现可能默认为 stdio "transport": "stdio", // 如果使用网络传输,指定主机名 (仅 websocket/sse 相关) "host": "localhost", // 如果使用网络传输,指定端口号 (仅 websocket/sse 相关) "port": 8000 }
基本使用方法
安装并配置完毕后,可以通过运行 'examples/digital_twin_example.py' 脚本来启动数字孪生MCP服务器:
# 确保你已激活虚拟环境 source venv/bin/activate # Windows: venv\Scripts\activate # 运行示例脚本,该脚本会初始化数字孪生并调用 .run() 方法启动MCP服务器 python examples/digital_twin_example.py
服务器启动后,兼容的MCP客户端即可通过配置中指定的命令和参数连接到该服务,并调用其暴露的工具,例如:
- 'get_personality': 获取当前的数字孪生人格特质。
- 'add_memory': 为数字孪生添加新的记忆片段。
- 'search_memories': 在数字孪生的记忆库中搜索相关信息。
- 'update_personality': 根据交互更新数字孪生的个性。
- 'analyze_sentiment': 分析文本的情感。
LLM客户端可以通过调用这些工具来获取上下文信息、执行特定动作,并根据这些信息生成更具个性化和基于记忆的响应。
信息
分类
AI与计算