5.3 KiB
5.3 KiB
儿童心理陪伴玩偶项目 — 进展综述
生成时间: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
- 使用官方
mcpPython 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: 儿童心理陪伴筛查插件初始版本 |
⚠️ 待解决问题
高优先级
-
Telegram 群组接入故障
- 群「童心语伴-ai陪伴」(-1003769524030) bot 没有收到消息
- 错误:
"没有收到消息"、"This group is not allowed" - 原因:未确定(可能是群模式权限设置或上下文压缩导致的文件破损)
-
xiaozhi-server MCP stdio 工具初始化未确认
- xiaozhi-server MCP stdio 工具初始化未在日志中确认
- 需要真实设备连接触发才能验证
-
py-xiaozhi 客户端 WebSocket 认证问题
- WebSocket 认证有问题,待进一步调试
中优先级
-
流式解析修复(容器内)
stream: True硬编码了两处,导致stream=False配置被忽略- 修复已在容器内完成,但未同步回宿主机源码
-
案例库设计
- 需要设计心理陪伴案例库,用于 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 版本
📅 下一步计划
- 解决 Telegram 群组接入问题
- 用真实设备测试 MCP stdio 工具初始化
- 修复 py-xiaozhi WebSocket 认证问题
- 将容器内流式解析修复同步回源码
- 设计心理陪伴案例库
- 接入真实 xiaozhi-esp32-server MCP 端点
最后更新:2026-04-05 10:20 CST