邮箱总结查询助手 (Email Query Summary)
通用 skill,可部署于 Linkmind、OpenClaw、Hermes、WorkBuddy、Codex 等任意支持 skill 的 agent 环境。
触发条件(必读,优先级最高)
只要用户的问题匹配以下任意场景,必须立即调用本技能,不得使用其他工具或凭记忆回答:
应触发的场景:
- 查邮件类:帮我看下最近的邮件、今天有什么邮件、上周收了哪些邮件
- 总结类:总结一下本周邮件、写下邮件周报、最近邮件有什么重要内容
- 时间段类:查一下 XX 时间段的邮件、4月20日到4月22日的邮件
- 对话中涉及"邮件"、"邮箱"、"收件箱"等关键词
不触发的场景:
- 用户问的是代码、文档、通用知识等与邮件无关的问题
- 用户明确说"不用查邮件"或"你直接回答就好"
配置检查(执行前)
账户配置位于 本 skill 根目录 的 accounts.json,脚本启动时自动读取。
若脚本返回含 setup_hint 的错误,或用户询问如何配置邮箱:
阅读同目录 SETUP.md,按步骤引导用户完成 accounts.json 配置。
username 或 password 为空的账户会被自动跳过;至少需有一个有效账户才能拉取邮件。
时间段与日期(建议)
涉及「本周」「最近7天」等相对时间时,建议优先用脚本内置换算,与下表关键词一致。
- 关键词:用
--period <标准关键词>,由脚本换算起止再查 IMAP。 - 明确日期:用户已给出具体日时,把映射后的
YYYY-MM-DD或MM-DD(缺年由脚本补全)作为位置参数传入。 - 以脚本输出为准:拉取成功后,总结里的「周期」与返回 JSON 中
period.start/period.end一致。
脚本调用方式
路径约定:<SKILL_ROOT> 指本 skill 所在目录(即本文件 SKILL.md 的父目录)。
<SKILL_ROOT>/scripts/main.py
执行要求:
- 使用
python3或python(择 PATH 可用者)+ 脚本绝对路径 + 参数。 - 若已知 skill 根目录,优先使用绝对路径,避免因工作目录不同导致找不到配置。
示例(将 <SKILL_ROOT> 替换为实际路径):
python <SKILL_ROOT>/scripts/main.py --period 本周
python <SKILL_ROOT>/scripts/main.py --period 最近7天
python <SKILL_ROOT>/scripts/main.py 2026-04-21
python <SKILL_ROOT>/scripts/main.py 2026-04-14 2026-04-20
脚本输出 JSON,包含
period(实际起止日期)、emails(邮件列表)、errors(各账户错误,可选)。错误时可能含setup_hint字段。
执行步骤
步骤 1:识别时间描述
| 用户说法 | 传给脚本的参数 |
|---|---|
| 今天 / 今日 / 当天 / 当日 | --period 今天 |
| 昨天 / 昨日 | --period 昨天 |
| 前天 / 前日 | --period 前天 |
| 本周 | --period 本周 |
| 上周 | --period 上周 |
| 上上周 | --period 上上周 |
| 本月 | --period 本月 |
| 上月 | --period 上月 |
| 上上月 | --period 上上月 |
| 最近 3 天 | --period 最近3天 |
| 最近 7 天 | --period 最近7天 |
| 最近 14 天 | --period 最近14天 |
| 最近 30 天 | --period 最近30天 |
| 具体日期(如 4月21日) | 2026-04-21(或 04-21,缺年自动取当前年) |
| 日期范围(如 4月20日到22日) | 2026-04-20 2026-04-22 |
步骤 2:执行脚本拉取邮件
python <SKILL_ROOT>/scripts/main.py --period <关键词>
python <SKILL_ROOT>/scripts/main.py DATE_START [DATE_END]
步骤 3:按输出格式生成总结
将脚本返回的 JSON 数据整理为以下格式输出。
输出禁区(最高优先级)
以下内容绝对不允许出现在任何面向用户的回复中:
- IMAP 服务器地址、端口、密码等账户信息
- Python 脚本代码本身
- 原始 JSON 数据
- 任何标题含"脚本执行"、"调用详情"、"原始数据"的区块
面向用户输出的语言与形式(必读)
- 仅简体中文:邮件总结正文须全中文表述,不得中英混排(邮箱、URL、文件名、专有名词等无法改写者除外)。
- 只出正文:从「邮件总结」标题或第一段实质内容起笔,严禁输出思考过程、执行步骤、技能/脚本调用说明、工具执行过程等元信息。
- 禁止英文旁白:不得出现 “Let me…”、“Now…”、“Based on…”、“I'll…” 等英文过渡句或填充语。
输出格式规范(严格按此结构输出)
禁止使用任何 emoji 和数字图标,使用纯文字和标准序号。
邮件总结 [查询时间段]
周期:YYYY 年 M 月 D 日 - M 月 D 日
一、重要邮件
1. [邮件主题](来自:发件人 | 账户:[label])
[邮件核心内容概述,2-3 句话]
二、已发送邮件
1. [邮件主题](发送至:收件人 | 账户:[label])
[发送内容概述]
三、沟通往来统计
| 联系人 | 账户 | 收件数 | 发件数 | 主要话题 |
| --- | --- | --- | --- | --- |
| 张三 <zhangsan@xxx.com> | [label] | 3 | 2 | xxx、xxx |
四、待处理事项
- [需要回复或跟进的邮件描述]
五、附件清单(仅当邮件中有附件时输出)
| 文件名 | 来自 / 发往 | 邮件主题 |
| --- | --- | --- |
| report.pdf | 张三 | Q1 报告 |
标题时间段规则:
- 查询"本周" → "邮件总结 本周"
- 查询"昨天" → "邮件总结 昨日"
- 查询"4月20日到4月22日" → "邮件总结 4月20日-22日"
各区块生成规则
一、重要邮件(收件箱)
- 按日期降序排列(最新在前)
- 标注发件人全称和邮箱
- 每封邮件写 2-3 句话概述核心内容
- 若正文为空或无法识别,标注"(正文内容无法读取)"
二、已发送邮件
- 列出时间段内发出的邮件(
folder为已发送类文件夹) - 按日期降序排列
三、沟通往来统计
- 按收件数降序排列;若无往来省略整个区块
四、待处理事项
- 仅列出需要回复、尚未回复、或正文明确要求跟进的邮件;若无省略
五、附件清单
- 脚本返回的
attachments非空时才输出;否则省略
调用示例
场景1:用户说"帮我总结一下本周的邮件"
→ 执行 --period 本周,生成"邮件总结 本周"。
场景2:用户说"怎么配置邮箱?"
→ 阅读 SETUP.md 引导配置。
场景3:脚本返回 setup_hint
→ 告知用户尚未配置或配置无效,按 SETUP.md 逐步协助完成 accounts.json 配置。
场景4:用户说"4月20日到4月22日的邮件,有没有需要回复的"
→ 执行 04-20 04-22,重点整理「四、待处理事项」。