SuperAPI AI 工具集

listener-creator

办公与效率

查看项目

更新于 10-15 12:45

技能介绍

Listener Creator 是 anthropics/claude-agent-sdk-demos 中的一项技能,用于创建事件驱动的邮件监听器。它生成 TypeScript 监听文件,监控邮件事件并在条件满足时执行自定义逻辑。

用途 当用户希望:收到特定邮件时获得通知(如“老板发紧急邮件时通知我”)、自动处理某些邮件(如“自动归档新闻简报”)、监控特定模式(如“关注包裹追踪邮件”)、设置定时动作(如“每天上午 9 点发送邮件摘要”)或创建自定义邮件工作流时,可使用本技能。

工作方式 监听器是位于 agent/custom_scripts/listeners/ 下的 TypeScript 文件,需导出一个定义事件类型和元数据的 config 对象,以及一个负责过滤和处理事件的 handler 函数。handler 使用 ListenerContext 方法执行动作(通知、归档、加星等)。系统会自动加载已启用的监听器,并在匹配事件发生时执行它们。

可用事件类型 email_received(最常见,新邮件到达)、email_sent(用户发送邮件)、email_starred(邮件被加星)、email_archived(邮件被归档)、email_labeled(邮件被加标签)、scheduled_time(基于时间,需配置调度器)。

监听器文件结构 使用 kebab-case 命名,如 boss-urgent-watcher.ts、auto-archive-newsletters.ts、package-tracking.ts、daily-summary.ts。config 包含 id(唯一、描述性、kebab-case)、name(界面显示名)、description、enabled、event。handler 接收 email 和 context 参数,可先做基础过滤(如按发件人),再调用 AI 分类,最后执行动作。

ListenerContext 方法 通知:context.notify(message, { priority: "high" | "normal" | "low" });邮件动作:archiveEmail、starEmail、unstarEmail、markAsRead、markAsUnread、addLabel、removeLabel;AI 分析:context.callAgent,可指定 prompt、JSON schema 和模型(haiku / sonnet / opus)。

推荐做法 默认使用 context.callAgent() 进行智能决策,而非硬编码关键词列表,以获得更好的准确性和适应性。示例中用 AI 判断邮件是否紧急,再据此通知或加星。避免使用 subject.includes("urgent") 这类脆弱且易误判的关键词匹配。建议尽早过滤,使用清晰唯一的 ID,必要时用 try-catch 处理错误,AI 分类优先用 haiku 模型(通常 1 秒内),仅在真正重要时通知。

常见模式 AI 驱动(推荐):基础过滤(发件人/类型)→ 调用 AI 智能分类 → 依据结果行动 → 重要时通知。简单通知:基础过滤(仅发件人)→ 通知 → 可选加星/加标签,仅用于纯身份触发的场景。自动归档:基础过滤 → 归档 → 标记已读 → 可选通知。定时:在特定时间运行 → 查询邮件 → 分析 → 发送摘要。

定时监听器 对基于时间的动作(每日摘要、每周报告),config 的 event 设为 scheduled_time,handler 接收 { timestamp: Date } 和 context。注意:定时监听器需要在监听器文件之外配置 cron 调度器。

类型导入 始终从正确位置导入类型:import type { ListenerConfig, Email, ListenerContext } from "../types";。定时监听器可不导入 Email。

限制与说明 创建监听器时,若意图不明确应向用户澄清(发件人、关键词、动作、紧急程度)。创建后以 markdown 格式返回监听器引用,如 [listener:boss-urgent-watcher.ts],并确认符合用户意图。完整规范见项目根目录的 LISTENERS_SPEC.md,包含所有事件类型、完整类型定义、ListenersManager 实现、高级示例和错误处理模式。