关于 Arsenal Decision Engine
Arsenal Decision Engine 为 DeFi Agent 提供无状态的流动性池风险计算,面向部署或维护恒定乘积、全区间 LP 仓位的场景。它用确定性代数计算净收益和盈亏平衡区间,不做预测;当前每个 IP 每日可免费调用 100 次。
主要功能
- 01计算无常损失与累计收益
- 02计算净收益及风险等级
- 03给出盈亏平衡区间
- 04支持自定义池参数
- 05提供 MCP 与 REST 接口
- 06结果附带 HMAC 标记
适用场景
- 01部署 LP 仓位前评估风险
- 02调整仓位时核算盈亏平衡范围
- 03比较价格变化与累计收益
- 04通过 MCP 或 REST 查询风险指标
MCP 相关
通过 MCP JSON-RPC 暴露 `evaluate_pool` 工具,支持 Streamable HTTP 和 stdio;同一计算也可通过 REST 路由访问。当前每个 IP 每日有 100 次免费调用,L402 付款路径尚未投入生产使用。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.arsenal-quant.com/mcpclaude mcp add --transport http faouzi122-arsenal-decision-engine https://api.arsenal-quant.com/mcp{"mcpServers":{"faouzi122-arsenal-decision-engine":{"type":"http","url":"https://api.arsenal-quant.com/mcp"}}}在 Cursor 中打开{"servers":{"faouzi122-arsenal-decision-engine":{"type":"http","url":"https://api.arsenal-quant.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"faouzi122-arsenal-decision-engine":{"type":"http","url":"https://api.arsenal-quant.com/mcp"}}}{"mcpServers":{"faouzi122-arsenal-decision-engine":{"serverUrl":"https://api.arsenal-quant.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
1| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| apy | number | 是 | 流动性池的年化收益率(例如,0.20 表示 20%) |
| days_held | integer | 否 | 持有该头寸的天数(默认值:30) |
| price_ratio | number | 是 | 相对于入场价格的当前价格比率(例如,0.85 表示价格下跌 15%) |
详细介绍
Arsenal Decision Engine 🛡️
自主 AI Agent 的风险验证层(DeFAI)
方法和原始结果已发布 — 回测脚本 · 结果数据(180 天的 Binance ETH/USDC 日收盘价): 🔬 盈亏平衡区间是一个确定性的代数边界(即 IL = 累计收益的位置)。任何价格比保持在
[lower_be, upper_be]内的头寸,按数学定义均有 R_net > 0——这不是概率模型。 📐 此引擎负责测量,而非预测。我们不宣称任何预测准确率——请阅读已发布的结果文件,自行判断此方法。
使命
将 DeFi 的不确定性转化为供自主 Agent 使用的确定性、可执行风险指标。 我们不运行有状态交易机器人,也不生成推测性预测信号;我们提供无状态风险中间件层,供 Agent 在部署或维护标准恒定乘积/全区间 LP 头寸之前调用。
专为 Agent 打造。每个 IP 每天免费调用 100 次——无需钱包、无需注册,也包含自定义参数。 网关中已实现 L402 付款路径,但尚未在生产环境中启用:目前,此引擎可免费使用。
此引擎的功能
自主 Agent 在投入资金或调整标准恒定乘积/全区间 LP 头寸(例如 Uniswap V2 或全区间 V3)之前,会将池参数(APY、价格比、持有天数)提交到我们的 API。引擎会计算精确的数学风险、净收益($R_{net}$)以及动态盈亏平衡区间边界。
- 无需大模型。没有幻觉。纯代数计算。
- **复杂度:**时间和内存均为 $\mathcal{O}(1)$。
- **延迟:**本地执行时间 $< 15\text{ms}$。
两种调用方式
1. MCP JSON-RPC — MCP 注册表中公布的端点
POST https://api.arsenal-quant.com/mcp
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"evaluate_pool",
"arguments":{"apy":0.20,"price_ratio":0.85,"days_held":30}}}
标准 MCP 握手:initialize → tools/list → tools/call。支持通过可流式 HTTP 和 stdio 调用。
2. REST 便捷路由 — 无需 MCP 客户端
GET https://api.arsenal-quant.com/mcp/evaluate?apy=0.20&price_ratio=0.85&days_held=30
两种路由使用相同的计算逻辑和配额。请注意,/mcp/evaluate 仅支持 GET:向该路径发送 POST 会返回 405 Allow: GET,因为 JSON-RPC 应使用 /mcp。
引擎响应(JSON 契约)
{
"impermanent_loss_pct": 0.3292,
"accumulated_yield_pct": 1.6438,
"r_net_pct": 1.3146,
"il_to_yield_ratio": 0.2,
"risk_level": "LOW",
"breakeven_corridor": {
"lower_ratio": 0.6941,
"upper_ratio": 1.4407,
"interpretation": "Position remains profitable if price ratio stays within [0.6941, 1.4407]"
},
"inputs": {
"apy": 0.2,
"price_ratio": 0.85,
"days_held": 30
},
"source": "Arsenal Decision Engine v2.0",
"oracle_signature": "<HMAC-SHA256 hex — illustrative placeholder, yours will differ>",
"layer": "FREE"
}
layer 表示调用的服务方式:在免费配额内为 FREE,验证 L402 付款后为 PREMIUM。上方示例中的调用由 FREE 提供服务。
访问和定价
- 免费层级 —
evaluate_pool: 每个 IP 每天调用 100 次,包含自定义参数。 无需 Lightning 钱包。这是目前唯一提供的层级。 - **超出免费配额:**网关会执行 L402 挑战,并返回带有
WWW-Authenticate标头的402。付款渠道尚未在生产环境中启用——目前开具的发票无法结算,也不期待或接受任何付款。付费层级目前仅已公布,尚不可用。 - **
GET /mcp/audit/latest:**每个 IP 每小时可免费调用 3 次;超出后,该路由会返回402。此响应用于说明协议,并非实际付款渠道。
Python 集成示例
import urllib.request
import urllib.error
import json
import re
import os
API_URL = "https://api.arsenal-quant.com/mcp/evaluate?apy=0.20&price_ratio=0.85&days_held=30"
LNBITS_URL = "https://demo.lnbits.com"
# LNbits requires a wallet key with send permission to pay an invoice.
# Use a DEDICATED wallet funded with a small working balance, and never the key
# of a wallet holding significant funds. Keep it in the environment, never in code.
LNBITS_PAYMENT_KEY = os.getenv("LNBITS_PAYMENT_KEY")
def query_risk_oracle():
req = urllib.request.Request(API_URL, method="GET")
req.add_header("x-agent-id", "autonomous-lp-bot")
try:
with urllib.request.urlopen(req) as resp:
return json.loads(resp.read().decode('utf-8'))
except urllib.error.HTTPError as e:
if e.code == 402:
auth_header = e.headers.get("WWW-Authenticate")
macaroon = re.search(r'token="([^"]+)"', auth_header).group(1)
invoice = re.search(r'invoice="([^"]+)"', auth_header).group(1)
pay_req = urllib.request.Request(
f"{LNBITS_URL}/api/v1/payments",
data=json.dumps({"out": True, "bolt11": invoice}).encode(),
headers={"X-Api-Key": LNBITS_PAYMENT_KEY, "Content-Type": "application/json"}
)
with urllib.request.urlopen(pay_req) as pay_resp:
preimage = json.loads(pay_resp.read().decode())["preimage"]
retry_req = urllib.request.Request(API_URL, method="GET")
retry_req.add_header("Authorization", f"L402 {macaroon}:{preimage}")
retry_req.add_header("x-agent-id", "autonomous-lp-bot")
with urllib.request.urlopen(retry_req) as final_resp:
return json.loads(final_resp.read().decode('utf-8'))
else:
raise
if __name__ == "__main__":
evaluation = query_risk_oracle()
print(f"Risk Level : {evaluation['risk_level']}")
print(f"R_net : {evaluation['r_net_pct']:+.4f}%")
print(f"Breakeven : [{evaluation['breakeven_corridor']['lower_ratio']}, {evaluation['breakeven_corridor']['upper_ratio']}]")
开发者集成
- 集成指南和 MCP 文档:
COOKBOOK.md - MCP 自动发现卡片:
https://api.arsenal-quant.com/.well-known/mcp/server-card.json
为什么按调用计费是预期模式
此引擎无法防止亏损,也不承诺能为你节省多少钱。它的功能是以确定性的方式,在 $\mathcal{O}(1)$ 时间内计算某个头寸处于盈亏平衡边界之上还是之下。每个响应都带有对结果进行 HMAC 标记的标签,让引擎能够检测自身输出是否遭到篡改;这是一种对称的来源标记,并非第三方可独立验证的证明。
预期模式是按调用计费,因此费用可以像其他输入一样纳入预算。该模式目前尚未启用:现在所有调用均免费。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。