RaycarlLei/tool-journal

TypeScript execution journal for retryable tools: SQLite durability, lease fencing, explicit uncertainty, and reproducible crash tests.

解决的问题

解决工具执行中的「响应丢失」问题,即工具成功完成外部操作(如 API 调用)后,系统在响应记录前崩溃。这可防止系统在恢复期间意外重复执行操作(重复效果)或处于不确定状态。

工作原理

该库使用 SQLite 实现持久化执行日志,记录操作执行前的意图。通过租约和重试准入窗口协调执行。若发生崩溃,日志允许系统重放先前记录的收据,或在下游服务支持幂等性时,使用稳定的幂等性密钥安全重试请求。对于无法安全自动恢复的操作,会显式标记为 indeterminate。

适用人群

构建依赖外部工具且需要高可靠性与崩溃恢复保障以确保操作不重复的 AI 代理或自动化工作流的开发者。

特性亮点

  • 持久化执行:使用 SQLite 实现本地持久化,无运行时依赖。
  • 崩溃恢复:专门处理外部效应与完成记录之间的间隙。
  • 幂等性协调:管理幂等性密钥和重试窗口,确保安全重试。
  • 框架集成:包含与 LangGraph 的参考集成,演示状态图内的恢复机制。

相关

  • 项目
  • 项目
  • 项目
  • 项目