内容
<p align="center">
<img src="docs/screenshots/banner.png" alt="Agent Casper — 面向 AI 代理的自主 DeFi 收益基础设施" width="100%" />
</p>
<h1 align="center">Agent Casper AI</h1>
<p align="center"><b>Casper 网络上的自主 DeFi 收益代理</b></p>
> **Casper Agentic AI Buildathon 2026** · 建设方向 #1: 通过 MCP 的自主收益路由代理
<p align="center">
<a href="https://testnet.cspr.live"><img src="https://img.shields.io/badge/Casper-Testnet-00F5FF" alt="Casper 测试网" /></a>
<a href="https://testnet.cspr.live"><img src="https://img.shields.io/badge/Contract-hash--486a161b-00FF94" alt="智能合约" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-BF5AF2.svg" alt="许可证: MIT" /></a>
<a href="https://youtu.be/4XiVtV4MWno"><img src="https://img.shields.io/badge/Demo-YouTube-FF0000" alt="演示视频" /></a>
<a href="https://casper.soenic.com"><img src="https://img.shields.io/badge/Live%20Demo-VPS-00F5FF" alt="实时演示" /></a>
</p>
## 截图
<p align="center">
<img src="docs/screenshots/dashboard.png" alt="自主网络仪表盘" width="90%" /><br/>
<em>自主网络仪表盘 — 实时 AI 决策,投资组合轨迹,RWA 预言机,链上证明</em>
</p>
<table>
<tr>
<td width="50%"><img src="docs/screenshots/agent-trust.png" alt="代理注册 + AI 信任引擎" /><br/><em>代理注册 — 多租户注册 (多租户) + 可解释的 AI 信任引擎</em></td>
<td width="50%"><img src="docs/screenshots/x402.png" alt="x402 代理经济" /><br/><em>x402 — 代理到代理经济 + 链上结算证明</em></td>
</tr>
<tr>
<td width="50%"><img src="docs/screenshots/swap-history.png" alt="真实 DeFi 兑换" /><br/><em>Casper 主网上的真实非托管 DeFi 兑换 (CSPR.trade)</em></td>
<td width="50%"><img src="docs/screenshots/api.png" alt="API 参考" /><br/><em>实时 API 参考 — REST + x402,页面内 "试试看"</em></td>
</tr>
<tr>
<td width="50%"><img src="docs/screenshots/deploy.png" alt="自助服务 vault 部署" /><br/><em>自助服务 vault 部署 — 任何钱包都可以部署,注册和服务 (租户上线)</em></td>
<td width="50%"><img src="docs/screenshots/detail_x402.png" alt="x402 结算详情" /><br/><em>x402 结算历史 — 每笔支付都可以在链上验证</em></td>
</tr>
</table>
<p align="center">
<img src="docs/screenshots/my_vault.png" alt="我的 Vaults — 代理 AUM,每个钱包的 vaults,质押和兑换历史" width="90%" /><br/>
<em>我的 Vaults — 协议 AUM 跨所有注册的 vault,每个钱包的资产 (流动 vs 质押 CSPR),代理 gas/跑道,和完整的质押和兑换历史</em>
</p>
---
## 快速链接
| | |
|---|---|
| **实时仪表盘** | https://casper.soenic.com |
| **后端 API** | https://agentcasper.soenic.com |
| **演示视频** | https://youtu.be/4XiVtV4MWno |
| **智能合约** | https://testnet.cspr.live (hash-486a161b...) |
| **X / Twitter** | https://x.com/kata_enda |
| **Telegram** | https://t.me/soesoe14 |
| **Discord** | mas_end_47419 |
| **GitHub** | https://github.com/kataenda |
---
## 概述
**AGENT-CASPER** 是一个完全自主的 DeFi 收益优化代理,运行在 Casper 网络上。在每个轮询周期 — 一个**可配置间隔** (`60s` 在演示视频中为可见的实时活动,`300s` 在生产环境中以降低 LLM 成本,进行 24/7 运行) — 代理:
1. 获取真实世界资产价格 (PAXG/黄金,UST10Y/国债,WTI/石油)
2. 从 Casper 验证者通过 CSPR.cloud 获取收益利率
3. 让 **Claude AI 自主查询** 链上 + RWA 数据通过 MCP 工具并做出决定
4. 在需要时自主执行链上再平衡交易
5. 在链上发布验证的 RWA 价格 (可审计的预言机轨迹),并通过 **x402** 微支付服务提供和出售优质数据 — Casper 主网上的服务提供商,而不仅仅是消费者
6. 通过 **CSPR.trade MCP** 在 Casper 主网上执行**真实,非托管 DeFi 兑换**,并且兑换现在**反映 AI 的决定**:降低风险质押 **CSPR → sCSPR**,风险解除 **sCSPR → CSPR**,根据配置漂移大小 — 代理获取实时报价,构建交易,用自己的密钥签名并广播它 (已验证实时:[`f28a4051…`](https://cspr.live/transaction/f28a4051e17a67f4a6bd9951802cfb64a062b1daa01b59945b444fb25a052eb5))
该系统将一个被动智能合约 vault 转换为一个**自主投资组合管理器**,统一了 Casper 创新跟踪的三个支柱 — **Agentic AI · DeFi · RWA** — 并通过**代理到代理商务** 完成循环:一个独立的买方代理 (其自己的 ed25519 身份) 通过 x402 向 Agent Casper 支付并在链上结算 — 一个真实的 CEP-18 `transfer_with_authorization` 在两个不同的代理之间 ([`eb0e914c…`](https://testnet.cspr.live/transaction/eb0e914cdd902b177d95cd92a345cff3d7cdfbc33bffe8927d456d8c8a1f469e),Casper 测试网) — 让**机器经济** 发挥作用,而不仅仅是描述它。
> **什么是实时 vs. 路线图 (诚实的范围)。** 测试网 **YieldVault 是代理的*决策 + 链上证明层*** — 它记录 AI 驱动的分配变化和验证的 RWA 价格在链上,并且现在**托管真实的存款人 CSPR 在链上** — 一个可支付的 `deposit()` 将 CSPR 存入合约钱包 (已验证 [`86fd83a6…`](https://testnet.cspr.live/deploy/86fd83a683dccb7484c063accb0e90e0e3ae859daddf270573453bce365bbaee),700 CSPR)。代理还**主动管理其自己的链上资本**,执行每个分配决定作为一个**真实,有方向性的主网兑换** (降低风险 vs 风险,大小由漂移决定),用自己的密钥签名。**实时收益路由现已实施**:在再平衡时,代理可以将 vault 的 CSPR **委托给 Casper 验证者** 通过原生质押 (`stake`/`unstake`,Odra `env().delegate`),保持一个流动性缓冲,以便普通的提款保持即时 — **可选 (`STAKING_ENABLED`) 并在链上验证** (Casper 最低委托 + 多时代时序)。我们说 "已实施 + 验证",而不是 "已证明",直到委托交易确认 — 没有夸大。
> 使用 [Casper AI 工具包](https://www.casper.network/ai) 构建 — MCP 服务器 (Casper MCP + **CSPR.trade MCP**),CSPR.cloud,Odra 框架,x402,casper-js-sdk v5
---
## 现实世界适用性和影响
> **Agent Casper 是一个自主的 vault 管理器,它在 24/7 内保持 CSPR 收益最佳,无需人工干预 — 其代理逻辑是代币无关的,准备好在 Casper 生态系统成熟时管理 RWA 代币收益。**
大多数想要 CSPR 收益的人都会因为同样的事情而损失部分收益:他们再平衡太晚,受到费用 + 滑点的影响,并且无法 24 小时监控协议。Agent Casper 解决了这个问题 — 作为一个自主的基金经理,监控条件,计算是否值得重新平衡 (收益高于 gas + 滑点),并自主执行。目前重点是纯 DeFi:**通过原生质押优化 CSPR 收益**。但是由于代理的决策/再平衡逻辑是**代币无关的**,同一个代理可以管理 **RWA 代币** 的收益 (例如 Parking Blox),只要真实世界资产流入 Casper — 一个代理,两个世界:**现在是 DeFi,将来是 RWA**。
> **诚实的范围:** 今日 vault 是 CSPR 原生的 (可支付 CSPR 存款)。"代币无关" 描述了**代理逻辑和架构**,而不是一个已经发货的 RWA 代币存款路径 — 我们出售一个可信的轨迹,而不是一个虚构的功能。
**它是谁的。** 想象一个长期 CSPR 持有人,他们没有时间成为交易员。他们希望他们的资本工作 — 找到最好的收益,抓住机会,避免不必要的费用 — 而不需要每小时盯着仪表盘。Agent Casper 成为他们的个人经理:自主,透明,并从费用中覆盖其自身的运营成本。相同的原则后来扩展到 RWA 代币所有者,他们希望在不需要手动管理的情况下让他们的资产增值。
**问题。** 链上收益分配仍然是手动和宏观盲视的。财政部和 LP 手动再平衡,忽略真实世界的信号 (利率,黄金,石油) 影响风险偏好,并且无法对 24/7 市场做出反应,而他们在睡觉时。没有一个 24 小时,可解释的,链上的代理将 *真实世界数据* 与 *链上行动* 联系起来。
**解决方案。** Agent Casper 是一个自主的,RWA 感知的分配代理,它连续运行,通过 Claude 实时宏观 + 验证者数据,记录每个决定在链上进行审计,并**用真实资本执行这些决定**。
**谁受益 — 具体用户:
| 用户 | 交付的价值 |
|---|---|
| **DAO / 协议财政部** | 无人工干预的,基于策略的再平衡,带有链上审计轨迹,解释每次行动的原因 |
| **零售 LP 和质押者** | 一个 24/7 的代理,根据飞行安全信号 (黄金 ↑,国债 ↑) 降低风险,他们原本会错过这些信号 |
| **其他 AI 代理** | 通过 **x402** 购买 Agent Casper 的 RWA 感知决策和验证的饲料 — 一个付费的,机器到机器的数据服务 |
| **Casper 验证者** | 自主的,RWA 驱动的流动性流入流动质押 (sCSPR) 增加真实的,在链上的交易量 |
**什么是真实的今天 (不是模拟的):
| 能力 | 状态 | 证明 |
|---|---|---|
| RWA 市场数据 (黄金,UST10Y,WTI) | ✅ 真实 | CoinGecko + Yahoo Finance 实时 API |
| 链上 RWA 预言机轨迹 | ✅ 真实 | `update_rwa_price` 在测试网上部署 |
| AI 驱动的分配决策 | ✅ 真实 | 通过 MCP 工具的 Claude,存储在链上 |
| 有方向的主网执行 | ✅ 真实 | CSPR ⟷ sCSPR 兑换在 CSPR.trade 上 ([`f28a4051…`](https://cspr.live/transaction/f28a4051e17a67f4a6bd9951802cfb64a062b1daa01b59945b444fb25a052eb5)) |
| 代理到代理的 x402 结算 | ✅ 真实 | CEP-18 `transfer_with_authorization` ([`eb0e914c…`](https://testnet.cspr.live/transaction/eb0e914cdd902b177d95cd92a345cff3d7cdfbc33bffe8927d456d8c8a1f469e)) |
| **存款人 CSPR 的托管** (合约钱包) | ✅ **真实** | 可支付的 `deposit()` 将 CSPR 存入合约钱包 — 已验证 [`86fd83a6…`](https://testnet.cspr.live/deploy/86fd83a683dccb7484c063accb0e90e0e3ae859daddf270573453bce365bbaee) (700 CSPR,`attached_value`,无恢复) |
| **多租户 vault 服务** | ✅ **真实** | 任何钱包部署/拥有自己的 vault,注册代理 ( [`1dc138a9…`](https://testnet.cspr.live/deploy/1dc138a911b8b62b4269d5e966a9f6b2e5e2a13651590751682ee2021c58c6ba)),将真实的 CSPR 存入其中 — 并且代理**自主再平衡租户 vault** 每个周期 ([`d7551fcb…`](https://testnet.cspr.live/deploy/d7551fcb6187175e19ca66d77219fc2c5431a317cb3d50d6faecf5c45bb072ff),漂移门控)。实时 AUM:~1,900 CSPR 跨 2 个独立拥有的 vaults |
| 路由托管资本到收益头寸 | 🟡 **已实施,验证中** | 原生质押 — 代理在再平衡时将 vault CSPR 委托给验证者 (`stake`/`unstake`,流动性缓冲)。可选;链上委托正在验证 (最小委托 + 时代时序) |
| 代理从收入中自我资助 | 🟡 **已实施** | 管理费累积到代理的储备中,它会将其转移到自己的 gas 账户 (`collect_fees`);vault 费 = CSPR (主要 gas),x402 销售 = 稳定币 (次要,需要兑换) |
---
## 路线图和长期愿景
**愿景:** Casper 的默认自主,RWA 感知 treasury 层 — 任何 DAO,协议或代理都可以将 24/7 收益决策委托给一个透明的,链上的 AI,其每一步都可审计,其数据本身就是一个可出售的 x402 服务。
| 阶段 | 时间线 | 里程碑 |
|---|---|---|
| **1 — 自主代理 + 真实托管 + 多租户服务 (现在)** | ✅ 已发货 | AI 决策 + 链上证明层,代理资本的真实主网执行,x402 提供者经济,**可升级的可支付 vault 托管真实存款人 CSPR** ([`86fd83a6…`](https://testnet.cspr.live/deploy/86fd83a683dccb7484c063accb0e90e0e3ae859daddf270573453bce365bbaee)),**多钱包 vaults 由代理自主服务** (租户再平衡 [`d7551fcb…`](https://testnet.cspr.live/deploy/d7551fcb6187175e19ca66d77219fc2c5431a317cb3d50d6faecf5c45bb072ff)),实时仪表盘 |
| **2 — 收益承载 vault** | 2026 年 3 季度 | 将已托管的 CSPR 路由到链上质押 (sCSPR)/LP 以赚取收益,分配由真实头寸支持,提现会计 |
| **3 — 多资产 + 主网启动** | 2026 年 4 季度 | 多代币策略 (LP 池,稳定币),主网合约部署,第三方**安全审计**,风险上限和断路器 |
| **4 — 生态系统和治理** | 2027 | 代理政策的 DAO 治理,**x402 代理市场** (代理买卖彼此的信号),其他人部署自己的 Casper 代理的 SDK |
**部署计划。** 前端 + 后端已经在 VPS 上 24/7 运行 ([casper.soenic.com](https://casper.soenic.com) · [agentcasper.soenic.com](https://agentcasper.soenic.com));测试网合约已经上线。第 2 阶段在相同的操作栈后面添加一个主网合约,容器化 (Coolify/Docker) 并备份 CSPR.cloud 密钥以实现配额弹性。
**采用和增长策略。**
- **楔形:** 将 1-2 个 Casper 原生 DAO/协议作为试点 treasury 进行策略驱动的再平衡。
- **网络效应:** 每个通过 x402 出售信号的代理都使市场更有价值 — 数据复合。
- **开发者拉动:** 开源代理框架,以便团队为自己的策略分叉它 (增加 Casper 链上活动)。
- **可持续性:** vault 的链上费用 (`fee_bps`) + x402 提供商收入资助持续运营 — 代理被设计为支付自己的 gas。
**社区与社交媒体。** [X / Twitter](https://x.com/kata_enda) · [Telegram](https://t.me/soesoe14) · Discord `mas_end_47419` · [GitHub](https://github.com/kataenda) · [演示视频](https://youtu.be/4XiVtV4MWno)
---
## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ AGENT-CASPER │
│ │
│ ┌──────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ RWA │ │ Claude AI │ │ YieldVault │ │
│ │ 预言机 ├───▶│ 决策引擎 ├───▶│ 智能合约 │ │
│ │ PAXG/ │ │ AI 决策 │ │ (Odra 2.x / Casper │ │
│ │ UST10Y/ │ │ (MCP 工具) │ │ 测试网) │ │
│ │ WTI 石油 │ └──────────────┘ └──────────────────────┘ │
│ └──────────┘ │
│ │ ▲ │ │
│ ┌────▼──────────────┴────────────────────────▼──────────────┐ │
│ │ FastAPI 后端 (Python) │ │
│ │ • 收益代理循环 (60s/300s) │ │
│ │ • CSPR.cloud 中间件 │ │
│ │ • x402 微支付处理器 │ │
│ │ • WebSocket 广播 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼──────────────────────────────────┐ │
│ │ Next.js 仪表盘 (React + TypeScript) │ │
│ │ • 实时网络仪表盘 │ │
│ │ • Casper 钱包集成 │ │
│ │ • 部署 / 注册代理 / 存款按钮 │ │
│ │ • AI 聊天界面 │ │
│ └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
## 使用的Casper AI工具
**构建大赛要求 — 使用每个所需的AI工具组件:**
| 所需组件 | ✓ | 在本项目中的位置 |
|---|---|---|
| **x402 微支付** | ✅ | [`x402.py`](backend/casper/x402.py) — 消费者**和**提供者;链上CEP-18 `transfer_with_authorization`结算(`eb0e914c…`) |
| **MCP服务器** (Casper MCP + CSPR.trade MCP) | ✅ | [`mcp_server.py`](backend/casper/mcp_server.py) (5种工具,由Claude驱动)+ [`cspr_trade.py`](backend/casper/cspr_trade.py) (实时**主网**交换) |
| **CSPR.click AI代理技能** | ✅ | **官方技能已安装** 在 [`.claude/skills/csprclick-skill/`](.claude/skills/csprclick-skill/SKILL.md) — 与 `make-software/csprclick-examples` 中的 `SKILL.md` 相同(`claude skill install cspr-click` / `npx skills add`)。其SDK集成指南已**应用**:`@make-software/csprclick-ui` 通过 [`CSPRClickProvider`](frontend/src/providers/CSPRClickProvider.tsx) 连接(在设置注册的 `NEXT_PUBLIC_CSPRCLICK_APP_ID` 后全局安装)。代理还创建并签署自己的非托管交易(`deployer.py`,`cspr_trade.py`),密钥保持本地 |
| **CSPR.cloud API** | ✅ | [`client.py`](backend/casper/client.py) — REST + 节点RPC(余额,部署,交易验证) |
| **Odra框架** | ✅ | [`yield_vault.rs`](contracts/src/yield_vault.rs) — **可升级,可支付**的真实托管保险库 |
详细分解:
| 工具 | 用途 |
|------|-------|
| **CSPR.cloud** | 区块数据,部署状态,账户余额 |
| **Odra框架2.7.2** | 收益保险库智能合约(Rust → WASM) |
| **casper-js-sdk v5** | 前端部署签名,钱包集成 |
| **CSPR.click** | `@make-software/csprclick-ui` 通过 `CSPRClickProvider` 连接(在设置 `NEXT_PUBLIC_CSPRCLICK_APP_ID` 后安装)— Casper钱包 / Ledger / Torus连接,账户会话 + 签名 |
| **x402协议** | HTTP原生按需支付,**官方CSPR.cloud `exact`方案** — EIP-712(`casper-eip-712`)类型数据与代理的ed25519密钥签名,CEP-18 `transfer_with_authorization`结算,**针对实时促进者的`/verify`(`isValid: true`)验证**。通过 `X402_ENABLED=true`启用 |
| **MCP服务器** | 自定义Casper MCP服务器向Claude暴露5种区块链工具(区块高度,收益率,保险库投资组合,RWA价格,账户余额) |
| **CSPR.trade MCP** | **Casper主网上的真实非托管DeFi** (`https://mcp.cspr.trade/mcp`,24种工具)。代理使用它进行实时交换报价**和执行** — `build_swap` → 使用代理自己的ed25519密钥签名 → 通过 `account_put_transaction`广播。资金从未离开代理的账户。通过 `/defi/quote`,`/defi/markets`,`/defi/swap`暴露 |
| **Casper钱包** | 用户身份验证和交易签名 |
| **Claude AI** | 具有RWA上下文的自主再平衡决策(claude-haiku-4-5) |
---
## 智能合约 — 收益保险库
**部署在Casper测试网:**
```
合约哈希:hash-486a161bf2d5d2b36b2cfda25557adf3c7b70ec1cda7cfb01dec0ba1545ac5ea
网络: casper-test
框架: Odra 2.7.2(Rust → WASM),可升级 + 可支付(真实CSPR托管)
```
> **原地升级 — 已在链上验证。** 包已经在链上升级(v1 `983c9198…` → v2 `04a04d88…`)与**相同的包哈希**,存款余额
> (1,000 CSPR TVL)和代理注册**保留** — `init()`是幂等的,因此升级永远不会清除状态。后端在运行时从
> 包中解析最新的合约版本,因此升级需要**没有环境/配置更改**。部署是
> **钱包范围** 像任何多钱包dApp一样: `/deploy`页面读取连接的
> 钱包自己的保险库(其 `yield_vault_prod` 命名键)— 如果没有则全新安装,
> 如果有则原地升级。
### 入口点
| 函数 | 描述 |
|----------|-------------|
| `deposit()` | 可支付 — 用户存款CSPR;`fee_bps`管理费累积到费用储备中 |
| `withdraw(amount)` | 用户提取其CSPR余额(从流动缓冲区支付) |
| `register_agent(agent)` | 所有者注册AI代理地址 |
| `rebalance(strategy, pcts, reason)` | 代理执行投资组合再平衡 |
| `update_rwa_price(asset, price, yield)` | 代理在链上发布验证的RWA数据 |
| `set_validator(validator)` | 代理/所有者设置要委托的验证器(原生质押) |
| `stake(amount)` / `unstake(amount)` | **真实收益** — 代理将保险库CSPR委托/取消委托给验证器(`env().delegate`),保持流动性缓冲 |
| `collect_fees()` | **代理自我资助** — 仅限代理;将累积的费用储备清零到代理自己的燃料账户 |
| `set_fee_bps(bps)` | 所有者设置管理费(基点,最高10%) |
| `get_portfolio()` / `get_tvl()` / `get_fee_bps()` | 读取分配,真实TVL(流动+质押),和活跃费用 |
| `get_liquid()` / `get_staked()` / `get_fee_reserve()` | 读取流动缓冲,委托金额,和待处理费用储备 |
| `emergency_pause()` | 所有者安全控制 |
### 发出事件
`Deposited`,`Withdrawn`,`Rebalanced`,`AgentRegistered`,`RwaPriceUpdated`,`EmergencyPaused`,`FeeCollected`,`FeesSwept`,`Staked`,`Unstaked`
---
## x402 微支付
> **这是代理到代理的商业 — 机器经济,今天就开始工作。** 代理Casper不仅*消费* x402;它还通过x402**赚取**。独立买家代理(其自己的
> ed25519身份)发现代理Casper的服务,支付费用,并**在链上结算**
> — 真实的CEP-18 `transfer_with_authorization` 在两个不同的代理之间,自动
> 机器到机器的支付,无需人工干预([`eb0e914c…`](https://testnet.cspr.live/transaction/eb0e914cdd902b177d95cd92a345cff3d7cdfbc33bffe8927d456d8c8a1f469e),Casper测试网)。
> 封闭的双边循环(代理既支付其RWA风险饲料又获得其
> AI决策的报酬)正是Casper Manifest描述的代理经济。
代理Casper在**循环的双方** 实现 **x402 v2 HTTP原生按需支付** 协议:
- **消费者** — 代理按API调用支付其高级“RWA风险饲料”的费用。
- **提供者** — 代理**出售**其服务:其他代理为按需
Claude AI建议(`/x402/decision`)或链上验证的RWA价格饲料
(`/x402/rwa-feed`)支付费用。支付进入代理自己的账户,具有真实的CEP-18
`transfer_with_authorization` 结算演示(Casper测试网,X402代币居住的地方)。
这是 **官方CSPR.cloud `exact`方案** — 符合
[`@make-software/casper-x402`](https://github.com/make-software/casper-x402) 和
**通过实时促进者的`/verify`验证端到端** (`/verify`返回
`isValid: true` — 使用[`scripts/x402_verify_proof.py`](scripts/x402_verify_proof.py)重现)。
**流程** (`backend/casper/x402.py` + `backend/casper/eip712.py`):
1. 客户端请求受保护的资源(`GET /premium/yield-forecast`)。
2. 服务器回复 **HTTP 402 支付要求** + `{resource, accepts:[PaymentRequirements]}` (方案 `exact`,网络 `casper:casper-test`,`asset` = CEP-18代币包哈希,`extra` = 代币名称/版本)。
3. 客户端构建 **`TransferWithAuthorization`** 并签署 **EIP-712类型数据摘要** ([`casper-eip-712`](https://github.com/casper-ecosystem/casper-eip-712) 域:`name, version, chain_name, contract_package_hash`)与自己的 **ed25519** 密钥 — `keccak256(0x1901 ‖ domainSeparator ‖ structHash)`。
4. 客户端重试带有 base64 `X-PAYMENT` 头部(`{x402Version, resource, accepted, payload:{signature, publicKey, authorization}}`)。
5. 服务器 **重新计算相同的摘要** ,验证签名,将其绑定到付款人(`publicKey` → 账户哈希 → `authorization.from`),检查过期 + 随机数,然后 **通过促进者结算** 为CEP-18 `transfer_with_authorization`。
由于结算是 **CEP-18代币转移** (不是原生转移),金额是
**真正的亚CSPR微支付** — 没有2.5 CSPR原生转移下限。促进者通过其发布的 `feePayer` 支付部署燃料;代理只需要持有代币。
> **x402 是端到端的 — 包括真正的代理到代理结算。** 完全符合官方的 `exact` 方案和 **在链上由实时CSPR.cloud促进者结算** (Casper测试网,CEP-18 X402代币居住的地方)— 真实的402握手,
> EIP-712 ed25519证明被促进者的 `/verify`接受(`isValid: true`),以及促进者的 `/settle`提交的真实
> `transfer_with_authorization`。两个链上证明:
>
> - **代理到代理(独立买家 → 提供者):** 单独的买家代理及其自己的
> ed25519身份(`00e2d5cd…`)向代理Casper提供者(`0088cb6d…`)支付1 X402 —
> [`eb0e914c…`](https://testnet.cspr.live/transaction/eb0e914cdd902b177d95cd92a345cff3d7cdfbc33bffe8927d456d8c8a1f469e)
> (资助转移代理 → 买家:[`7cc8be65…`](https://testnet.cspr.live/deploy/7cc8be65f8bd55766fb98f5735c6cf8a94e26a823a804fd020357eb4166900cf))。
> 这是机器经济在链上:两个不同的代理,真实的代币在它们之间流动。
> - **结算轨道:** 代理自己的 `transfer_with_authorization` 已部署代币 —
> [`e297580f…`](https://testnet.cspr.live/transaction/e297580fc01b3bd4bfb011a592f129822b253041bf643ce16aed6c34f4443fdc)
> (代币 [`c61db3d7…`](https://testnet.cspr.live/contract-package/c61db3d7ed7565c6a770e03184c031cf6a2a10f35519726d6fed577c46d28a63))。
> 重现:部署代币(`scripts/deploy_x402_token.py`),资助买家
> (`scripts/fund_buyer.py`),然后结算买家 → 提供者(`scripts/buyer_pays_agent.py`);
> 自我结算:`scripts/x402_settle_real.py`;仅验证证明:`scripts/x402_verify_proof.py`。
**端点:**
| 端点 | 角色 | 描述 |
|----------|------|-------------|
| `GET /premium/yield-forecast` | 提供者(测试网) | x402保护的资源 — 402无支付,优质数据与有效的`X-PAYMENT` |
| `GET\|POST /x402/decision` | **提供者(主网)** | 支付(CEP-18代币)→ 新鲜Claude AI再平衡建议(RWA感知) |
| `GET\|POST /x402/rwa-feed` | **提供者(主网)** | 支付(CEP-18代币)→ 聚合RWA价格(PAXG,UST10Y,WTI)+ 链上证明部署哈希 |
| `GET /x402/info` | — | x402配置,付款人地址 + 代币,促进者支持,**提供者服务目录** |
| `GET /x402/supported` | — | 代理促进者的支持方案/网络 |
主网提供者端点设置 `payTo` 为代理自己的公钥,因此支付代理的CSPR结算到代理Casper。 ed25519证明在每个请求上验证,并且有 **两种方式支付在链上结算**:
1. **促进者拉取** — 官方CSPR.cloud促进者从持有注册的x402许可的付款人
移动CSPR(`settlement: facilitator`)。
2. **付款人推送(自包含)** — 付款人提交真实的原生转移到 `payTo`
并将其部署哈希作为 `authorization.settlement_tx`传递。然后提供者
**在链上验证转移** (付款人 → payTo,≥ 金额,执行成功)并
报告 `settlement: onchain_transfer_by_payer` 与真实的 `cspr.live` 交易。
无论哪种方式,证明都绑定到链上支付(转移的发送者必须等于证明的签名者)。如果两者都无法结算(例如,无资金的演示密钥),证明仍然
验证并通过 `settlement: proof_verified` (待处理)授予请求。
**试试吧** (对抗实时生产后端):
```bash
# 1. 请求无支付 → HTTP 402 + PaymentRequirements
# (在浏览器中打开此网址,它显示原始的402挑战)
curl -i https://agentcasper.soenic.com/premium/yield-forecast
# 2. 检查配置,付款人公钥和实时促进者方案
curl https://agentcasper.soenic.com/x402/info
# 3. 完整的端到端付费流程:402 → ed25519签名证明 → HTTP 200 + 优质数据
# (从存储库根目录运行;读取后端/agent_secret_key.pem中的代理密钥)
python demo_x402.py # 仅限证明 — 无CSPR花费
python demo_x402.py --settle # 还结算真实的链上CSPR转移
# 4. 买家代理 — 独立代理(每个运行都有自己的全新ed25519身份)
# 为 `/x402/decision` 和 `/x402/rwa-feed` 支付Agent Casper的费用。
python demo_buyer_agent.py # 仅限证明 — 结算待定
# 5. 真实的链上结算:一个有资金的主网买家实际上向
# Agent Casper转账CSPR,证明提供者经济在链上结算(代理赚取)。
python demo_buyer_agent.py --settle --key buyer_key.pem --cloud-key <CSPR_CLOUD_KEY>
```
> 将网址替换为 `http://localhost:8000` 以在本地后端尝试。
> `demo_x402.py` 运行确切的 `X402Handler` 流程,代理使用(消费者端);
> `demo_buyer_agent.py` 扮演一个外部买家,支付 `/x402/decision` 和
> `/x402/rwa-feed` — 证明代理是一个真实的x402服务提供者,而不仅仅是一个消费者。
当 `X402_ENABLED=true` 时,代理还会为其“RWA风险饲料”每个周期进行x402微支付;支付记录(证明 + 结算部署哈希)包含在
通过WebSocket广播的每个周期结果中。
## 真正的DeFi — CSPR.trade MCP(Casper主网)
除了测试网保险库之外,Agent Casper通过官方的[CSPR.trade MCP](https://mcp.cspr.trade)(Uniswap-V2 DEX,24个公开的MCP工具)在Casper主网上执行**真正的、非托管的DeFi**。这是真正的链上交易 — 已实时验证:
> **实时兑换:** [`f28a4051…`](https://cspr.live/transaction/f28a4051e17a67f4a6bd9951802cfb64a062b1daa01b59945b444fb25a052eb5) · [`ba71c1a8…`](https://cspr.live/transaction/ba71c1a8e3008f9eed55a78eb6bfb0386cf4d8e61f5690fbc1412c74410b3eae)
**流程** (`backend/casper/cspr_trade.py`):
1. `get_quote` / `estimate_slippage` — 实时的主网定价、路由和价格影响。
2. `build_swap` — CSPR.trade 返回一个**未签名的Casper 2.x TransactionV1**。
3. 代理**在本地使用其自己的ed25519密钥**(与x402证明和再平衡使用的同一个密钥)签署交易 — MCP永远不会持有资金(**非托管**)。
4. 签署的交易通过 `account_put_transaction` 广播到Casper主网节点,返回一个真实的交易哈希。
**安全防护:** 输入金额上限、价格影响上限和显式的 `execute` 标志(`false` = 报价 + 构建 + 签名,仅限,不广播)。
**自主决策 → 执行(闭环)。** 当AI决定**再平衡**时,代理也可以在同一个周期内通过CSPR.trade触发一个小的**真实**主网兑换 — 将链上分配记录转换为实际的链上DeFi执行(在仪表板的决策日志中显示为 `DeFi⚡MAINNET` 交易徽章)。这**默认关闭** (`DEFI_EXECUTE_ON_REBALANCE=false`),并使用**代理自己的**主网CSPR,限定在一个基准金额的基础上,缩放分配偏移(`DEFI_SWAP_AMOUNT_CSPR` 基准,硬上限为 `CSPR_TRADE_MAX_AMOUNT_CSPR`),每日上限(`DEFI_MAX_SWAPS_PER_DAY`),以及上述金额 + 价格影响上限。(将**vault存款**的资本通过此方式路由是第二阶段 — 请参见Honest范围。)
**代理何时实际兑换?(经济纪律)。** 一个再平衡决策是**必要但不充分**的 — 兑换会产生gas + 价格影响,因此代理仅在变动**实质上有价值时**才会触发。当执行前, `_swap_worth_it()` ( [`backend/agent/yield_agent.py`](backend/agent/yield_agent.py))应用两个门控:
- **偏移门控** — 当前分配必须偏离AI的目标至少 `DEFI_MIN_DRIFT_PCT` 个百分比点(默认为 `10`)。这防止了**频繁交易**:微小、噪声级别的偏差被保留,不进行交易。
- **净收益门控** — 预估的**年化投资组合APY提升**(按实时每策略收益率加权)必须超过 `DEFI_MIN_NET_GAIN_BPS`(默认为 `50` bps)。如果收益提升不值得偿还兑换成本,则跳过。
跳过的兑换在周期结果中报告为 `settlement: "below_threshold"`,并附有原因,因此仪表板仍然显示代理选择持有的原因。简而言之:兑换是**事件驱动**的(经济阈值被触发),而不是调度驱动的 — 轮询间隔仅设置代理查看的频率,而不设置交易的频率。
**调整 `DEFI_MIN_NET_GAIN_BPS`** — 所需的最小年化APY提升(bps)以证明兑换的成本:
| 数值 | 行为 | 何时使用 |
|---|---|---|
| **`50`** (0.5%) | 健康的默认值 — 仅在明显有利时兑换 | ✅ **生产环境(使用此默认值)** |
| `100` (1%) | 更节俭 — 选择性地进行兑换 | 尽量减少交易 |
| `25` (0.25%) | 更激进 — 更频繁地进行兑换 | 当您信任兑换成本较低时 |
| `0` | 只要再平衡不降低APY就进行兑换 | 半演示 |
| `-1000` | 始终兑换,包括降低风险的变动(APY下降) | 仅用于演示 |
> **降低风险 / 飞往安全** 的再平衡会降低APY,因此任何正阈值都不会兑换(按设计 — 您不会为了收益率而交易到低收益分配)。真正的**高风险**变动仍然通过上述**降低风险绕过**执行。对于实时演示,设置 `-1000` 以强制兑换,然后恢复 `50` 以实现诚实、成本感知的行为。
**操作员可调(无需代码更改)。** 阈值是纯环境变量,因此代理的姿态是实时切换的 — **生产 / 真实默认**是严格的"纪律"配置文件:
| 配置文件 | `DEFI_EXECUTE_ON_REBALANCE` | `DEFI_MIN_DRIFT_PCT` | `DEFI_MIN_NET_GAIN_BPS` | 行为 |
|---------|:---:|:---:|:---:|-----------|
| **真实 / 纪律** (默认) | `true` | `10` | `50` | 仅在较大、有利可图的再分配时兑换 |
| **演示** (实时显示执行) | `true` | `5` | `20` | 门控较松,因此在短演示期间会触发真实兑换 |
| **关闭** | `false` | — | — | 没有自主兑换 |
> 为了判断,已部署的代理运行 **真实 / 纪律** 配置文件(`10` / `50`),因此每个自主主网兑换都反映了深思熟虑的、值得成本的决定 — 而不是频繁交易。
**端点:**
| 端点 | 描述 |
|----------|-------------|
| `GET /defi/quote` | 实时CSPR.trade主网兑换报价(只读,无钱包) |
| `GET /defi/markets` | 实时CSPR.trade交易对 |
| `GET\|POST /defi/swap` | 构建 + 签名 + (如果 `execute=true`)广播真实兑换;返回交易哈希 |
| `GET /defi/history` | 已执行的主网兑换的持久历史记录(重启后仍然存在) |
```bash
# 实时主网报价(免费,只读)
curl "https://agentcasper.soenic.com/defi/quote?token_in=CSPR&token_out=sCSPR&amount=10"
# 在主网上执行真正的非托管兑换(消耗代理自己的CSPR)
curl -X POST https://agentcasper.soenic.com/defi/swap \
-H "Content-Type: application/json" \
-d '{"token_in":"CSPR","token_out":"sCSPR","amount":"10","execute":true}'
```
仪表板还提供一个**兑换**面板(标头按钮),用于相同的流程,并具有真实主网确认步骤。
---
## 链上证明
所有活动都可以在 [Casper 测试网浏览器](https://testnet.cspr.live) 上验证。代理自主生成的交易示例:
| 操作 | 入口 | 示例部署哈希 |
|--------|-------------|---------------------|
| 智能合约(包) | — | [`486a161b…`](https://testnet.cspr.live/contract-package/486a161bf2d5d2b36b2cfda25557adf3c7b70ec1cda7cfb01dec0ba1545ac5ea) |
| 自主再平衡 | `rebalance` | [`f0352e2b…`](https://testnet.cspr.live/deploy/f0352e2b0d19a086b2b237494d23cfeb8377da3053d5c0cd074af53353428162) |
| RWA价格链上(黄金) | `update_rwa_price` | [`b9f33ec3…`](https://testnet.cspr.live/deploy/b9f33ec3e9e1091912796beaa98b95d1b85887fd9df692067c7767bf37150d4e) |
| RWA价格链上(国库) | `update_rwa_price` | [`0700586b…`](https://testnet.cspr.live/deploy/0700586b8e302123887f4f759fb2ac90156cb2f8daad6d8f9e09db2aaf7f730b) |
| x402微支付结算 | 原生转账 | [`ba8fb27e…`](https://testnet.cspr.live/deploy/ba8fb27e71acc2c0cba50a72a0bd3820028dc6ceb8791ac51b79b0614148f32d) |
| **x402 `exact` 结算** (促进者 `transfer_with_authorization`) | CEP-18 X402 | [`e297580f…`](https://testnet.cspr.live/transaction/e297580fc01b3bd4bfb011a592f129822b253041bf643ce16aed6c34f4443fdc) |
| **代理到代理的x402结算** (独立买家 → 提供者) | CEP-18 X402 | [`eb0e914c…`](https://testnet.cspr.live/transaction/eb0e914cdd902b177d95cd92a345cff3d7cdfbc33bffe8927d456d8c8a1f469e) |
| **租户保险库注册** (第二个钱包在**自己的保险库**上注册代理) | `register_agent` | [`1dc138a9…`](https://testnet.cspr.live/deploy/1dc138a911b8b62b4269d5e966a9f6b2e5e2a13651590751682ee2021c58c6ba) |
| **自主租户再平衡** (多租户服务,偏移门控) | `rebalance` | [`d7551fcb…`](https://testnet.cspr.live/deploy/d7551fcb6187175e19ca66d77219fc2c5431a317cb3d50d6faecf5c45bb072ff) |
以及 **CSPR.trade MCP上的真实DeFi** (可在 [cspr.live](https://cspr.live) 验证):
| 操作 | 网络 | 交易 |
|--------|---------|-------------|
| 非托管兑换(CSPR → sCSPR) | **主网** | [`f28a4051…`](https://cspr.live/transaction/f28a4051e17a67f4a6bd9951802cfb64a062b1daa01b59945b444fb25a052eb5) |
| **AI决策的自主兑换** (再平衡 → CSPR → sCSPR,无人为干预) | **主网** | [`2bafdb43…`](https://cspr.live/transaction/2bafdb43211c32d88d815873fc2bcee12d4c141dec8cc6e24399bea5c320164f) |
> `2bafdb43…` 兑换由代理自己的**再平衡**决策在实时周期触发(不是手动调用) — Claude决定,代理签名并广播真实主网兑换,其自己的密钥。代理账户还产生了130+个已处理的测试网交易。
---
## 技术栈
| 层 | 技术 |
|-------|-----------|
| 智能合约 | Rust + Odra 2.7.2 → WASM(Casper 2.x) |
| 后端 | Python 3.11 + FastAPI + httpx |
| AI | Anthropic Claude(claude-haiku-4-5) |
| 前端 | Next.js 14 + React 18 + TypeScript |
| UI | Tailwind CSS + Recharts + Lucide |
| 钱包 | Casper Wallet Extension + casper-js-sdk v5 |
| CI/CD | GitHub Actions(自动构建WASM) |
---
## 环境变量参考
复制 `backend/.env.example` 到 `backend/.env` 并填写所有值:
```env
# ── AI ──────────────────────────────────────────────────────────────────────
# 在 https://console.anthropic.com → API Keys 获取您的密钥
ANTHROPIC_API_KEY=sk-ant-api03-...
# ── Casper 网络 ────────────────────────────────────────────────────────
# 官方CSPR.cloud端点(https://www.casper.network/ai)
CASPER_NODE_URL=https://node.testnet.cspr.cloud/rpc
CSPR_CLOUD_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 在cspr.cloud注册
CSPR_CLOUD_BASE_URL=https://api.testnet.cspr.cloud
# ── 保险库 & 代理 ─────────────────────────────────────────────────────────
# 通过仪表板部署合约后填写
VAULT_CONTRACT_HASH=hash-xxxx...
# 可选的网络故障备用 - 后端在运行时从包链上解析**最新**
合约版本(存活升级)。
# 正常操作时留空;过时值永远不会误导调用。
VAULT_CONTRACT_VERSION_HASH=
AGENT_ACCOUNT_HASH=account-hash-xxxx...
AGENT_SECRET_KEY_PATH=./agent_secret_key.pem
# Railway / 云部署:将PEM内容直接粘贴此处
# (替换换行符为\n)
# AGENT_SECRET_KEY_CONTENT=-----BEGIN PRIVATE KEY-----\nxxxx\n-----END PRIVATE KEY-----
# ── 管理身份验证(可选网络故障备用备用备用备用备用备用备用
# AGENT_SECRET_KEY_CONTENT=-----BEGIN PRIVATE KEY-----\nxxxx\n-----END PRIVATE KEY-----
# ── 管理员身份验证(可选,推荐用于公共部署) ──────────────
# 共享密钥门控状态变更端点(/agent/pause,/agent/resume,
# /rebalance/manual,/admin/setup,/defi/switch,/deploy)。留空以保持开放;
# 设置一个长随机值以在每个特权调用上都需要X-Admin-Token标头。
# 将相同的值粘贴到仪表板的/admin API“管理员令牌”字段中以操作这些操作。
# 只读端点永远不会被门控。
ADMIN_TOKEN=
# ── 代理配置 ───────────────────────────────────────────────────
AGENT_POLL_INTERVAL_SECONDS=300 # 代理查看的频率(演示60,生产300)
MAX_REBALANCES_PER_DAY=5 # 每天允许的最大再平衡次数
# 链上发布经验证的RWA价格(PAXG,UST10Y)。
RWA_ONCHAIN_ENABLED=true # 设置为false以禁用链上RWA发布
RWA_POST_INTERVAL_SECONDS=3600 # 速率限制:最多每间隔发布一次
# ── x402微支付(可选) ──────────────────────────────────────────
# 官方CSPR.cloud的`exact`方案 — 促进者结算CEP-18
# transfer_with_authorization。金额以令牌基单位为单位(参见小数位)
# 而不是原生CSPR — 这里没有2.5 CSPR原生转账下限。
X402_ENABLED=false
X402_FACILITATOR_URL=https://x402-facilitator.cspr.cloud
# x402 payTo — Casper账户哈希地址('00' + 账户哈希),不是公钥。
# '01' + pubkey值使CEP-18 transfer_with_authorization在链上回滚。
# 留空则默认为代理自己的地址。
# X402_PAY_TO=00<recipient-account-hash>
X402_SETTLE_INTERVAL_SECONDS=3600 # 链结算速率限制
X402_SETTLE_ONCHAIN=true # 每周期促进者结算;false = 仅限证明
# CEP-18结算令牌:ASSET = 64十六进制合约包哈希暴露
# transfer_with_authorization;NAME / VERSION形成EIP-712域。
X402_ASSET=
X402_TOKEN_NAME=
X402_TOKEN_VERSION=1
X402_TOKEN_DECIMALS=6
X402_TOKEN_SYMBOL=
X402_PAYMENT_AMOUNT=1000000 # 消费者每请求金额(令牌基单位)
# 主网提供商定价 — 其他代理向此代理支付高级数据。
X402_DECISION_PRICE=5000000 # /x402/decision — 令牌基单位
X402_RWA_FEED_PRICE=2500000 # /x402/rwa-feed — 令牌基单位
# ── 真实DeFi — 代理在再平衡时自主兑换(CSPR.trade,主网) ─────────
# 当AI决定再平衡时,可选路由小额、限制兑换的非托管
# 兑换在Casper主网上进行。默认关闭(消耗代理自己的主网CSPR)。
DEFI_EXECUTE_ON_REBALANCE=false # true = 代理在再平衡时自主兑换
DEFI_SWAP_AMOUNT_CSPR=5 # 基准大小;按分配偏移缩放,CSPR_TRADE_MAX_AMOUNT_CSPR上限
DEFI_SWAP_TOKEN_IN=CSPR
DEFI_SWAP_TOKEN_OUT=sCSPR
DEFI_MAX_SWAPS_PER_DAY=1 # 每日安全上限(演示中提高以重复演示)
DEFI_MIN_DRIFT_PCT=10 # 最小分配偏移(pp)以进行兑换 — 防频繁交易
DEFI_MIN_NET_GAIN_BPS=50 # 最小预估年化收益率提升(bps)以证明gas+影响
CSPR_TRADE_MAX_AMOUNT_CSPR=25 # 每笔兑换输入大小的硬上限
CSPR_TRADE_MAX_PRICE_IMPACT_PCT=2.0 # 如果兑换的价格影响超过此值,则中止
# 演示提示:要使自主兑换在短演示期间触发,请设置
# DEFI_EXECUTE_ON_REBALANCE=true, DEFI_MIN_DRIFT_PCT=5, DEFI_MIN_NET_GAIN_BPS=0,
# AGENT_POLL_INTERVAL_SECONDS=60 — 并确保代理钱包持有主网CSPR
# 以及ANTHROPIC_API_KEY有效(仅当AI决定再平衡时才会触发兑换)。
# ── 真实收益 — 原始质押(可选,代理决定) ────────────────────
# 启用时,在再平衡时,代理将部分保险库的CSPR
# 委托给Casper验证器(原生质押,env().delegate),由AI的
# 保守倾向决定,并限制流动性缓冲始终可即时提取。
# 默认关闭 — 无强制切换;代理决定何时/如何质押多少。
STAKING_ENABLED=false
VALIDATOR_PUBLIC_KEY= # 测试网验证器委托给(cspr.live/validators)
STAKE_AMOUNT_CSPR=500 # 每笔质押操作(必须符合Casper的最小委托量 ~500)
STAKE_BUFFER_CSPR=200 # 始终保留用于即时取款的流动性CSPR
STAKE_MAX_PER_DAY=2 # 每日质押操作上限
# ── 代理自我资金 + gas感知 ─────────────────────────────────────
# 代理从保险库的累积费用储备中扫描到其自己的gas账户
# (collect_fees)并在低时补充。
# 每个链上操作都会针对代理的实际余额进行预检查
# 以避免执行无法支付的操作。
GAS_RESERVE_CSPR=20 # 代理保持的最小运行资金
GAS_PER_ACTION_CSPR=6 # 预估每个链上操作的gas(用于数学计算)
# ── 多租户服务 ─────────────────────────────────────────────────
# 每个周期将AI目标应用于每个注册的保险库(偏移门控,每日上限)。
MULTI_TENANT_ENABLED=true
TENANT_MIN_DRIFT_PCT=10
TENANT_MAX_REBALANCES_PER_DAY=2
# 用于广播CSPR.trade兑换部署的主网节点(裸域名 = 主网)。
CSPR_MAINNET_NODE_URL=https://node.cspr.cloud/rpc
# ── 应用 ───────────────────────────────────────────────────────────────────
APP_HOST=0.0.0.0
APP_PORT=8000
DEBUG=false
```
### 前置条件
- 一个VPS,至少2GB内存(任何提供商:Hostinger、DigitalOcean、Hetzner等)
- 在VPS上安装Docker
- 在VPS上安装[Coolify](https://coolify.io/docs/installation)
- 一个域名指向你的VPS IP地址(例如:`agentcasper.yourdomain.com`用于后端,`casper.yourdomain.com`用于前端)
### 步骤 1 — 部署后端
1. 在Coolify中 → **新建应用** → **公共仓库**
2. 填写:
| 字段 | 值 |
|---|---|
| **仓库URL** | `https://github.com/kataenda/agent-casper` |
| **分支** | `master` |
| **构建包** | `Dockerfile` |
| **基准目录** | `/backend` |
| **暴露端口** | `8000` |
| **域名** | `https://agentcasper.yourdomain.com` |
3. 在**环境变量**中,添加:
| 变量 | 值 |
|---|---|
| `ANTHROPIC_API_KEY` | `sk-ant-api03-...` |
| `CASPER_NODE_URL` | `https://node.testnet.cspr.cloud/rpc` |
| `CSPR_CLOUD_API_KEY` | 你的CSPR.cloud API密钥 |
| `CSPR_CLOUD_BASE_URL` | `https://api.testnet.cspr.cloud` |
| `VAULT_CONTRACT_HASH` | `hash-xxxx...` |
| `VAULT_CONTRACT_VERSION_HASH` | 留空 — 从链上包中实时解析(仅备用) |
| `AGENT_ACCOUNT_HASH` | `account-hash-xxxx...` |
| `AGENT_SECRET_KEY_CONTENT` | PEM内容,换行符为`\n` |
| `MAX_REBALANCES_PER_DAY` | `5` |
| `AGENT_POLL_INTERVAL_SECONDS` | `300`(演示模式使用`60`) |
| `ADMIN_TOKEN` | 长随机密钥 — 控制暂停/恢复/再平衡/交换/部署/设置(留空以保持开放) |
| `PORT` | `8000` |
| `DEBUG` | `false` |
> **管理员身份验证:** 设置`ADMIN_TOKEN`为长随机值,以阻止匿名访客从公共仪表盘触发特权操作。重新部署后,将相同的值粘贴到仪表盘的**API页面 → 管理令牌**字段(仅在浏览器中保存)以操作这些操作。永远不要提交真实值 — 只需在Coolify环境中保存。
> **提示:`AGENT_SECRET_KEY_CONTENT`:**
> PowerShell:`(Get-Content agent_secret_key.pem -Raw) -replace "\`r\`n","\n" -replace "\`n","\n"`
4. 点击**部署** — Coolify构建Docker镜像并使用Let's Encrypt启动容器,启用HTTPS。
### 步骤 2 — 部署前端
1. 在Coolify中 → **新建应用** → **公共仓库**
2. 填写:
| 字段 | 值 |
|---|---|
| **仓库URL** | `https://github.com/kataenda/agent-casper` |
| **分支** | `master` |
| **构建包** | `Nixpacks` |
| **基准目录** | `/frontend` |
| **暴露端口** | `3000` |
| **域名** | `https://casper.yourdomain.com` |
3. 在**环境变量**中,添加:
| 变量 | 值 |
|---|---|
| `NEXT_PUBLIC_API_URL` | `https://agentcasper.yourdomain.com` |
| `NEXT_PUBLIC_WS_URL` | `wss://agentcasper.yourdomain.com/ws` |
| `NEXT_PUBLIC_VAULT_PACKAGE_HASH` | `hash-486a161b...`(启用实时支付存款) |
| `NEXT_PUBLIC_CSPRCLICK_APP_ID` | CSPR.click应用ID(来自console.cspr.build,可选) |
4. 点击**部署**。
### 步骤 3 — DNS设置
添加两个A记录到你的DNS面板:
| 名称 | 类型 | 值 |
|---|---|---|
| `agentcasper` | A | `<你的VPS IP地址>` |
| `casper` | A | `<你的VPS IP地址>` |
Coolify(通过Traefik)将在DNS传播后自动获取Let's Encrypt SSL证书。
### 验证部署
```bash
# 后端健康检查
curl https://agentcasper.yourdomain.com/
# 预期响应:
# {"name": "Agent Casper", "version": "1.0.0", "status": "running"}
```
检查Coolify → 后端应用 → **日志**以确认:
```
INFO agent.yield_agent — YieldAgent启动 — 每300秒轮询一次
INFO agent.yield_agent — [区块8,xxx,xxx] 决策:REBALANCE | 置信度:0.82
```
---
## 使用仪表盘
### 仪表盘布局
```
┌──────────────────┬──────────────────┬──────────────────┬──────────────────┐
│ 投资组合价值 │ 再平衡 │ AI决策 │ 区块高度 │
│ 1,332 CSPR │ 0 │ HOLD │ #8,102,213 │
│ 策略:平衡. │ 0次循环 │ 置信度:82% │ Casper 测试网 │
└──────────────────┴──────────────────┴──────────────────┴──────────────────┘
┌────────────────┬────────────────────────┬────────────────┬────────────────┐
│ RWA预言机 │ 投资组合轨迹 │ 链上证明│ 收益智商. │
│ PAXG(黄金) │ 投资组合价值 │ 合约实时 │ 保守: │
│ UST10Y(债券) │ 时间图表 │ 部署哈希 │ 9.53%年化收益率 │
│ WTI(石油) │ │ 最新交易 │ 进取型: │
├────────────────┤ │ │ │
│ 分配矩阵 │ │ │ │
│ 甜甜圈图表 │ │ │ │
└────────────────┴────────────────────────┴────────────────┴────────────────┘
┌────────────────┬────────────────────────────────────────┬────────────────┐
│ 保险库操作 │ 神经决策日志 │ 问AI代理 │
│ 存款CSPR │ 完整AI决策历史 │ 聊天Claude AI │
└────────────────┴────────────────────────────────────────┴────────────────┘
```
### 首次设置流程
#### 步骤 1 — 准备你的钱包
1. 在浏览器中安装[Casper钱包](https://www.casperwallet.io/)
2. 创建或导入Casper账户
3. 从[水龙头](https://testnet.cspr.live/tools/faucet)获取测试网CSPR(最低约250 CSPR)
#### 步骤 2 — 打开仪表盘
前往:`https://casper.soenic.com`
点击右上角的**钱包按钮** → **连接Casper钱包**
#### 步骤 3 — 部署智能合约
> 如果合约已经部署(`.env`中已设置哈希值),跳过此步骤
1. 在保险库操作面板中点击**"部署合约"**
2. Casper钱包将要求确认(约230 CSPR gas)
3. 等待确认(约2分钟) — 合约哈希值将出现在链上证明面板
#### 步骤 4 — 注册代理
1. 点击**"注册代理"**
2. 在Casper钱包中确认
3. 等待状态在链上证明面板显示`AGENT REGISTERED`
这授予AI代理在保险库代表执行再平衡的权限。
#### 步骤 5 — 存款CSPR
1. 在**保险库操作**面板中,输入CSPR金额
2. 点击**"存款到保险库"**
3. 在Casper钱包中确认
4. TVL(总锁定价值)将在投资组合价值卡中更新
#### 步骤 6 — 监控代理
一旦存款CSPR,代理将自动激活。监控:
- **AI决策**卡:HOLD / REBALANCE / ALERT
- **神经决策日志**:Claude AI在每个轮询周期(60秒演示/300秒生产)的推理
- **投资组合轨迹**:时间价值图表
- **分配矩阵**:实时甜甜圈图表,显示CONS/BALA/AGGR分割
---
## 代理控制按钮
| 按钮 | 操作 |
|--------|--------|
| **启动代理** | 启动代理循环(按配置间隔轮询 — 60秒演示/300秒生产) |
| **停止代理** | 暂停代理循环 |
| **API** | 打开Swagger UI以查看后端API文档 |
---
## 聊天命令(询问AI代理)
直接在右下角的**"询问投资组合..."**框中输入:
| 命令 | 示例 | 效果 |
|---------|---------|--------|
| **启动** | `启动`、`恢复`、`运行` | 启动代理循环 |
| **停止** | `暂停`、`停止` | 停止代理循环 |
| **状态** | `状态`、`报告` | 显示完整代理状态 |
| **再平衡** | `再平衡`、`再平衡 保守` | 强制立即再平衡 |
| **免费问答** | `TVL是什么?`、`最佳策略?` | 由Claude AI回答 |
**示例`状态`输出:**
```
代理状态:
• 运行中:是
• 今日再平衡次数:2/5
• 总循环次数:24
• 区块:#8,102,213
• TVL:1,332.00 CSPR
• 分配:CON=40% BAL=45% AGG=15%
• 策略:平衡
• 最新决策:HOLD(88%置信度)
```
**示例`再平衡 保守`输出:**
```
再平衡执行!
• 策略:保守(CON=70% BAL=20% AGG=10%)
• 交易哈希:7563c5813420aa0a...
• 查看:https://testnet.cspr.live/deploy/7563c581...
```
---
## 理解AI决策
### 三种决策类型
| 决策 | 含义 | 何时发生 |
|----------|---------|-----------------|
| **HOLD** | 保持当前分配 | 投资组合已优化,每日配额已用完,或市场条件稳定 |
| **REBALANCE** | 改变投资组合分配 | AI找到更好的风险调整分配 |
| **ALERT** | 检测到异常情况 | APY激增>50%,TVL下降>30%,或风险激增 |
### 三种分配策略
| 策略 | CONS | BALA | AGGR | 风险 | 适合 |
|----------|------|------|------|------|----------|
| **保守** | 70% | 20% | 10% | 低 | 不确定市场,黄金上涨 |
| **平衡** | 40% | 45% | 15% | 中等 | 正常条件 |
| **进取** | 10% | 20% | 70% | 高 | 非常高的DeFi收益 |
### RWA信号及其对AI决策的影响
| 信号 | 对AI的影响 |
|--------|-------------|
| PAXG(黄金)上涨>1% | 有利于保守分配(避险) |
| UST10Y(国债)>5% | 需要DeFi收益率溢价≥3×国债利率 |
| UST10Y<3.5% | DeFi更具吸引力 → 平衡/进取可接受 |
| WTI(石油)激增 | 提高进取型仓位的风险阈值 |
---
## 项目结构
```
agent-casper/
├── contracts/
│ ├── src/yield_vault.rs # YieldVault Odra合约 — 可升级 + 可支付(真实托管)
│ ├── Cargo.toml # Odra 2.7.2依赖
│ ├── Dockerfile.build # WASM编译
│ ├── wasm/yield_vault.wasm # 由CI构建
│ └── x402/Cep18X402.wasm # CEP-18 X402代币(make-software/casper-x402)
├── backend/
│ ├── main.py # FastAPI + WebSocket + 代理生命周期 + 管理员和钱包签名认证
│ ├── .env.example # 配置模板(包括ADMIN_TOKEN)
│ ├── yield_vault.wasm # 保险库wasm提供给浏览器部署流程
│ ├── proxy_caller.wasm # Odra代理调用者 — 附加真实CSPR到 payable deposit()
│ ├── data/ # 运行时状态(保险库注册,循环历史) — 运行时创建
│ ├── agent/
│ │ ├── yield_agent.py # 自主循环 — 服务于所有注册的保险库(多租户)
│ │ └── decision_engine.py # Claude AI + MCP工具
│ └── casper/
│ ├── client.py # CSPR.cloud REST客户端(TTL缓存,分页读取)
│ ├── deployer.py # 交易签名(pycspr),链上版本解析
│ ├── rwa_oracle.py # PAXG / UST10Y / WTI价格馈送
│ ├── mcp_server.py # MCP服务器 — Claude区块链工具
│ ├── x402.py # x402微支付处理(消费者+提供者)
│ ├── eip712.py # EIP-712类型数据摘要(casper-eip-712端口)
│ ├── cspr_trade.py # CSPR.trade MCP — 真实非托管DeFi交换
│ ├── swap_log.py # 持久化链上交换历史
│ ├── x402_settle_log.py # 持久化x402结算历史
│ ├── vault_registry.py # 多租户保险库注册(基于证据的注册)
│ ├── trust_engine.py # 确定性AI信任分数来自真实链上数据
│ └── trust_state.py # 链上信任分数锚点(转移ID编码)
├── frontend/src/
│ ├── app/
│ │ ├── page.tsx # 主网络仪表盘(协议AUM标题,轨迹)
│ │ ├── vault/page.tsx # 我的保险库 — AUM,每钱包资产(流动/质押),gas运行,质押&交换历史
│ │ ├── agent/page.tsx # 代理注册 — 已注册的保险库 + AI信任引擎
│ │ ├── deploy/page.tsx # 自服务保险库部署/升级/注册(每钱包)
│ │ ├── swap/page.tsx # DeFi交换 + 实时交换历史(主网)
│ │ ├── x402/page.tsx # x402服务目录 + 代理到代理证明
│ │ └── api/page.tsx # API参考 +实时“试试”(GET + POST)
│ ├── lib/
│ │ ├── adminAuth.ts # │ ├── useWebSocket.ts # 实时WebSocket馈送
│ └── components/ # 部署面板,保险库控件,决策日志,聊天框,代理控件等。
│ └── … # 决策日志,聊天框,代理控件等。
├── scripts/
│ ├── deploy_x402_token.py # 部署CEP-18 X402代币(代理持有代币供应)
│ ├── fund_buyer.py # 为买方代理提供X402代币资金
│ ├── buyer_pays_agent.py # 真实的代理到代理链上结算
│ ├── x402_settle_real.py # 自我结算,通过CSPR.cloud促进者
│ ├── pay_live_endpoint.py # 完整的x402流程针对实时生产API
│ ├── x402_verify_proof.py # 促进者/验证一致性证明
│ └── deploy_testnet.{sh,ps1} # 保险库合约部署助手
├── demo_x402.py # 消费者端x402演示(代理自己的流程)
├── demo_buyer_agent.py # 独立x402买方代理(自己的ed25519密钥)
├── gen_buyer_key.py # 新的ed25519买方身份(钱包创建)
├── .claude/skills/
│ └── csprclick-skill/ # 官方CSPR.click AI 代理技能(SKILL.md + 参考)
└── .github/workflows/
└── deploy-contract.yml # CI:自动构建WASM(镜像到后端/)
```
---
## 故障排除
### 代理总是显示HOLD
**可能原因:**
1. **`ANTHROPIC_API_KEY` 未配置** — 检查Coolify后端日志。如果您看到 `⚠ ANTHROPIC_API_KEY 未设置`,请将密钥添加到Coolify环境变量并重新部署。
2. **投资组合已达到最佳配置** — 如果推理说 `"投资组合已达到最佳40/45/15配置"`,代理正确地保持不变,因为不需要再平衡。
3. **每日再平衡配额已用完** — 如果推理说 `"每日再平衡配额已用完 (5/5)"`,请等待UTC凌晨计数器重置。您可以通过 `MAX_REBALANCES_PER_DAY` 增加限制。
4. **市场条件未达到阈值** — AI仅在条件要求更改时才进行再平衡。当当前配置已优化时,HOLD是正确的。
### 后端无法连接到Anthropic API
```
WARNING agent.decision_engine — ANTHROPIC_API_KEY 未配置
```
→ 设置 `ANTHROPIC_API_KEY=sk-ant-...` 在Coolify → 环境变量 → 重新部署。
```
WARNING agent.decision_engine — Anthropic意外错误:连接错误
```
→ 验证VPS上的443端口是否打开(`ufw status`)。与一些PaaS平台不同,VPS环境具有不受限制的出站访问权限。
### 前端无法连接到后端
- 确保Coolify前端环境变量中的 `NEXT_PUBLIC_API_URL` 和 `NEXT_PUBLIC_WS_URL` 是正确的
- 验证后端和前端的SSL证书是否有效(浏览器中的绿色锁标志)
- 默认情况下,CORS允许所有来源(`*`)
### 交易失败(TX_FAILED)
- 确保代理账户有足够的CSPR用于gas(~5 CSPR/交易)
- 验证 `AGENT_SECRET_KEY_PATH` 或 `AGENT_SECRET_KEY_CONTENT` 是否正确
- 验证 `VAULT_CONTRACT_HASH` 是否与已部署的合约匹配
### 本地开发端口占用
```bash
# 检查哪个进程正在使用端口8000
netstat -ano | findstr :8000 # Windows
lsof -i :8000 # Linux/Mac
```
---
## 重要操作说明
- 代理需要**代理账户中的CSPR余额**来支付再平衡交易的gas(~5 CSPR每次)
- 最大**每天5次再平衡**(可通过 `MAX_REBALANCES_PER_DAY` 配置)
- 5次再平衡后,代理将继续监控,但不会执行,直到配额在UTC凌晨重置
- 保险库/再平衡/RWA交易在 [testnet.cspr.live](https://testnet.cspr.live) 上可见;CSPR.trade DeFi交换在 **mainnet** 上 [cspr.live](https://cspr.live) — 代理账户的自有CSPR用于执行 `/defi/swap`
- **YieldVault合约** 在Casper **测试网** 上。**CSPR.trade DeFi交换** 在 **主网** 上运行,代理账户的自有CSPR用于执行(DEX仅限主网)
---
## 商业模式
Agent Casper 设计为**自可持续**代理,而非一次性演示。收入来自两大来源:
| 来源 | 状态 | 工作原理 |
|--------|--------|--------------|
| **x402 服务费** | ✅ **上线** | 代理**出售**其智能:其他代理按每条AI再平衡建议支付 **5 CSPR** (`/x402/decision`)和每条链上验证的RWA馈送支付 **2.5 CSPR** (`/x402/rwa-feed`)。支付结算到代理自己的主网账户 — 机器对机器的收入,可随采用规模扩大而扩展。 |
| **保险库管理费** | ✅ **合约中** | YieldVault对存款收取所有者可配置的**管理费**(`fee_bps`,默认为1%,上限10%),记为`FeeCollected`事件。合约中实现 [`yield_vault.rs`](contracts/src/yield_vault.rs) — 在部署更新的WASM后,在实时测试网实例上激活。 |
| **保险库绩效费** | 🔄 **第二阶段** | 当保险库将**存款**资本路由到实时收益头寸时,它额外收取**绩效费**(收益的一定百分比) — 自动化投资组合管理器的标准模式。 |
这种双边设计意味着代理既可以在当前的x402代理经济中**赚取**收入,又可以在资产管理规模**增长时**作为投资组合经理赚取收入。运营成本(gas,Claude推理,RWA数据)按周期覆盖,因此利润率随使用量增长,而不是需要持续外部资金。
---
## 路线图
### 第一阶段 — Buildathon MVP ✅
- **YieldVault 与真实托管** 在 Casper 测试网 — 可支付的 `deposit()` 将 CSPR 存入合约钱包 ([`86fd83a6…`](https://testnet.cspr.live/deploy/86fd83a683dccb7484c063accb0e90e0e3ae859daddf270573453bce365bbaee));**可原地升级** 且状态保持(已证明 v1→v2 在链上);
- **多租户保险库服务** — 任何钱包都可以自助部署/拥有其保险库,在其上注册代理 ([`1dc138a9…`](https://testnet.cspr.live/deploy/1dc138a911b8b62b4269d5e966a9f6b2e5e2a13651590751682ee2021c58c6ba)),并且代理 **自动为每个已注册的保险库提供服务** (租户重新平衡 [`d7551fcb…`](https://testnet.cspr.live/deploy/d7551fcb6187175e19ca66d77219fc2c5431a317cb3d50d6faecf5c45bb072ff)) — 跨 2 个独立拥有的保险库的实时资产管理规模;
- 自主 AI 代理(Claude),通过 MCP 工具具有可配置的决策循环(60 秒演示 / 300–900 秒生产);
- RWA 预言机链上发布(PAXG, UST10Y);
- x402 微支付 — 双向(消费者 **和** 提供商,主网);
- **通过 CSPR.trade MCP 在 Casper 主网上进行真实的非托管 DeFi 交换**;
- **使用钱包登录** 管理员身份验证(所有者已在链上验证)+ AI 信任引擎,具有链上分数锚定;
- 官方 **CSPR.click AI 代理技能** 安装在存储库中;具有 WebSocket 的实时网络仪表板;
### 第二阶段 — DeFi 集成(2026 年第三季度)
- 将托管的保险库资本引导到真正的 Casper DeFi 仓位(CSPR.trade LP,验证者质押),使其 **赚取收益**;
- 来自链上来源的实时收益率 feeds;
- 每个保险库的策略配置文件 — 每个租户设置其自己的风险授权(多保险库 *服务* 已在第一阶段交付);
- 移动通知(Telegram 机器人)
### 第三阶段 — 生产启动和多租户 SaaS(2026 年第四季度)
- Casper 主网部署;
- **完全的租户隔离** — 多租户 *服务* 已经上线(一个代理身份自动管理每个已注册的保险库,已在链上证明)。产品化完成了隔离:每个用户/DAO 获取其 **自己的非托管代理密钥**,保存在 KMS / 阈值签名设置中(绝不共享 PEM),数据库中的租户范围状态(每个记录都有 `tenant_id`),每个租户的仪表板,以及每个租户操作上的钱包签名身份验证(所有者流程今天交付)。单个代理核心仍然是执行单位 — 我们为每个租户复制它,而不是重新架构它;
- 用于机构访问的 x402 基于费用的 API(CEP-18 稳定币微支付);
- 策略参数的 DAO 治理;
- 经过审计的智能合约;
---
## 社区与社交媒体
关注该项目并联系我们:
| 频道 | 链接 |
|---|---|
| X / Twitter | [@kata_enda](https://x.com/kata_enda) |
| Telegram | [@soesoe14](https://t.me/soesoe14) |
| Discord | `mas_end_47419` |
| GitHub | [kataenda/agent-casper](https://github.com/kataenda) |
| 社区投票 | [在 CSPR.fans 上投票](https://cspr.fans) |
如果您觉得这个项目有帮助,请在 [CSPR.fans](https://cspr.fans) 上 **为 Agent Casper AI 投票**,以帮助我们进入 Buildathon 的最后一轮!
---
## 许可证
MIT 许可证 — 版权所有 (c) 2026 Soesoe
---
为 **Casper Agentic AI Buildathon 2026** 构建
技术栈:Claude AI · CSPR.cloud · Odra 2.7.2 · casper-js-sdk v5 · FastAPI · Next.js
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器