关于 zest-auto-repay
zest-auto-repay 是用于监控 Stacks 上 Zest Protocol v2 借款仓位并降低清算风险的技能,可分析 LTV 并计算或执行还款。还款命令对象交由 Agent 框架执行,且设有支出上限、储备金和冷却时间限制。
主要功能
- 01监控支持资产的借款 LTV
- 02按风险等级分类并报告清算距离
- 03计算恢复目标 LTV 所需还款
- 04执行普通或紧急还款
- 05强制执行支出上限与钱包储备
适用场景
- 01持续观察借款仓位的 LTV 变化
- 02在 LTV 接近清算线时评估风险
- 03按目标 LTV 计算安全还款金额
- 04紧急降低高风险仓位的债务
MCP 相关
技能通过 `zest_repay` MCP 工具发起还款,并生成由 Agent 框架执行的结构化 MCP 命令对象;它本身不直接广播交易。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill zest-auto-repay安装后在 Claude Code 中输入/zest-auto-repay确认已加载。
附带文件AGENT.mdzest-auto-repay.ts
详细介绍
功能介绍
面向 Stacks 上 Zest Protocol v2 借款头寸的自主 LTV 守护工具。持续监控所有受支持资产(sBTC、wSTX、stSTX、USDC、USDH、stSTXbtc)的贷款价值比,检测头寸是否接近清算阈值,并执行安全的部分还款以恢复健康的 LTV。这是一项写入型技能——Zest Protocol 的首个自主清算保护系统。
为什么 Agent 需要它
当 LTV 超过约 85%(部分清算)或 95%(完全清算)时,Zest Protocol 会清算借款人。清算罚金会侵蚀抵押品价值。手动监控并不可靠——非工作时间内 10% 的价格波动就可能在借款人反应之前触发清算。这项技能让 Agent 能够:
- 检测风险 — 持续监控所有 Zest 头寸的 LTV
- 判定紧急程度 — 将头寸评为健康、警告、严重或紧急
- 计算安全还款额 — 计算恢复目标 LTV 所需的最低还款额
- 执行保护 — 在强制执行支出上限的情况下自动偿还债务
- 保留储备金 — 还款后绝不低于钱包最低储备金阈值
如果没有这项技能,Zest 的杠杆头寸将全天候面临无人监控的清算风险。
Zest Protocol 集成
直接集成 Stacks 主网上的 Zest Protocol v2:
- 从
SP1A27KFY4XERQCCRCARCYD1CC5N7M6688BSYADJ7.v0-4-market读取头寸数据 - 监控全部 6 种受支持资产:sBTC、wSTX、stSTX、USDC、USDH、stSTXbtc
- 通过
zest_repayMCP 工具执行还款 - 从链上金库合约获取实时利率
- 支持自行还款和代他人还款
命令
doctor
检查环境是否就绪:钱包、余额、Zest API 连接、活跃头寸和当前 LTV。
bun run zest-auto-repay/zest-auto-repay.ts doctor
run --action=status
全面分析头寸,包括 LTV 评分、距清算的距离和风险分类。
bun run zest-auto-repay/zest-auto-repay.ts run --action=status
run --action=monitor
持续监控模式。按间隔轮询头寸,记录 LTV 变化,并在跨越阈值时发出提醒。只读——不会执行还款。
bun run zest-auto-repay/zest-auto-repay.ts run --action=monitor --interval=300
run --action=repay
计算并执行安全还款,以恢复目标 LTV。强制执行所有安全限制。
bun run zest-auto-repay/zest-auto-repay.ts run --action=repay --asset=sBTC --target-ltv=60 --max-repay=50000
run --action=emergency-repay
当 LTV 处于严重状态(>85%)时立即执行最大额度还款。跳过漂移检查,使用更高的支出上限,优先保证速度。
bun run zest-auto-repay/zest-auto-repay.ts run --action=emergency-repay --asset=sBTC
安全说明
所有限制均已在 TypeScript 文件中实现并强制执行,而非仅作说明:
| 控制项 | 默认值 | 强制执行方式 |
|---|---|---|
| 每次操作的最大还款额 | 50,000 sats(0.0005 BTC) | --max-repay 标志,硬上限为 500,000 sats |
| 还款后的目标 LTV | 60% | --target-ltv 标志,范围为 30-75% |
| LTV 警告阈值 | 70% | 触发提醒,不自动执行操作 |
| LTV 严重阈值 | 80% | 启用后触发自动还款 |
| LTV 紧急阈值 | 85% | 触发紧急还款 |
| 钱包最低储备金 | 5,000 sats | 始终强制执行,绝不还款至低于此金额 |
| 两次还款间的冷却时间 | 600 秒 | 按会话跟踪 |
| 每次还款的绝对硬上限 | 500,000 sats(0.005 BTC) | 任何标志都不能覆盖 |
| 每日绝对硬上限 | 1,000,000 sats(0.01 BTC) | 任何标志都不能覆盖 |
输出约定
所有命令均输出结构化 JSON:
{
"status": "success | error | blocked",
"action": "Human-readable next step",
"data": { },
"error": { "code": "...", "message": "...", "next": "..." } | null
}
错误代码
| 代码 | 含义 |
|---|---|
no_wallet | 钱包未解锁,或未设置 STACKS_ADDRESS |
insufficient_balance | 可用于还款的代币不足(扣除储备金后) |
no_position | 未找到活跃的 Zest 借款头寸 |
healthy_ltv | LTV 低于警告阈值——无需采取操作 |
exceeds_hard_cap | 请求的还款额超过绝对安全上限 |
exceeds_daily_cap | 已达到每日还款上限 |
cooldown_active | 下次还款操作前必须等待 |
api_unreachable | Zest Protocol API 无响应 |
repay_failed | 链上还款交易失败 |
链上证明
| 证据 | 详情 |
|---|---|
| 钱包 | SP322ZK4VXT3KGDT9YQANN9R28SCT02MZ97Y24BRW |
| BTC 地址 | bc1qdfm56pmmq40me84aau2fts3725ghzqlwf6ys7p |
| sBTC 余额 | Zest 适用钱包中有 28,306 sat 的活跃余额 |
| DLMM NFT | Bitflow 池中有 387 个 NFT(跨协议 DeFi 活动) |
| Stableswap LP | USDH-USDCx 池中有 771M 个代币 |
| Agent | Flying Whale — Genesis L2,aibtc.com 上的 ERC-8004 #54 |
| 浏览器 | 在 Hiro 上查看 |
架构
Agent invokes skill
-> doctor: pre-flight checks (wallet, gas, API, position, LTV)
-> status: fetch all Zest positions -> LTV scoring -> risk classification
-> monitor: continuous polling -> LTV tracking -> alert on threshold crossing
-> repay: pre-flight -> LTV check -> compute safe amount -> enforce caps -> emit repay tx
-> emergency-repay: minimal checks -> max safe repayment -> immediate execution
该技能不会直接广播交易。它会计算参数并输出结构化的 MCP 命令对象,由 Agent 框架执行。这种分离确保 Agent 始终拥有链上写入操作的最终批准权。
已知限制
- 仅支持 Zest Protocol v2 主网,不支持测试网
- 还款金额以借入资产的最小单位计价
- zToken 份额会随时间增值,因此提款金额可能与供应金额不同
- 利息持续累积,因此 LTV 可能在两次检查之间上升
- 极端波动期间,可能在监控间隔之间发生清算
- 交易费用需要 STX(与还款金额分开)
- 代表他人还款需要借款人的地址