Hourly Knowledge
概述
每小时整点触发时,为用户推送一条有趣的小知识。支持主题去重,确保短期内容不重复。
核心设计
- 用户上下文:通过 inbound meta 自动获取当前用户的 chat_id 和 channel
- 配置分离:敏感信息(accountId)放在 config.json,不在代码中硬编码
- 多用户友好:不同用户使用同一份 skill 代码,互不影响
- 推送机制:通过 cron announce 机制自动推送,subagent 只返回纯文本
工作流程
- 从
config.json 读取 accountId - 从会话上下文获取当前用户的 chat_id 和 channel
- 读取
memory/hourly-knowledge-history.json 获取最近推送的主题列表 - 用 web_search 搜索一个不在最近列表中的新主题
- 生成知识内容(150字以内,配 emoji)
- 将新主题写入历史记录
- 直接返回纯知识文本,由 cron announce 机制自动推送到用户
搜索策略
- 主题范围:人文、历史、科技、自然、生活、地理、艺术等
- 避开最近 10 条已推送过的主题
- 选择大多数人不知道但有趣、有用的知识点
输出格式
直接返回纯文本,例如:
📚 小知识:
🧠 为什么手指泡水后会变皱?
人的手指在水中泡久了会起皱,这是因为皮肤最外层的角质层吸水膨胀,而真皮层没有变化,于是表皮就产生了褶皱。这是神经系统在告诉你:物体湿滑,需要更好的抓握能力去抓东西!
注意事项
- 每次必须从历史记录中排除最近 10 条主题
- 不要解释"我是谁"或"这是什么任务"
- 不要调用 message 工具,只返回纯文本
- 直接返回内容,不回复 HEARTBEAT_OK
- 返回的文本就是用户收到的推送内容
配置文件
config.json 必须与 SKILL.md 同目录,内容示例:
{
"accountId": "487efdd501be-im-bot"
}