# 小智AI自动提醒配置指南
## 当前实现状态 ✅
MCP服务已经完全支持自动提醒功能,`check_all_reminders` 工具返回的数据格式包含可直接播报的提醒消息。
### 工具返回示例
```json
{
"success": true,
"has_reminders": true,
"total_count": 2,
"alarm_count": 1,
"todo_count": 1,
"alarms": [...],
"todos": [...],
"messages": [
"闹钟提醒: 开会",
"待办提醒: 完成项目文档"
],
"message": "有 2 个提醒到期"
}
```
**关键字段**:
- `has_reminders`: 是否有到期提醒
- `messages`: 可直接播报的提醒文本数组
- `total_count`: 到期提醒总数
## 需要小智AI配置的部分
### 方案1: 定期调用工具(推荐)
小智AI需要配置**定期任务**,每隔一定时间自动调用 `check_all_reminders` 工具。
#### 配置示例(伪代码)
```javascript
// 小智AI后台定期任务配置
setInterval(() => {
// 调用MCP工具
const result = xiaozhi.callMCPTool('check_all_reminders');
// 检查是否有到期提醒
if (result.has_reminders && result.messages.length > 0) {
// 播放提示音(可选)
xiaozhi.playSound('notification.mp3');
// 语音播报每一条提醒
result.messages.forEach(message => {
xiaozhi.speak(message);
});
// 可选:显示通知
xiaozhi.showNotification({
title: '提醒到期',
body: `有 ${result.total_count} 个提醒到期`
});
}
}, 60000); // 每60秒检查一次
```
#### 配置参数建议
```yaml
定期任务:
名称: 检查MCP提醒
工具: check_all_reminders
频率: 每60秒
条件: has_reminders == true
动作:
- 播放提示音
- 语音播报messages数组
- 显示桌面通知(可选)
```
### 方案2: 定期读取Resource
或者配置小智AI定期读取 `reminder://pending` resource:
```javascript
setInterval(() => {
// 读取resource
const resource = xiaozhi.readMCPResource('reminder://pending');
const data = JSON.parse(resource);
// 检查是否有新的到期提醒
if (data.has_new_reminders && data.new_count > 0) {
// 播报新提醒
data.messages.forEach(msg => {
xiaozhi.speak(msg);
});
}
}, 60000);
```
## 完整工作流程
### 用户视角
```
1. 用户: "小智,提醒我明天下午3点开会"
→ 小智调用 add_todo 工具
→ 提醒添加成功
2. [第二天下午3点]
→ 小智后台定期任务触发
→ 调用 check_all_reminders
→ 检测到到期提醒
→ 小智语音播报: "待办提醒:开会"
```
### 技术流程
```
1. 小智AI定期任务 (每60秒)
↓
2. 调用 check_all_reminders 工具
↓
3. MCP服务检查数据库
↓
4. 返回 {has_reminders: true, messages: [...]}
↓
5. 小智AI读取messages数组
↓
6. 语音播报每一条提醒
```
## 测试配置是否生效
### 1. 快速测试
```
步骤1: 添加一个1分钟后的提醒
对小智说: "小智,提醒我1分钟后测试提醒功能"
步骤2: 等待小智自动播报
如果配置正确,1分钟后小智应该自动说:
"待办提醒:测试提醒功能"
步骤3: 验证
如果没有自动播报,说明小智AI未配置定期任务
```
### 2. 手动测试
```
步骤1: 添加提醒
对小智说: "小智,提醒我2分钟后开会"
步骤2: 等待2分钟后手动检查
对小智说: "小智,检查一下有没有到期的提醒"
步骤3: 验证
小智应该立即回复: "待办提醒:开会"
```
## 常见问题
### Q1: 为什么时间到了没有自动提醒?
**A**: MCP服务是被动响应的,需要小智AI主动调用工具。请确认:
1. ✅ MCP服务正在运行
2. ❌ 小智AI是否配置了定期任务
3. ❌ 定期任务是否正确调用 `check_all_reminders`
### Q2: 手动检查可以,但不自动提醒?
**A**: 说明MCP服务正常,但小智AI未配置定期任务。需要联系小智AI开发者配置后台定期调用。
### Q3: 建议多久检查一次?
**A**:
- **推荐**: 60秒(1分钟)
- **平衡**: 30秒(更及时,但请求更频繁)
- **低频**: 120秒(2分钟)
### Q4: 如何确认小智AI是否支持定期任务?
**A**: 需要查看小智AI的文档或联系开发者:
- 询问是否支持MCP工具的定期调用
- 询问如何配置定期任务
- 提供本文档作为需求说明
## 配置请求模板
如果需要联系小智AI开发者,可以使用以下模板:
---
**主题**: 请求配置MCP定期任务 - 自动提醒功能
**内容**:
您好,
我已经部署了MCP闹钟和待办提醒服务,希望配置小智AI定期检查提醒。
**需求**:
1. 定期调用MCP工具: `check_all_reminders`
2. 检查频率: 每60秒
3. 处理逻辑:
- 如果 `result.has_reminders == true`
- 则语音播报 `result.messages` 数组中的每一条消息
**工具返回格式**:
```json
{
"has_reminders": true,
"messages": ["闹钟提醒: XXX", "待办提醒: YYY"]
}
```
**预期行为**:
用户设置提醒后,时间到期时小智自动语音播报提醒内容。
---
## 当前MCP服务支持的功能
### 已实现 ✅
- [x] 添加闹钟(自然语言时间解析)
- [x] 添加待办事项(支持提醒时间)
- [x] 查询到期提醒(`check_all_reminders`)
- [x] 提醒消息格式化(`messages` 数组)
- [x] Resource订阅接口(`reminder://pending`)
- [x] 新增提醒检测(`has_new_reminders`)
- [x] 完成/关闭提醒
- [x] 列出所有待办
### 依赖小智AI ⚠️
- [ ] 定期调用工具
- [ ] 语音播报返回的messages
- [ ] 播放提示音(可选)
- [ ] 显示通知(可选)
## 验证清单
在联系小智AI开发者之前,请确认:
- [ ] MCP服务正常运行(`start.ps1` 或 `start.bat`)
- [ ] 可以手动添加提醒("小智,提醒我...")
- [ ] 可以手动检查提醒("小智,检查一下有没有到期的提醒")
- [ ] 手动检查时小智会播报提醒内容
- [ ] 只是缺少自动检查功能
如果以上都确认 ✅,则说明问题在于小智AI未配置定期任务,需要联系开发者配置。
## 技术支持
如果需要调整MCP服务的返回格式或添加新功能,请提供:
1. 小智AI支持的数据格式
2. 定期任务的配置方式
3. 其他特殊需求
我们可以根据小智AI的要求调整MCP服务的实现。