搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

relayworkslab/relayworks-recovery

AI 工程

让中断的 AI Agent 结构化数据任务从上一检查点续跑,验收后再以 USDC 结算。

110
30
TypeScript
MIT
创建于 2 天前

项目介绍

RelayWorks Recovery 是 RelayWorks 服务背后的恢复引擎,面向中途失败的 JSON/CSV 补全、抽取、规范化等结构化数据 Agent 任务。它不会整单重跑,而是把已完成分块封存,只把剩余分块交给受限 worker,并由独立验证器核验已完成的记录是否被逐字节保留,客户验收后才通过 x402 在 Solana 上以 USDC 付款(项目说明)。

README 描述的任务状态机覆盖过期、失败、取消、重试、争议、退款和对账;客户文件保存在 Postgres 与对象存储中,链上只出现提供方身份、反馈和 USDC 支付(恢复流程)。本仓库是服务端引擎与 Python worker,网站和控制台在单独的 relayworks 仓库。它适合已经按分块运行数据处理 Agent、希望在执行之外补上验收与结算环节的团队,而不是通用任务调度器。

恢复流程

一次恢复分六步(README):

  1. 打包:用 Solana 钱包登录,提交带版本号的包,包含输入摘要、已完成与剩余分块 ID、失败详情、适配器版本和验收检查。
  2. 报价:由受控提供方给出固定报价,客户设置花费上限和截止时间。
  3. 租约:单个 worker 持有独占执行租约,分块级幂等键避免重复工作。
  4. 续跑:受限 worker 只处理被授权的剩余分块,不执行 shell 命令,也不运行客户代码。
  5. 验证:验证器检查 schema、记录数、唯一 ID 以及已完成分块的字节级保留。
  6. 验收后结算:验收与结算分开记录,USDC 通过 x402 结算,提供方在 Solana 收到付款,结果反馈写入 8004 Agent 注册表。

本地运行

需要 Node 24+、Python 3.10+ 和 Docker(本地启动):

docker compose up -d          # Postgres 16
cp .env.example .env
cd server
npm install
npm run dev                   # 构建后在 :8787 提供服务

另开终端,在 WORKER_TOKEN 与 .env 一致后启动 worker(worker 命令):

RELAYWORKS_API=http://127.0.0.1:8787 WORKER_TOKEN=<token> python worker/main.py

SETTLEMENT_MODE=fake 和 REPUTATION_MODE=fake 让所有环节留在链下;改为 SETTLEMENT_MODE=x402 与 REPUTATION_MODE=solana 才进行真实 USDC 结算和 8004 反馈,主网配置会拒绝占位代币以及网络或金库钱包不匹配的情况(结算模式)。

npm run build 还会把浏览器端 x402 付款辅助脚本打包到 server/build/browser/x402-pay.js,可用 X402_BUNDLE_OUT 改写到其他位置,例如 web 仓库的 dist/x402-pay.js。

测试与运维

在 server/ 目录运行测试:npm test 覆盖内存存储、worker 与 x402 适配器;--postgres 额外使用临时 Postgres 数据库;--browser 用无头 Chrome 驱动控制台,依赖 RELAYWORKS_WEB_DIST(默认 ../dist)(测试说明)。测试覆盖包被拒绝、单租约执行、验证器保留检查、验收前拒绝付款、重放安全的幂等、重启和数据库故障后的结算存活、同时支付与退款重试,以及真实 x402 签名。

运维命令包括 npm run preflight、一次性的 npm run register-provider、npm run refund -- RW-1001,以及 reconcile-payment / reconcile-payout(运维命令)。

使用约束

  • 本地开发依赖 Docker 启动 Postgres 16,否则需自行提供数据库。
  • 真实结算需要配置 Solana 钱包、金库和 x402 模式;fake 模式仅用于本地。
  • 浏览器测试需要单独 web 仓库的 dist/ 目录,无法只靠本仓库运行。
  • worker 是受限 Python 进程,数据任务需符合分块 JSON/CSV 加验收检查的模型,不支持执行任意代码。
  • 许可证为 MIT(许可证)。

HotRepo 点评

RelayWorks Recovery 在 2026-11-05 的 HotRepo 新项目 TypeScript 榜上有记录:统计窗口从 2026-11-04 21:32 UTC 开始,截至 2026-11-05 06:45 UTC,新增 103 Star 和 11 Fork。目前只有这一次早期快照,也没有全语言日榜名次,只能说明初期关注度,不足以判断趋势。设计上值得注意的是把验收与结算拆成两条记录、并验证已完成分块的保留情况——这正是多数续跑系统略过的部分;同时客户文件留在链下,链上只承载支付与信誉数据。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。