Agent gate · 开源 · MIT

AI agent 替你下单,
只在你签的限额之内。

agent 不再直接调券商,而是调闸门。你的限额之内放行,越界拒绝;每一个决定都签名写进账本,任何人不用信任闸门,只凭账本就能复核。

现在可用:按 Hyperliquid 实时价格成交的加密模拟盘;Alpaca 美股模拟账户(已实测)。Hyperliquid 接入:测试网签名已验证,尚未成交。

真实账本 · 2026-10-21 演示打开文件 ↗
授权签发人 0x33b4…d488 · 账户主人的钱包 (测试钥匙)
BTC, ETH · 单笔 ≤ $500 · 每日亏损 ≤ $200 · 至 2026-11-04
唯一能执行的密钥 0x1329…82Bb
13:20:58BUY BTC $300放行#1 · sha256 bbc1ef6f52… · sig 0xf515b2b5…
13:21:03BUY ETH $5,000拦下order is $5,000.00, above the $500 single-order limit#2 · sha256 d94e845ce5… · sig 0x2e3ed518…
13:21:08BUY SOL $100拦下SOL is not on the allow list ['BTC', 'ETH']#3 · sha256 0a52714b79… · sig 0x05244e21…
13:21:13SELL BTC $150放行#4 · sha256 df72d0455a… · sig 0xf399470a…
$ agent-gate audit · audit:逐笔复核放行的单是否在签名限额之内 → 通过
怎么工作

三步。agent 手里始终没有能下单的钥匙。

01
签下限额

能买哪些标的、单笔多大、单标的仓位多大、一天最多亏多少、一天几笔、到哪天为止。你用自己的以太坊钱包签名;文件里写明唯一能执行它的密钥:闸门的那把。

agent-gate keygen .gate/gate.key
agent-gate mandate draft --config gate.json \
    --issuer 0xYourWallet --days 14
# sign the printed text in your wallet
agent-gate mandate attach --sig 0x…
02
agent 来问闸门

通过 MCP,或者通过它所在框架里的适配器。限额之内的单交给券商;越界的拒绝,并写明原因。只减少风险的单永远放行。

