# 儿童心理陪伴玩偶项目 — 进展综述 > 生成时间:2026-04-05 10:20 CST > 负责人:西莉雅(Sileya) > 仓库:http://xmhome.ow-my.com:3000/sileya-ai/child-psycho-companion --- ## 📌 项目背景 基于小智 AI 生态的儿童心理陪伴玩偶项目,由客座教授(大头/胡老师)指导团队开发。目标是通过 AI 实时检测儿童对话中的心理问题信号,并给予适当引导。 --- ## ✅ 已完成功能 ### 1. 核心筛查模块 `PsychoScreener` **文件:** `src/psycho_screener/` - 调用 MiniMax API 检测儿童对话心理问题 - 检测类别(7类): - `bullying` — 校园霸凌 - `depression` — 抑郁倾向 - `anxiety` — 焦虑 - `family_conflict` — 家庭冲突 - `self_esteem` — 自尊问题 - `trauma` — 创伤 - `social_isolation` — 社交孤立 - `build_response_prefix()`:检测到问题时注入 `【已发现特定心理问题】...` 前缀 **状态:** ✅ 真实 API 集成测试全部通过(bullying/normal/full_flow) ### 2. MCP 工具(标准协议版) **文件:** `src/psycho_screener/mcp_tool.py` - 使用 `fastmcp` 框架 - 工具名:`psycho_screen` - 参数:`messages`(OpenAI 格式对话数组)、`include_prefix`(是否注入前缀) - 返回:筛查结果(JSON)+ 注入前缀 **文件:** `src/psycho_screener/mcp_tool_native.py` - 使用官方 `mcp` Python SDK(不依赖 fastmcp) - 适用于直接集成到 xiaozhi-esp32-server 的 Docker 容器环境 **状态:** ✅ 原生 MCP stdio 协议验证通过(霸凌/抑郁/正常对话检测正确) ### 3. 测试语料库 **文件:** `docs/test_corpus.md` - 8条虚构对话语料,覆盖 bullying、depression、anxiety、normal 等场景 ### 4. xiaozhi CLI 客户端测试工具 **文件:** `test_xiaozhi_client.py`、`xiaozhi_cli_client.py` - 用于调试 xiaozhi-esp32-server WebSocket 连接 - `test_xiaozhi_client.py`:pytest 测试套件 - `xiaozhi_cli_client.py`:CLI 交互工具 ### 5. MCP 模拟器 **文件:** `mcp_simulator.py` - 模拟 xiaozhi 与 psycho-screener 的 stdio 对接 - 验证 MCP 协议通信正常 ### 6. 本地 Docker 环境 - `xiaozhi-esp32-server` 容器运行中(端口 8000/8003) - `mcp-endpoint-server` 容器运行中(端口 8004) - `.mcp_server_settings.json` 已配置(stdio 模式,挂载源码进容器) - `/app/psycho-screener` 源码卷已挂载进 xiaozhi-esp32-server 容器 --- ## 🔧 Git Commit 历史 | Commit | 描述 | |--------|------| | `9b79ccd` | feat: 原生MCP工具 + xiaozhi CLI客户端测试工具 | | `6c483b8` | feat: MCP协议模拟器 - 验证xiaozhi与psycho-screener的stdio对接 | | `7896fbd` | docs: 更新 README,包含 MCP 接入指南 | | `558b105` | feat: MCP工具 + 测试语料 | | `1ab84d4` | fix: 修复 MiniMax 思考过程混入 JSON 响应的问题 | | `d5e64f4` | feat: 儿童心理陪伴筛查插件初始版本 | --- ## ⚠️ 待解决问题 ### 高优先级 1. **Telegram 群组接入故障** - 群「童心语伴-ai陪伴」(-1003769524030) bot 没有收到消息 - 错误:`"没有收到消息"`、`"This group is not allowed"` - 原因:未确定(可能是群模式权限设置或上下文压缩导致的文件破损) 2. **xiaozhi-server MCP stdio 工具初始化未确认** - xiaozhi-server MCP stdio 工具初始化未在日志中确认 - 需要真实设备连接触发才能验证 3. **py-xiaozhi 客户端 WebSocket 认证问题** - WebSocket 认证有问题,待进一步调试 ### 中优先级 4. **流式解析修复(容器内)** - `stream: True` 硬编码了两处,导致 `stream=False` 配置被忽略 - 修复已在容器内完成,但未同步回宿主机源码 5. **案例库设计** - 需要设计心理陪伴案例库,用于 AI 引导话术生成 --- ## 🔄 超时问题说明 近期在西莉雅参与的 Telegram 群聊中,发生了多次超时(5-6次),上下文频繁压缩。可能原因: - Session 上下文长度累积过快 - Telegram 群聊消息路由不稳定导致重复触发 - xiaozhi-server 流式解析问题导致异常响应堆积 **建议措施:** 将超时时间拉长至 30 分钟(由 Joery 建议) --- ## 📂 项目结构 ``` child-psycho-companion/ ├── README.md ├── pyproject.toml ├── .env / .env.example ├── mcp_config.json # MCP 工具配置 ├── mcp_simulator.py # MCP 协议模拟器 ├── test_xiaozhi_client.py # pytest 测试套件 ├── xiaozhi_cli_client.py # CLI 调试工具 ├── docs/ │ └── test_corpus.md # 测试语料(8条) └── src/ └── psycho_screener/ ├── __init__.py ├── screener.py # 核心筛查逻辑 ├── prompt.py # Prompt 模板 ├── models.py # 数据模型 ├── mcp_tool.py # fastmcp 版本 └── mcp_tool_native.py # 原生 mcp SDK 版本 ``` --- ## 📅 下一步计划 1. 解决 Telegram 群组接入问题 2. 用真实设备测试 MCP stdio 工具初始化 3. 修复 py-xiaozhi WebSocket 认证问题 4. 将容器内流式解析修复同步回源码 5. 设计心理陪伴案例库 6. 接入真实 xiaozhi-esp32-server MCP 端点 --- _最后更新:2026-04-05 10:20 CST_