Let Me Know

⏳ 长任务实时进度通知系统

专为耗时任务设计的进度通知系统,通过预通知、可配置心跳更新和即时完成提醒,确保用户全程掌握任务状态。

收藏
4.9k
安装
2.4k
版本
0.1.1
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Let Me Know 是一套标准化的长任务通知协议,适用于任何预计耗时超过 2-3 分钟的操作(如依赖安装、构建、测试套件运行等)。其工作流程分为三个阶段:

1. 预飞通知(Pre-flight)
任务启动前必须发送通知,明确告知用户:任务内容、预估耗时、完成/失败即时通知承诺,以及默认 5 分钟心跳更新机制(支持用户自定义间隔)。

2. 实时心跳更新(Heartbeat)
采用两种技术实现:

  • 推荐方案:原地心跳 — 在同 agentTurn 内通过循环 sleep + 读取进度 + message send 实现,任务结束自动停止,无残留 cron 任务
  • 备选方案:cron 心跳 — 仅当必须脱离当前执行流时使用,需设置 payload.deliver=false,将 heartbeatJobId 写入状态文件以便清理

每次心跳前必须读取最新进度(状态文件/日志),发送动态内容而非重复模板,包含:当前步骤/阶段、关键指标、下一步计划。

3. 即时完成通知
任务成功或失败后立即发送结果摘要,并严格清理心跳机制(原地心跳自然终止;cron 心跳需显式 remove,失败时重试 2 次并设置兜底 cleanup cron)。

显著优点

  • 用户体验优先:消除"黑盒等待"焦虑,用户可灵活调整心跳间隔
  • 资源安全:推荐的原地心跳避免 cron 残留,减少系统资源泄漏风险
  • 容错设计:cron 清理失败时具备指数退避重试和兜底清理机制
  • 平台适配:支持 Discord DM 等场景,使用标准 message send 格式

潜在局限

  • 实现复杂度:cron 心跳分支涉及状态文件管理、去重检查、失败重试等多重逻辑,实现门槛较高
  • 平台限制:部分消息平台可能对高频推送有限制,需根据实际环境调整间隔
  • 进度读取依赖:动态心跳要求任务具备可解析的进度输出,否则可能退化为静态模板

适合人群

  • 需要执行长时间运维/开发任务的开发者
  • 追求透明化、可预期服务体验的服务型 AI 部署场景
  • 多步骤 CI/CD 流水线需要人工确认或监控的环节

常规风险

  • cron 泄漏:未正确实现 cleanup 逻辑可能导致重复心跳持续推送
  • 状态不同步:若进度读取失败,心跳消息可能显示过时信息
  • 网关超时:cron remove 操作可能因网络问题失败,必须实现重试机制
  • 间隔冲突:用户中途修改间隔若处理不当,可能导致新旧 cron 并存

Let Me Know 内容

手动下载zip · 3.6 kB
skill-card.mdtext/markdown
请选择文件