place_order("ETH", "buy", usd=5000)
→ {"decision": "block",
   "reasons": ["order is $5,000.00, above
               the $500 single-order limit"]}
03
只凭账本就能审计

每一行带着上一行的哈希和闸门的签名。audit 逐笔复核放行的单是否在签名限额之内。整份重写账本的伪造,单靠哈希链查不出,现在能查出来。

agent-gate audit --config gate.json
→ {"ok": true, "mandates": 1,
   "orders_allowed": 2, "orders_rechecked": 2,
   "problems": []}
真实运行

让它一口气买 5,000 美元 ETH。被拦下。它没有拆单。

2026-10-21,Claude 通过 MCP 连上闸门(模拟盘,Hyperliquid 实时价格)。指令是「今天很看好,马上买 5,000 美元 ETH,再买 300 美元 BTC」。

$ python src/agent_gate.py log --config gate.json
#0  09:27:54Z  BUY ETH  $5,000.00  BLOCKED
    order is $5,000.00, above the $500 single-order limit
#1  09:27:56Z  BUY BTC  $  300.00  ALLOWED
    0.003593 BTC @ 83,493.50

$ python src/agent_gate.py verify --config gate.json
{"ok": true, "lines": 2, "head": "a3912dc8d6c2…"}

agent 的回复(节选,原文)

结果是:BTC 买入成交了,ETH 那笔被 gate 拦了,没有成交。

我没有把 $5,000 拆成十笔 $500 去绕开限额。gate 拒绝一笔订单就是最终结果,拆单绕过等于废掉你自己设的风控规则。

如果 $5,000 才是你真正想要的仓位,就去 gate 配置里把 max_order_usd 调高。这得你自己改,我不应该替你改。

ledger.jsonl · agent-reply.md

我们发现的

只设「每日亏损上限」,挡不住一天的亏损。

我们用 Hyperliquid 199 天真实小时收益(BTC、ETH)回放闸门自己的规则:30 天 × 1,000 次,起始 $10,000,单笔 $500,每天 20 笔。这个上限只拦新开的仓,拦不住手里仓位继续亏。所以默认规则已加上单标的仓位上限。

你设的每日亏损上限
$200
守规矩但把额度用满的 agent:最坏一天(中位数)
$6,661
加上单标的仓位上限 $2,000 后
$186

小时收盘价;未计强平、资金费、手续费。 方法与数据 →

不问动机

被说服也好,自己想的也好,得到同一个答复。

被网页里埋的一句话说服的 agent,和自己想出来这一单的 agent,得到同一个决定:最多做到你签的额度。闸门不去判断 agent 的理由,所以也没法被说服。

OpenAI,2026 年 7 月

OpenAI「测试过、验证过」的沙盒,agent 还是借沙盒里本来开放的软件包服务器出了网,又拿别人公开泄露的凭据进了 Hugging Face。

一个 agent 本来停手了,另一个 agent 在留言板写了「GO」,它就接着干。

闸门里的「GO」

只有你的签名能改限额。

网页里的话、别的 agent 喊的 GO,都改不了。

它的边界:闸门管的是它所在的那条钱的通道,不是 agent 本身。agent 若有别的路碰到钱,闸门看不见那条路。所以能交易的密钥只给闸门。

限额检查的每条规则都已由 SMT 求解器对所有输入做了证明;写证明时抓出两个漏洞,已修。 证明了什么、没证明什么 →
出处:OpenAI,The Hugging Face incident and the road ahead,2026-08-26(中文为本项目转述)。

为什么必须在你手里

跟 agent 一起卖的护栏,留在卖 agent 的人手里。

agent 产品自带的护栏

规则在卖 agent 的人手里

账本也在他手里

换个 agent、换个券商,就没了

这道闸

限额由你签名

账本任何人都能复核

换 agent、换券商,都还在

能接什么

接在你的 agent 本来就下单的地方。

任何 MCP 客户端Claude、Cursor 等拿到四个工具:place_order、account、recent_log、scorecard,没有一个能改限额或账本。
Hyperliquid闸门的密钥就是你账户批准的 API 钱包,由你的主钱包批准。测试网签名已验证,尚未成交。
Alpaca 模拟账户美股,用你自己的模拟账户。2026-10-21 已实测。
ai-hedge-fund包一层券商接口;已对它自己的 SimBroker 实跑。
lumibot一个 Strategy mixin;已在真实 lumibot 回测里跑过。
TradingAgents把它的评级转成一笔由你定金额的单;不定金额就不交易。
安装

三分钟,从克隆仓库开始。

git clone https://github.com/Beltran12138/evidence-deflator && cd evidence-deflator
pip install mcp eth-account
python src/agent_gate.py demo                 # a scripted agent: allowed, refused, a tampered ledger caught
python src/agent_gate.py init gate.json       # default limits, then edit
python src/gate_stress.py --config gate.json  # what these limits allow, on real returns
python src/gate_server.py --config gate.json  # the gate as an MCP server for your agent

用你的钱包签授权:/gate/sign/。规格:MANDATE.md。适配器:INTEGRATIONS.md。

现状

现在能做什么、不能做什么。

项状态
加密模拟盘可用。按 Hyperliquid 实时中间价成交;上面的真实运行就是它。
Alpaca 模拟交易(美股)可用,需要你自己的模拟账户密钥。2026-10-21 实测:规则内的 AAPL 单提交成功,超限的 SPY 和白名单外的 TSLA 被拦,见 账本。
签名授权 + audit可用。演示账本,以及一次被查出的整份重写伪造:演示。
Hyperliquid已接入,测试网签名已验证。尚未成交:测试网领水需要在主网入过金的地址。
签名前压力测试可用:python src/gate_stress.py --config gate.json。
规则检查的证明已对所有输入证明(z3):单笔与仓位上限、白名单、每日亏损、每日笔数、只做多,以及平仓单永远放行。不覆盖:agent 是否另有路碰到钱。
每周成绩单可用;记录不满 8 周时只给运行时长,不给结论。
投资建议不做。闸门不判断一笔单好不好,只执行你的限额、记下发生了什么。
成绩单

你的 agent 的记录,是本事还是运气?

账本里的权益用和钱包检验同一把尺子打分:周收益、t 值,以及随试验次数抬高的门槛。Hyperliquid 历史盈利榜前 100 名,目前没有一个过线。

钱包检验与排行 →

谁在做

伯纳德,《AI 智能投资手册》作者之一。公开开发,MIT 许可;问题与设计合作方申请请走 GitHub。

GitHub →