RIB · English Edition

IntentVM

RIB(中文) · RIB简单设计 · Intent设计1.0

对,你这句是关键提醒:

这门语言不是给人类黑客写 DeFi 合约的,而是给 Agent 自己写 / 配置 / 测试 / 执行用的。

所以我们要从 “Agent DX(Developer Experience)” 重新简化一遍。

我给你一个非常干净的版本,分四层:

1)内核语言(RIL-core):小到离谱,只管 Transfer

2)策略层(RIL-strategy):Agent 用来“搭积木”的模板

3)配置层(RIL-config):Agent 自己调参数 / A/B Test /上线

4)测试执行环境(RIL-lab):Agent 自己沙盒跑、验证再上链

你以后可以直接说:

“我们的 Intent-VM 支持 Agent 自己写 RIL、自己仿真、自己部署。”

一、RIL-core:极简“Agent 汇编”——让 Agent 写得起、跑得动

这是最底的那层,给 I3 / VM 用的,且完全可被 Agent 生成。

1. 只保留三个最小概念

2. 内核语言的形态(你可以当成一种 JSON / IR)

内核其实长这样(逻辑树 + Effect):

{

"agent": "DCAExecutor",

"on_intent": {

"input_type": "DCATask",

"logic": [

// 纯计算步骤(VM 按顺序执行)

{"let": "amount_per_step", "expr": "task.total / task.steps"},

{"let": "target", "expr": "task.asset_out"},

// 产生 Transfer(唯一副作用)

{

"emit_transfer": {

"from": "task.user",

"to": "pool",

"asset": "asset_in",

"amount": "amount_per_step"

}

},

{

"emit_transfer": {

"from": "pool",

"to": "task.user",

"asset": "asset_out",

"amount": "quote(task.asset_in, target, amount_per_step)"

}

}

]

}

}

这一层是 机器可生成 / 可分析 / 可验证 的 IR,

Agent 完全可以用自己 LLM / 规则引擎生成这种树结构。

RIL-core 的特点:

二、RIL-strategy:给 Agent 用的“Rust 风味脚本”——可读可改

这才是你刚说的“要适合 Agent 自己写代码”的那层:

是 RIL-core 之上的“语法糖层”(人/Agent都能看懂)。

1. 语言长什么样?(极简 Rust 样式)

比方说,一个做市 Agent:

agent MM {

state {

spread: f64,

inventory_limit: Amount,

}

fn on_intent(order: SwapIntent) -> Effect {

let price = fair_price(order.pair);

let my_price = price * (1.0 + self.spread);

if order.side == Buy {

if order.price >= my_price {

deal_buy(order, my_price)

} else {

Effect::empty()

}

} else {

// Sell 逻辑...

}

}

}

然后由编译器:RIL-strategy → RIL-core(那棵 JSON 逻辑树)

2. 为什么 Agent 能自己写 / 改这种代码?

fn on_intent(order: SwapIntent) -> Effect {

let price = fair_price(order.pair);

let my_price = price * (1.0 + CONFIG.spread);

if order.side == Buy && order.price >= my_price {

deal_buy(order, my_price)

} else {

Effect::empty()

}

}

你会发现这里已经引出下一层——CONFIG。

三、RIL-config:大部分 Agent 只需要改“策略参数”,不是改代码

给 Agent 自己写代码,也要考虑现实:

99% 的时候 Agent 只改“策略参数”,1% 才重写代码。

所以我们给它一个 配置层,用于:

1. 配置长什么样?

可以是非常简单的结构(YAML / JSON 均可):

agent: MM

version: v1.2.3

params:

spread: 0.002

inventory_limit: "10000 FLUX"

quote_source: "Oracle:UniswapV3"

risk_mode: "conservative"

在 RIL-strategy 的代码里,只要引用 CONFIG:

let my_price = price * (1.0 + CONFIG.spread);

2. Agent 自己“写代码”的现实场景

实际上是:

你这套就变成:

Agent 只改 RIL-config,大部分时候不碰 RIL-strategy;

少数高阶 Agent 才会用 LLM 生成新策略,再经测试后替换。

四、RIL-lab:Agent 自己测试 / 仿真 / 回放 的环境

你刚那句“适合 Agent 自己写、配置、测试、执行”,

“测试”这块非常关键:

不能让 Agent 直接在主网乱搞,

必须先在沙盒里自己跑一遍。

1. RIL-lab 的接口

我们为 Agent 提供一套“实验室 API”:

simulate(

code: RIL-strategy,

config: RIL-config,

market_data: PriceSeries,

initial_state: StateSnapshot,

steps: u64

) -> SimulationReport

Agent 的工作流变成:

  1. 生成一个新策略(或新配置)
  2. 调 simulate 在离线环境跑:
    • 给定历史行情
    • 假设的流动性 / 手续费
  3. 查看报告(收益 / 回撤 / 风险暴表)
  4. 如果通过自己设定的 Criteria:
    • 再发主网 Intent:DeployNewStrategy { code_hash, config }

你这就得到了一个关键叙事:

RIL 的“第一用户”不是人,是 Agent;

每个高阶 Agent 都内嵌一个“小研究员”,

会用 RIL-lab 在历史因果里回放自己。

五、整合成一个非常简洁的“语言基本设计”

你现在如果要用一句话概括,可以这样写:

RIL = 3 层:

RIL-core:逻辑树 + Transfer 汇编(给 VM 用)

RIL-strategy:Rust 风格策略脚本(给人/Agent看)

RIL-config:参数配置(给 Agent 调整和 A/B Test)

RIL-lab:仿真/回放环境(给 Agent 自测)。

对 Agent 来说:

六、你可以直接拿去说的“极简版 RIL 宣言”

RIL 不是给人写 DeFi 玩的语言,

是给 Agent 写自己行为策略、自己做仿真、自己部署的语言。

它只做一件事:

把 Intent 翻译成 Transfer 序列。

它有三层:

如果你愿意,下一步我可以做两件非常具体的事:

  1. 写一个 完整的“RIL-strategy + config + core IR”三件套例子(比如一个 Agentic 预测市场做市策略),让你一眼就能给团队说清楚。
  2. 帮你把这套设计翻译成 白皮书里的正规章节结构:
    • 语言目标
    • 类型系统
    • 执行模型
    • 与 RIM 四层的接口

你不用选,我也会默认沿用这份“极简 RIL 设计”作为后续所有 I3/Agent 相关内容的基础。