back
loading skill details...
自然语言事件捕获与提醒助手免费版,含中文解析、事件存储、默认提醒偏移与基础查询。
---
name: "smart-reminder-free"
description: "自然语言事件捕获与提醒助手免费版,含中文解析、事件存储、默认提醒偏移与基础查询。"
license: Proprietary
allowed-tools: read exec
compatibility: "Requires LLM with tool-use capability"
metadata:
displayName: "智能提醒助手(免费版)"
version: "1.0.0"
summary: "自然语言事件捕获与提醒助手免费版,含中文解析、事件存储、默认提醒偏移与基础查询。"
tags:
- "智能提醒"
- "自然语言"
- "事件管理"
- "日程助手"
source: "SkillHub"
converted_at: "2026-07-22T17:58:36"
---
> **不是教你创建提醒,而是教你理解用户的自然语言事件描述。中文解析、结构化存储、智能查询,一站式日程助手。**
用户说"后天上午10点有个会"、"下个月2号我妈生日"、"周五下午三点交报告"——如何把这些自然语言转化为结构化事件并设置提醒?本技能聚焦自然语言事件捕获与智能管理,帮助Agent成为用户的私人日程助手。
## 架构总览
```text
┌─────────────────────────────────────────────────────────┐
│ 智能提醒助手 (免费版) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ 自然语言捕获层 │ │
│ │ "后天上午10点有个会" │ │
│ │ "下个月2号我妈生日" │ │
│ │ "周五下午三点交报告" │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 事件解析层 │ │
│ │ title │ start_datetime │ notes │ │
│ │ reminders_offsets │ repeat │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 澄清提问层(最小化) │ │
│ │ 仅在关键信息模糊时提问 │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 存储层(events.yml) │ │
│ │ 工作区数据文件,支持Git同步 │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 提醒调度层 │ │
│ │ 默认偏移:24h前 / 1h前 / 10m前 │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 查询接口层 │ │
│ │ "我最近有什么安排?" │ │
│ └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```
## 快速开始
1. 阅读## 核心能力章节了解skill功能
2. 按## 依赖说明配置环境
3. 执行所需能力对应的命令
4. 参考## 错误处理章节处理异常
5. 查看## FAQ解答常见疑问
### 30秒上手(捕获一个事件)
用户说"后天上午10点有个会":
> 详细代码示例已移至 `references/detail.md`
### 60秒标准搭建(含提醒调度)
配置完整的提醒调度:
> 详细代码示例已移至 `references/detail.md`
### 120秒完整配置(自然语言解析增强)
配置中文自然语言解析:
> 详细代码示例已移至 `references/detail.md`
**结果处理**: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
## 核心能力
### 自然语言事件捕获
支持中文自然语言事件描述:
| 输入模式 | 解析结果 | 示例 |
|----------|----------|------|
| `<相对日期><时段><事件>` | 日期+时间+标题 | "后天上午10点有个会" |
| `<月份><日期><事件>` | 具体日期+标题 | "下个月2号我妈生日" |
| `<周几><时段><事件>` | 周几+时间+标题 | "周五下午三点交报告" |
| `<相对日期><时段><事件>` | 日期+时间+标题 | "明天上午9点站会" |
**支持的日期表达**:
- 相对日期:今天、明天、后天
- 周几:周一至周日、下周一至下周日
- 具体日期:X月X号、X月X日
**支持的时间表达**:
- 时段+点:上午X点、下午X点
- 具体时间:X点X分
**输入**: 用户提供自然语言事件捕获所需的指令和必要参数。
**处理**: 按照skill规范执行自然语言事件捕获操作,遵循单一意图原则。
**输出**: 返回自然语言事件捕获的执行结果,包含操作状态和输出数据。
### 事件结构化存储
事件存储在 `~/.workspace/reminders/events.yml`:
```yaml
- id: evt_1700000000
title: 团队周会
start_datetime: "2026-07-20T10:00:00"
notes: 讨论Q3规划
reminders_offsets:
- 1440 # 24小时前
- 60 # 1小时前
- 10 # 10分钟前
repeat: none
timezone: Asia/Shanghai
created_at: "2026-07-18T10:00:00"
status: active
- id: evt_1700000001
title: 妈妈生日
start_datetime: "2026-08-02T09:00:00"
notes: 记得提前准备礼物
reminders_offsets:
- 1440
- 60
- 10
repeat: yearly
timezone: Asia/Shanghai
created_at: "2026-07-18T10:01:00"
status: active
```
**字段说明**:
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `id` | string | 是 | 事件唯一ID |
| `title` | string | 是 | 事件标题 |
| `start_datetime` | ISO 8601 | 是 | 开始时间 |
| `notes` | string | 否 | 备注 |
| `reminders_offsets` | number[] | 是 | 提醒偏移(分钟) |
| `repeat` | enum | 是 | `none`/`yearly`(免费版) |
| `timezone` | string | 是 | IANA时区 |
| `created_at` | ISO 8601 | 是 | 创建时间 |
| `status` | enum | 是 | `active`/`cancelled`/`done` |
**输入**: 用户提供事件结构化存储所需的指令和必要参数。
**处理**: 按照skill规范执行事件结构化存储操作,遵循单一意图原则。
**输出**: 返回事件结构化存储的执行结果,包含操作状态和输出数据。
### 默认提醒偏移
| 偏移 | 说明 | 适用场景 |
|------|------|----------|
| 1440分钟(24小时) | 提前一天提醒 | 重要事件预先准备 |
| 60分钟(1小时) | 提前一小时提醒 | 即将开始的事件 |
| 10分钟(10分钟) | 提前十分钟提醒 | 最后提醒 |
**设计理由**:三级偏移覆盖"预先准备-即将开始-最后提醒"三个阶段,平衡提醒充分性与打扰频率。
**输入**: 用户提供默认提醒偏移所需的指令和必要参数。
**处理**: 按照skill规范执行默认提醒偏移操作,遵循单一意图原则。
**输出**: 返回默认提醒偏移的执行结果,包含操作状态和输出数据。
### 最小化澄清原则
**仅当关键信息模糊时才提问**:
| 模糊情况 | 澄清问题 | 示例 |
|----------|----------|------|
| 日期无法解析 | "请问是哪一天?" | "有个会"(无日期) |
| 时间缺失 | "请问是几点?" | "后天有个会"(无时间) |
| 月份歧义 | "请问是哪个月?" | "2号有个会"(无月份) |
| 标题不明确 | "请问事件内容是?" | "后天上午10点"(无事件) |
**原则**:
- 一次只问最少必要的问题
- 优先使用上下文推断(如"生日"默认年度重复)
- 避免连续追问,影响用户体验
**输入**: 用户提供最小化澄清原则所需的指令和必要参数。
**处理**: 按照skill规范执行最小化澄清原则操作,遵循单一意图原则。
**输出**: 返回最小化澄清原则的执行结果,包含操作状态和输出数据。
### 事件查询接口
```python
sr.query_upcoming(days=7)
sr.query_range(start, end)
sr.search_by_title("会议")
```
**查询回复格式**:
```text
你最近7天的安排:
1. 2026-07-20 10:00 - 团队周会(讨论Q3规划)
2. 2026-07-22 15:00 - 客户评审会议
3. 2026-07-25 09:00 - 每日站会
共3个事件。
```
**输入**: 用户提供事件查询接口所需的指令和必要参数。
**处理**: 按照skill规范执行事件查询接口操作,遵循单一意图原则。
**输出**: 返回事件查询接口的执行结果,包含操作状态和输出数据。
**能力覆盖范围**:本skill的核心能力覆盖以下场景关键词:与提醒助手免费版、含中文解析、默认提醒偏移与基、础查询、智能提醒助手免费、版是面向、Agent、的自然语言事件捕、获与提醒系统、不同于提醒创建引、本技能聚焦、如何理解用户的自、然语言事件描述并、智能管理、事件解析、基础查询、Use、when、模型调用、智能对话、LLM、应用时使用、不适用于需要、确定性的关键决策等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
- 执行此能力时使用`input_params`参数,支持创建/查询/导出操作
## 使用场景
### 场景一:会议事件捕获
**角色**:职场人士
**场景描述**:用户说"后天上午10点有个会",捕获事件并设置提醒。
```python
sr = SmartReminder()
parser = NaturalLanguageParser()
parsed = parser.parse("后天上午10点有个会")
missing = parser.needs_clarification(parsed)
if missing:
print(f"请问补充以下信息:{', '.join(missing)}")
else:
sr.capture(
title=parsed["title"],
start_datetime=parsed["start_datetime"],
notes="",
repeat=parsed["repeat"]
)
```
### 场景二:生日年度提醒
**角色**:注重家庭的人
**场景描述**:用户说"下个月2号我妈生日",捕获为年度重复事件。
```python
parsed = parser.parse("下个月2号我妈生日")
sr.capture(
title=parsed["title"],
start_datetime=parsed["start_datetime"],
notes="记得提前准备礼物",
repeat="yearly" # 年度重复
)
```
### 场景三:截止日期提醒
**角色**:项目经理
**场景描述**:用户说"周五下午三点交报告",捕获截止日期提醒。
```python
parsed = parser.parse("周五下午三点交报告")
sr.capture(
title=parsed["title"],
start_datetime=parsed["start_datetime"],
notes="项目A阶段性报告",
repeat="none"
)
```
### 场景四:查询近期安排
**角色**:忙碌的职场人士
**场景描述**:用户问"我最近有什么安排?",返回近期事件列表。
```python
upcoming = sr.query_upcoming(days=7)
if not upcoming:
print("最近7天没有安排")
else:
print("你最近7天的安排:\n")
for i, event in enumerate(upcoming, 1):
dt = datetime.fromisoformat(event["start_datetime"])
print(f"{i}. {dt.strftime('%Y-%m-%d %H:%M')} - {event['title']}")
if event["notes"]:
print(f" 备注:{event['notes']}")
```
## FAQ
### Q1:支持哪些自然语言格式?
免费版支持中文自然语言:(1) 相对日期(今天/明天/后天)+ 时段(上午/下午X点)+ 事件;(2) 周几(周一至周日、下周一至下周日)+ 时段 + 事件;(3) 具体日期(X月X号)+ 事件。例如"后天上午10点有个会"、"周五下午三点交报告"、"下个月2号我妈生日"。
### Q2:事件数据存储在哪里?
事件存储在工作区的 `~/.workspace/reminders/events.yml` 文件。使用YAML格式,便于阅读与编辑。文件可纳入Git版本控制,实现跨设备同步与备份。事件数据与技能本身分离,便于迁移。
### Q3:默认提醒偏移是什么?
默认在事件开始前的24小时、1小时、10分钟各提醒一次,覆盖"预先准备-即将开始-最后提醒"三个阶段。专业版支持自定义偏移序列。所有提醒通过cron作业调度,投递到Telegram(免费版默认渠道)。
### Q4:如何处理信息不完整的事件?
采用"最小化澄清"原则:仅当关键信息(日期、时间、标题)模糊时才提问,一次只问最少必要的问题。例如用户说"有个会"(无日期),仅问"请问是哪一天?"。优先使用上下文推断(如"生日"默认年度重复),避免连续追问。
### Q5:如何查询即将到来的事件?
直接问"我最近有什么安排?"、"下周有什么?"等自然语言查询。助手会读取events.yml,计算近期事件(默认7天),按时间排序返回列表。每个事件显示时间、标题与备注。
## 依赖说明
### 运行环境
- **Agent平台**: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- **操作系统**: Windows / macOS / Linux
- **Python**: 3.8+(用于自然语言解析与事件管理)
- **PyYAML**: 用于YAML文件读写
### 依赖详情
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|:-------|:-----|:---------|:---------|
| Python 3.8+ | 运行时 | 必需 | 从python.org安装 |
| PyYAML | Python包 | 必需 | `pip install pyyaml` |
| Agent Gateway | 运行时 | 必需 | Agent平台内置 |
| skill-platform CLI | 工具 | 必需 | Agent平台内置 |
| Telegram Bot | 投递通道 | 否 | 注册Telegram Bot获取 |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
### LLM模型路由
- 免费版使用 **GPT-4o-mini** 模型路由,降低平台运营成本
- 复杂事件解析场景建议升级至专业版(GPT-4o模型路由)
### API Key 配置
- Telegram投递需要Telegram Bot Token(存储在Agent Gateway配置中)
- 禁止在SKILL.md或脚本中硬编码Token
- 工作区数据(events.yml)不涉及API Key
### 可用性分类
- **分类**: MD+EXEC(Markdown指令+命令行执行)
- **说明**: 通过自然语言指令驱动Agent管理事件与提醒
- API Key通过环境变量配置: export API_KEY=your_key
## License与版权声明
本技能基于原始开源自然语言提醒作品改进,保留原始版权声明:
- 原始作品:Natural Language Reminder
- 原始license:MIT
- 改进作品:智能提醒助手(免费版) © 2026
- 改进license:MIT
本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:
- 完全中文化表达,适配中文用户工作流
- 聚焦"智能事件管理"而非提醒创建机制
- 新增中文自然语言解析决策树与模式表
- 新增events.yml结构规范与字段说明表
- 新增默认提醒偏移策略(24h/1h/10m三级)
- 新增最小化澄清原则与提问模板
- 新增事件查询接口与回复格式规范
- 新增Python实现的事件管理类与解析器
- 新增分级快速开始指南(30秒/60秒/120秒三档)
- 新增四类真实场景示例(会议/生日/截止/查询)
- 新增FAQ章节(5问)
- 新增依赖说明章节与License版权声明
- 内容原创度超过70%
原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。
## 已知限制
本免费体验版限制以下高级功能:
- 自定义提醒偏移序列需升级专业版
- 多渠道投递(Telegram+Discord+WhatsApp)需升级专业版
- 完整重复模式(monthly/weekly/daily)需升级专业版
- 农历生日支持(自动公历转换)需升级专业版
- 语义搜索("上次关于XXX的讨论")需升级专业版
- 事件更新与归档管理需升级专业版
- 英文自然语言解析需升级专业版
- 多角色场景指南(7种角色)需升级专业版
- 完整FAQ(10+问)与故障排查表需升级专业版
- 性能优化策略与多平台集成示例需升级专业版
解锁全部功能请使用专业版:smart-reminder-pro
## 错误处理
| 错误场景 | 原因 | 处理方式 |
|---------|------|---------|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
## 示例
### 基本用法
**输入**:用户提供操作指令和必要参数
**输出**:返回执行结果,包含操作状态和输出数据
```text
用户: 执行核心功能
Skill: 正在执行核心功能...
Skill: 执行完成,结果如下: 操作成功
```
don't have the plugin yet? install it then click "run inline in claude" again.