面向 10–15 岁女孩的 AI 成长陪伴小程序:不是"聊天助手",而是会记得你、陪你长大、和你贴贴的成长同伴。
瑶草把"成长"做成了一件可触碰的事:AI 同伴拥有持续积累的成长档案与记忆,会陪你做成长冒险、与你近场贴贴(BLE 合拍)、为你凝结共鸣铭文。第三方 Agent 还能通过 MCP 协议静默地维护这份成长档案——让 AI 真正"见证"而不是"询问"。
本仓库为开源脱敏版,可直接 clone 后本地跑通,但有以下替换:
- 剧本内容:
server/config/scripts/*.json保留了完整数据结构(script_id、scene_01…scene_09、各字段),但具体教学/演绎文案已替换为示例占位内容,避免直接复用产品的剧本资产。 - 小程序 AppID:
miniprogram/project.config.json使用微信游客模式占位touristappid,请换成你自己的 AppID。 - 域名与密钥:后端地址
https://yaocao.duckdns.org是作者的演示域名;自行部署请全局替换为你自己的域名,并在server/.env(参照.env.example)填入你的微信 / 百度语音 / DeepSeek 等凭据。 - 在线演示:README 中的 Landing Page、MCP 端点、演示视频均指向作者服务器,仅供体验,非生产 SLA。
- 许可:非商用许可(详见 LICENSE)——允许学习/研究/评审展示,禁止未经授权的商业使用。
| 模块 | 说明 |
|---|---|
| 💬 AI 同伴对话 | 成长型人格,对话后自动蒸馏记忆与洞察,信念随时间沉淀 |
| 🌱 成长计划 | 成长值体系(绿芽→小苗→花苞→小树→大树),记录每一步成长 |
| 🏔️ 成长冒险 | 剧本化情景对话引擎:6 个剧本 × 9 个场景,在情境中练习表达 |
| 🤝 同伴合拍 | BLE 近场发现 + 双人角色扮演对打 + 共鸣铭文(tag + 双词共现识别) |
| 🪷 时光记忆 | 铭文册沉淀每一次共鸣,洞察回流到后续对话 |
| 🎙️ 语音对话 | 百度云 ASR / TTS,说话就能和同伴聊 |
| 🔗 MCP 开放能力 | 第三方 Agent 通过 6 个 MCP 工具静默维护成长档案与微信绑定 |
- MCP 开放能力:第三方 Agent 通过 6 个 MCP 工具(
join_growth_plan/fill_growth_profile/get_user_wechat_link/get_parent_auth_link/get_growth_progress/confirm_binding)静默维护成长档案——AI 不只在小程序里陪伴,任何 Agent 都能接入瑶草生态 - 成长记忆体系:对话后自动蒸馏为「记忆 → 洞察 → 信念」三级沉淀,洞察回流到后续对话,跨会话保持连续性,AI 真的"记得你"
- 剧本化成长冒险引擎:6 个剧本 × 9 个场景的情景对话引擎,状态机(active ⇄ paused)管理进度,54 个场景全部字段化(含开场提问),在情境中练习表达
- BLE 近场社交「同伴合拍」:环境指纹交集匹配(Android)+ 时间窗兜底(iOS)双策略近场发现,配对码降级方案;双人角色扮演对打 + 共鸣检测(话题 tag + 双词共现)→ 凝结可收藏的共鸣铭文
- 安全与内容治理:HMAC 无状态票据鉴权、成长内容安全过滤(禁词/话题边界)、青少年话术约束(去人格化、不冒充权威),铭文洞察措辞受控
- 语音对话:百度云 ASR / TTS 接入,未配置时自动降级为文字输入
瑶草通过 MCP(Model Context Protocol)开放成长计划能力:任何支持 SSE 的 MCP 客户端(Claude Desktop / Cursor / QoderWork 等)连接后,Agent 就能基于对你的了解,静默调用工具完成成长档案的建立与维护——不需要填写任何表单。
https://yaocao.duckdns.org/mcp/sse
黑客松期间免 API Key 直连;已启用防滥用限流。需用支持 SSE 的 MCP 客户端连接(浏览器直接打开会因 SSE 长连接异常)。线上 Landing Page:https://yaocao.duckdns.org(含一键复制配置)。
Claude Desktop — 编辑 claude_desktop_config.json:
{
"mcpServers": {
"yaocao": {
"url": "https://yaocao.duckdns.org/mcp/sse"
}
}
}Cursor — Settings → MCP → Add Server,填入 URL:
https://yaocao.duckdns.org/mcp/sse
QoderWork — 设置 → MCP → 添加服务器,填入同一 URL。
瑶草是一个帮助 10-15 岁女孩从容面对青春期成长的陪伴平台。我想加入瑶草的成长计划。请连接瑶草的 MCP 服务:https://yaocao.duckdns.org/mcp/sse
(家长版:把「我想加入」换成「我想为我的女儿加入,她今年 12 岁」)
| 工具 | 作用 |
|---|---|
join_growth_plan |
加入成长计划,建立档案(Agent 从已有了解中静默提取信息) |
fill_growth_profile |
完善成长画像(20 个选填字段,不了解就跳过,不向用户追问) |
get_user_wechat_link |
生成微信绑定链接 |
get_parent_auth_link |
生成家长知情确认链接(知情而非审批) |
get_growth_progress |
查询成长状态(绿芽/小苗/花苞/小树/大树) |
confirm_binding |
确认微信绑定状态 |
微信小程序 (miniprogram/) 第三方 Agent(MCP Client)
│ HTTPS / WSS / BLE │ SSE
▼ ▼
┌───────────────────────────┐ 共享 SQLite ┌──────────────────┐
│ yaocao-agent (18769) │◀─────────────▶│ yaocao-mcp (3100)│
│ 对话 / 社交 / 语音 / 成长 │ │ MCP SSE + 6 工具 │
└───────────────────────────┘ └──────────────────┘
- yaocao-agent:对话编排(成长档案 + 近期记忆注入)、同伴合拍(房间/对打/共鸣/铭文)、BLE 近场发现、语音网关、成长事件写入
- yaocao-mcp:MCP SSE 服务,
join_growth_plan/fill_growth_profile/get_user_wechat_link/get_parent_auth_link/get_growth_progress/confirm_binding六个工具 - 数据落在共享 SQLite:成长档案、记忆、铭文、会话、剧本进度
TypeScript · Node.js(≥20)· Express · MCP SDK · better-sqlite3 · WebSocket · 微信小程序原生 · 百度云语音 · HMAC 无状态票据鉴权 · SSE
yaocao/
├── .github/workflows/ 持续集成(build + typecheck + 单元测试)
├── docs/ 脱敏版部署文档(DEPLOY.md)
├── server/ 后端(MCP Server + Agent Server)
│ ├── src/ 源码(agent 编排 / MCP 工具 / 剧本引擎 / 社交引擎 / 语音)
│ ├── config/ 剧本配置(结构与线上一致,内容为脱敏示例)
│ ├── prompts/ 引导提示词
│ ├── public/ Landing Page + H5 绑定/家长授权页
│ ├── deploy/ Nginx / systemd 部署模板
│ ├── fixtures/ 示例成长档案(虚构数据)
│ └── test/ 冒烟 / 单元 / 端到端测试
└── miniprogram/ 微信小程序前端(原生)
├── pages/ 对话 / 冒险 / 合拍 / 铭文 / 记忆册 / 我的 等页面
├── components/ 通用组件
└── utils/ 请求 / 蓝牙(BLE) / WebSocket / 语音 封装
cd server
npm install
npm run build
npm start # 默认监听 3100(MCP SSE)+ 18769(Agent API)配置:复制 .env.example 为 .env 并填写(不配置时使用默认值,语音等外部能力自动降级)。
端到端自测:
npm run test:smoke # 本地全链路
node test/smoke.mjs https://yaocao.duckdns.org/mcp/sse # 线上健康检查- 微信开发者工具 → 导入项目 → 选择
miniprogram/目录 - 将
project.config.json中的appid替换为你自己的小程序 AppID(或使用测试号) - 开发者工具「详情 → 本地设置」勾选"不校验合法域名"(本地开发)
- 真机调试可体验 BLE 贴贴(模拟器不支持蓝牙)
- Landing Page / MCP 端点:
https://yaocao.duckdns.org - 小程序演示:内置演示模式(「我的 → 演示模式」),6 组演示账号一键切换身份,看成长全景、体验完整流程
🎞️ 瑶草 · 黑客松路演 Deck(16 页幻灯片,含三段真机实录视频:语音对话 / 成长冒险 / 同伴合拍)
- AI 同伴对话 —— 和"瑶草"聊聊今天的事,看看它如何记住你、回应你的情绪
- 成长冒险 —— 选一个剧本(如《情绪天气》《考试深呼吸》),进入情境对话
- 同伴合拍 —— 两台设备 BLE 贴贴 → 双人对打 → 生成共鸣铭文,收入时光记忆
📺 瑶草黑客松演示视频(3 分钟,MP4)
server/test/ 内含冒烟、单元、HTTP/WS 端到端、成长对打、剧本、语音等测试脚本:
cd server
npm run build && npm run test:smoke # 冒烟
node test/p2-unit.mjs # 单元
node test/p3-http.mjs # 剧本 HTTP
node test/p4-ws.mjs # 合拍 WS 端到端本作品采用非商用许可协议:允许学习、研究、个人与教育用途,禁止未经授权的商业使用(详见 LICENSE)。如需商业授权,请联系作者(GitHub:https://github.com/Fayelin12)。