Skip to content

sii_email_notification - 电子邮件通知

概述

sii_email_notification 工具通过 SII 向已认证用户发送重要的电子邮件通知。仅在用户明确请求或表示需要远程监控且发生重要事件(关键故障、长时间运行的任务完成或需要用户操作)时使用。避免频繁通知。包含完整上下文,使用户无需后续跟进即可了解情况。

工具名称

  • 内部名称: sii_email_notification
  • 显示名称: SII Email Notification
  • 图标: 邮件 (Mail)

前置条件

使用此工具需要:

  1. SII 账户:需要有效的 SII 账户
  2. 用户认证:必须通过 SII 认证
  3. 用户授权:用户明确请求或表示需要远程监控

参数

必需参数

参数名类型说明
eventstring触发通知的事件。仅在满足前置条件时发送电子邮件。可选值:"critical_failure"(关键故障)、"long_running_completed"(长时间运行完成)、"need_user_action"(需要用户操作)

可选参数

参数名类型默认值说明
user_requestedboolean-用户是否明确请求此任务/会话的电子邮件通知
user_remote_monitoringboolean-用户是否表示他们不在并需要远程监控通知
subjectstring-可选的电子邮件主题。如果省略,将从事件生成合适的主题
sender_namestring"SII CLI Agent"可选的发件人显示名称
backgroundstring-背景和原因
current_statusstring-当前状态
result_summarystring-结果摘要(成功/失败和关键指标)
errorsstring[]-具体错误详情(如果有)
next_stepsstring[]-建议用户采取的下一步操作(如果适用)
raw_contentstring-可选的原始内容,直接嵌入电子邮件。如果提供,将忽略结构化字段

事件类型

1. Critical Failure(关键故障)

  • 使用场景:系统或任务遇到严重错误
  • 示例
    • 部署失败
    • 数据库连接丢失
    • 关键服务崩溃
    • 安全漏洞检测

2. Long Running Completed(长时间运行完成)

  • 使用场景:长时间运行的任务完成
  • 示例
    • 大型构建完成
    • 数据迁移完成
    • 批处理任务完成
    • 测试套件运行完成

3. Need User Action(需要用户操作)

  • 使用场景:需要用户干预或决策
  • 示例
    • 需要批准部署
    • 配置冲突需要解决
    • 资源限制需要调整
    • 手动验证需要

使用场景

应该使用的情况

  1. 用户明确请求

    • "完成后给我发邮件"
    • "如果出错请通知我"
  2. 用户表示远程监控

    • "我要离开一会儿,有问题通知我"
    • "我不在电脑前,帮我监控"
  3. 重要事件发生

    • 关键故障
    • 长时间任务完成
    • 需要用户操作

不应该使用的情况

  1. 常规操作完成
  2. 非关键信息
  3. 频繁的状态更新
  4. 用户未授权的通知

使用示例

关键故障通知

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

邮件内容结构

使用结构化字段

邮件将包含以下部分:

  1. 主题:清晰的标题
  2. 背景:事件背景和原因
  3. 当前状态:系统当前状态
  4. 结果摘要:关键结果和指标
  5. 错误详情:具体错误信息(如果有)
  6. 下一步操作:建议的行动步骤

使用原始内容

如果提供 raw_content,将直接使用该内容作为邮件正文。

最佳实践

  1. 提供完整上下文

    • 包含足够的信息让用户理解情况
    • 无需用户回复询问更多细节
  2. 清晰的主题

    • 简洁明了
    • 包含关键信息
    • 表明紧急程度
  3. 可操作的建议

    • 提供具体的下一步操作
    • 包含相关链接或命令
    • 说明优先级
  4. 避免频繁通知

    • 只发送重要通知
    • 合并相关通知
    • 尊重用户偏好
  5. 验证前置条件

    • 确认用户已授权
    • 检查事件是否重要
    • 避免不必要的打扰

通知策略

何时发送

  • ✅ 关键系统故障
  • ✅ 长时间任务完成(>30 分钟)
  • ✅ 需要紧急决策
  • ✅ 用户明确请求

何时不发送

  • ❌ 常规操作完成
  • ❌ 信息性消息
  • ❌ 频繁的状态更新
  • ❌ 非关键警告

错误处理

可能的错误情况:

  1. 认证错误

    • 用户未认证
    • SII 凭据无效
  2. 授权错误

    • 用户未授权通知
    • 事件不符合发送条件
  3. 发送错误

    • 邮件服务器错误
    • 网络连接失败
    • 收件人地址无效
  4. 参数错误

    • 无效的事件类型
    • 缺少必需字段

隐私和安全

  1. 数据保护

    • 不在邮件中包含敏感信息
    • 使用加密传输
    • 遵守隐私政策
  2. 访问控制

    • 仅发送给认证用户
    • 验证用户授权
    • 记录发送日志
  3. 内容安全

    • 过滤敏感数据
    • 避免包含密码或密钥
    • 使用安全链接

与其他工具的集成

与 run_shell_command 结合

1. 运行长时间命令
2. 完成后发送通知

与 sii_deep_research 结合

1. 启动深度研究
2. 完成后通知用户

与部署流程结合

1. 执行部署
2. 成功或失败后通知

相关工具

  • run_shell_command: 执行命令
  • sii_deep_research: 深度研究
  • save_memory: 保存用户偏好

总结

sii_email_notification 是一个重要的通知工具,用于在关键时刻通知用户。通过合理使用这个工具,可以确保用户及时了解重要事件,同时避免不必要的打扰。

记住:只在真正重要的时候发送通知,提供完整的上下文,并尊重用户的授权和偏好。

Released under the MIT License.