# 小伴:基于文心大模型的陪伴式学习机器人 | openclaw 阶段1
## 项目简介
小伴是一个陪伴式学习机器人,基于文心大模型 v2 API 构建 Agent 决策链路,结合 FSRS 记忆调度算法实现跨会话个性化教学。
核心命题:一个学习机器人如果不认识用户,就只是一个带语音的搜索引擎。小伴通过长期记忆系统(用户画像 + 生活事实 + 知识卡片),让机器人越教越懂你。
## 系统架构:感知 → 决策 → 执行
```
用户语音/文本
↓
┌─ 感知层 ──────────────────────┐
│ 百度语音识别 / 文本输入 │
└───────────────────────────────┘
↓
┌─ 决策层(Agent 大脑)──────────┐
│ │
│ 文心 API 调用 1:意图理解 │
│ (ERNIE-4.0-Turbo, t=0.1) │
│ → practice / review / summary │
│ ↓ │
│ 文心 API 调用 2:任务规划 │
│ (ERNIE-4.0-Turbo, t=0.3) │
│ → 结合用户画像 + FSRS 到期卡片 │
│ ↓ │
│ 文心 API 调用 3:对话执行 │
│ (ERNIE-4.0-8K, t=0.7) │
│ → 注入记忆 + 教学计划 │
│ │
│ 记忆系统:SQLite 持久化 │
│ · user_profile(画像) │
│ · user_facts(生活事件) │
│ · grammar_cards(FSRS 调度) │
└────────────────────────────────┘
↓
┌─ 执行层 ──────────────────────┐
│ TTS 语音输出 / 文本回复 │
│ [阶段2] 舵机动作 + LED 反馈 │
└───────────────────────────────┘
```
## 文心大模型 API 调用方式
采用千帆 v2 协议(OpenAI 兼容格式 + IAM 安全认证),3 次调用构成 Agent 链路:
| 调用点 | 角色 | 模型 | temperature | 输入 | 输出 |
|--------|------|------|------------|------|------|
| 1 | 意图分类器 | ERNIE-4.0-Turbo | 0.1 | 用户文本 | `{intent, confidence}` |
| 2 | 教学规划器 | ERNIE-4.0-Turbo | 0.3 | 意图 + 画像 + FSRS 卡片 | 教学步骤 JSON |
| 3 | 对话教练 | ERNIE-4.0-8K | 0.7 | 教学计划 + 记忆 | 自然语言回复 |
认证方式:`Authorization: Bearer {IAM_KEY}`,无需 access_token 刷新。
## 3 组指令演示
### 指令 1:“开始今天的英语练习”
```
[感知] 百度语音识别 → “开始今天的英语练习”
[决策] 文心调用1 → intent=practice, confidence=0.90
[决策] 文心调用2 → 教学计划:角色扮演日常场景,练习时态
[决策] 文心调用3 → 生成回复
[执行] 小伴:"Let’s pretend we’re at a cafe. You can start by saying,
'Could I get a large cappuccino, please?' I'll respond as the barista."
```
### 指令 2:“帮我复习上次的错误”
```
[感知] 百度语音识别 → “帮我复习上次的错误”
[决策] 文心调用1 → intent=review, confidence=1.00
[决策] 文心调用2 → 查询 FSRS 到期卡片,生成复习计划
[决策] 文心调用3 → 生成回复
[执行] 小伴:"Sure! Let’s go over a few things from last time.
So, tell me — what did you do over the weekend?"
```
### 指令 3:“总结我这周的学习情况”
```
[感知] 百度语音识别 → “总结我这周的学习情况”
[决策] 文心调用1 → intent=summary, confidence=1.00
[决策] 文心调用2 → 聚合学习数据,生成报告
[决策] 文心调用3 → 转化为自然语言
[执行] 小伴:"Great week! Your flow in discussing hobbies feels natural!
To level up, try adding more descriptive words."
```
## 机器人控制链路
**感知层**:百度语音识别(阶段1) → 端侧 hobot_asr(阶段2 RDK X3)
**决策层**:文心大模型 Agent(3 次调用) + FSRS 记忆调度引擎
- 意图理解:判断用户想做什么
- 任务规划:结合用户画像和知识卡片状态,生成教学计划
- 对话执行:注入记忆和教学计划,生成个性化回复
**执行层**:TTS 语音输出(阶段1) → 舵机点头/摇头 + LED 状态灯(阶段2 RDK X3)
## 失败场景处理
| 场景 | 处理 |
|------|------|
| 文心 API 超时 | 重试 1 次 → 降级到 ERNIE-3.5-Turbo |
| 千帆平台不可用 | 纯本地模式:展示 FSRS 卡片 |
| 意图识别置信度低 | 进入自由聊天模式 |
| STT 识别失败 | 提供文本输入入口 |
## 阶段 2 展望:RDK X3 实体部署
阶段 1 验证了 Agent 大脑(灵魂),阶段 2 将大脑装进 RDK X3(身体):
- 端侧 STT/TTS(hobot_asr + hobot_tts),语音不上云
- 摄像头 + BPU 表情识别,检测用户困惑/走神
- 舵机点头鼓励 + LED 状态灯
- ROS 2(TogetheROS.Bot)节点编排
## 交付物
- 代码仓库:https://github.com/bob798/xiaoban
- 演示视频:[视频链接]
- 技术栈:FastAPI + 文心大模型 v2 + SQLite + FSRS + Docker
```bash
# 一键启动
git clone https://github.com/bob798/xiaoban.git
cd xiaoban
cp .env.example .env # 填入 BAIDU_API_KEY
docker compose up -d
```
—
作者:bob798
GitHub:https://github.com/bob798