sii_email_notification - 电子邮件通知
概述
sii_email_notification 工具通过 SII 向已认证用户发送重要的电子邮件通知。仅在用户明确请求或表示需要远程监控且发生重要事件(关键故障、长时间运行的任务完成或需要用户操作)时使用。避免频繁通知。包含完整上下文,使用户无需后续跟进即可了解情况。
工具名称
- 内部名称:
sii_email_notification - 显示名称: SII Email Notification
- 图标: 邮件 (Mail)
前置条件
使用此工具需要:
- SII 账户:需要有效的 SII 账户
- 用户认证:必须通过 SII 认证
- 用户授权:用户明确请求或表示需要远程监控
参数
必需参数
| 参数名 | 类型 | 说明 |
|---|---|---|
event | string | 触发通知的事件。仅在满足前置条件时发送电子邮件。可选值:"critical_failure"(关键故障)、"long_running_completed"(长时间运行完成)、"need_user_action"(需要用户操作) |
可选参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
user_requested | boolean | - | 用户是否明确请求此任务/会话的电子邮件通知 |
user_remote_monitoring | boolean | - | 用户是否表示他们不在并需要远程监控通知 |
subject | string | - | 可选的电子邮件主题。如果省略,将从事件生成合适的主题 |
sender_name | string | "SII CLI Agent" | 可选的发件人显示名称 |
background | string | - | 背景和原因 |
current_status | string | - | 当前状态 |
result_summary | string | - | 结果摘要(成功/失败和关键指标) |
errors | string[] | - | 具体错误详情(如果有) |
next_steps | string[] | - | 建议用户采取的下一步操作(如果适用) |
raw_content | string | - | 可选的原始内容,直接嵌入电子邮件。如果提供,将忽略结构化字段 |
事件类型
1. Critical Failure(关键故障)
- 使用场景:系统或任务遇到严重错误
- 示例:
- 部署失败
- 数据库连接丢失
- 关键服务崩溃
- 安全漏洞检测
2. Long Running Completed(长时间运行完成)
- 使用场景:长时间运行的任务完成
- 示例:
- 大型构建完成
- 数据迁移完成
- 批处理任务完成
- 测试套件运行完成
3. Need User Action(需要用户操作)
- 使用场景:需要用户干预或决策
- 示例:
- 需要批准部署
- 配置冲突需要解决
- 资源限制需要调整
- 手动验证需要
使用场景
应该使用的情况
用户明确请求:
- "完成后给我发邮件"
- "如果出错请通知我"
用户表示远程监控:
- "我要离开一会儿,有问题通知我"
- "我不在电脑前,帮我监控"
重要事件发生:
- 关键故障
- 长时间任务完成
- 需要用户操作
不应该使用的情况
- 常规操作完成
- 非关键信息
- 频繁的状态更新
- 用户未授权的通知
使用示例
关键故障通知
json
{
"event": "critical_failure",
"user_requested": true,
"subject": "部署失败 - 需要立即处理",
"background": "尝试部署应用到生产环境",
"current_status": "部署失败,服务未更新",
"result_summary": "部署过程中遇到数据库迁移错误",
"errors": [
"数据库迁移失败:表 'users' 已存在",
"回滚成功,服务保持在旧版本"
],
"next_steps": [
"检查数据库迁移脚本",
"手动解决表冲突",
"重新运行部署"
]
}长时间任务完成
json
{
"event": "long_running_completed",
"user_remote_monitoring": true,
"subject": "数据迁移已完成",
"background": "从旧数据库迁移 100 万条记录到新系统",
"current_status": "迁移成功完成",
"result_summary": "成功迁移 1,000,000 条记录,耗时 2 小时 15 分钟",
"next_steps": [
"验证数据完整性",
"更新应用配置指向新数据库",
"监控新系统性能"
]
}需要用户操作
json
{
"event": "need_user_action",
"user_requested": true,
"subject": "需要批准生产部署",
"background": "所有测试通过,准备部署到生产环境",
"current_status": "等待用户批准",
"result_summary": "测试通过率:100%,性能测试达标",
"next_steps": [
"审查变更日志",
"批准部署",
"或者推迟到维护窗口"
]
}使用原始内容
json
{
"event": "critical_failure",
"user_requested": true,
"raw_content": "紧急:生产环境 API 服务器在 15:30 崩溃。\n\n错误:内存溢出\n状态:服务已自动重启\n影响:约 5 分钟的服务中断\n\n已采取的措施:\n- 服务自动重启成功\n- 增加内存限制\n- 添加监控告警\n\n建议:检查最近的代码变更,可能存在内存泄漏。"
}返回结果
工具返回一个包含以下字段的对象:
llmContent: 确认信息returnDisplay: 用户友好的显示信息summary: 操作摘要email_sent: 是否成功发送邮件
示例输出
✓ 电子邮件通知已发送
主题:部署失败 - 需要立即处理
收件人:user@example.com
发送时间:2024-11-21 16:30:00邮件内容结构
使用结构化字段
邮件将包含以下部分:
- 主题:清晰的标题
- 背景:事件背景和原因
- 当前状态:系统当前状态
- 结果摘要:关键结果和指标
- 错误详情:具体错误信息(如果有)
- 下一步操作:建议的行动步骤
使用原始内容
如果提供 raw_content,将直接使用该内容作为邮件正文。
最佳实践
提供完整上下文:
- 包含足够的信息让用户理解情况
- 无需用户回复询问更多细节
清晰的主题:
- 简洁明了
- 包含关键信息
- 表明紧急程度
可操作的建议:
- 提供具体的下一步操作
- 包含相关链接或命令
- 说明优先级
避免频繁通知:
- 只发送重要通知
- 合并相关通知
- 尊重用户偏好
验证前置条件:
- 确认用户已授权
- 检查事件是否重要
- 避免不必要的打扰
通知策略
何时发送
- ✅ 关键系统故障
- ✅ 长时间任务完成(>30 分钟)
- ✅ 需要紧急决策
- ✅ 用户明确请求
何时不发送
- ❌ 常规操作完成
- ❌ 信息性消息
- ❌ 频繁的状态更新
- ❌ 非关键警告
错误处理
可能的错误情况:
认证错误:
- 用户未认证
- SII 凭据无效
授权错误:
- 用户未授权通知
- 事件不符合发送条件
发送错误:
- 邮件服务器错误
- 网络连接失败
- 收件人地址无效
参数错误:
- 无效的事件类型
- 缺少必需字段
隐私和安全
数据保护:
- 不在邮件中包含敏感信息
- 使用加密传输
- 遵守隐私政策
访问控制:
- 仅发送给认证用户
- 验证用户授权
- 记录发送日志
内容安全:
- 过滤敏感数据
- 避免包含密码或密钥
- 使用安全链接
与其他工具的集成
与 run_shell_command 结合
1. 运行长时间命令
2. 完成后发送通知与 sii_deep_research 结合
1. 启动深度研究
2. 完成后通知用户与部署流程结合
1. 执行部署
2. 成功或失败后通知相关工具
run_shell_command: 执行命令sii_deep_research: 深度研究save_memory: 保存用户偏好
总结
sii_email_notification 是一个重要的通知工具,用于在关键时刻通知用户。通过合理使用这个工具,可以确保用户及时了解重要事件,同时避免不必要的打扰。
记住:只在真正重要的时候发送通知,提供完整的上下文,并尊重用户的授权和偏好。
