Communitygithub.com

elliottech/lighter-agent-kit

查询Lighter DEX市场数据(订单簿、成交、K线、资金费率)并在永续和现货市场上执行交易(限价单、市价单、修改、取消、杠杆、保证金、提现、现货与永续转账)。当用户提及Lighter、zkLighter、永续合约、或希望检查仓位、盈亏、在Lighter上下单时使用。

lighter-agent-kit 是什么?

Lighter Agent Kit是一个为AI代理(如Claude Code、Cursor、Codex)设计的工具包,用于与Lighter DEX及其Robinhood Chain部署进行交互。它通过两个Python脚本提供统一接口:`query.py`用于读取市场数据(订单簿、成交、K线、资金费率等),`trade.py`用于执行交易操作(限价单、市价单、修改、取消、设置杠杆、调整保证金等)。该工具包支持永续和现货市场,自动处理符号解析(永续使用裸代码如`BTC`,现货使用交易对如`ETH/USDC`),并规范化交易方向(`buy/sell`和`long/short`均可接受)。`LIGHTER_ACCOUNT_INDEX`环境变量用于管理账户范围;认证请求从环境变量或个人凭据文件生成短期令牌,绑定到配置账户,因此不支持查询其他账户。还包含`paper.py`用于模拟交易,无需凭据即可根据真实订单簿快照无风险地模拟交易。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add elliottech/lighter-agent-kit

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Lighter Agent Kit

使用相同命令在Lighter或其在Robinhood Chain上的部署上进行交易。

脚本位于此技能的 scripts/ 目录中。读取命令使用 query.py,写入命令使用 trade.py。每个命令输出结构化的JSON到标准输出。错误始终以JSON格式返回,如 {"error": "..."}。

命令使用 <group> <action> 语法,与Lighter UI对应(例如 market stats、order limit、orders open)。

有关响应模式和详细信息,请参阅 references/ 文件夹。

安装

将此文件夹复制到标准的Claude Code技能位置之一:

  • 个人(所有项目): ~/.claude/skills/lighter-agent-kit/
  • 项目级(仅限此仓库): .claude/skills/lighter-agent-kit/

首次调用时,lighter-sdk 及其传递依赖将安装到 <skill>/.vendor/pyX.Y/。每个版本均由 requirements.lock 锁定。支持的平台包括Apple Silicon Mac以及Linux x86_64/arm64。此套件不支持Intel Mac。

需要网络出口连接到选定的Lighter主机(mainnet.zklighter.elliot.ai、testnet.zklighter.elliot.ai、api.rh.lighter.xyz 或 api.rh-testnet.lighter.xyz)、pypi.org / files.pythonhosted.org 以及 github.com(pip从GitHub克隆锁定的 lighter-sdk 构建)。在Claude.ai的沙盒中,默认出口允许列表不包含 github.com——你需要在首次运行前扩展它。

读取命令无需凭据即可工作。写入命令和账户私有读取会首先检查环境变量,然后检查你的个人凭据文件——请参阅 references/env-vars.md。

如何处理用户请求

  1. **符号约定:永续-裸代码,现货-交易对。**永续市场使用裸代码(BTC、ETH、SOL、LIT);现货市场使用报价货币限定的交易对(Lighter上为 ETH/USDC,Robinhood Lighter上为 AAPL/USDG)。/ 的存在是唯一的区分标志——在符号解析的命令上无需 --market_type 标志。数字形式的 market_index 也可作为备用方式接受。
  2. **符号解析是自动的。**市场符号从实时订单簿API解析,并在每个主机上缓存5分钟,因此 query.py、trade.py 和 paper.py 在多次调用间共享相同的市场映射。资金资产根据所选部署解析;当无歧义时,collateral 别名指向其报价资产。仅当用户提到你无法自信映射的内容(例如“布伦特原油”、“黄金”、“白银”)时,先运行 python3 scripts/query.py market list --search <子串> [--market_type perp|spot] 以发现它。这些通常以代码风格符号出现,如 BRENTOIL、XAU 和 XAG。
  3. 方向接受两种形式。 --side buy|sell|long|short——永续和现货市场均接受。内部规范化为标准形式(永续用long/short,现货用buy/sell)。
  4. 在高基数读取时在源头过滤。 market funding、market stats 和 market info 接受 --symbol / --market_index / --exchange——当你只需要一行时始终传递它们。
  5. 运行匹配的脚本:读取使用 python3 scripts/query.py <group> <action> ARGS,写入使用 python3 scripts/trade.py <group> <action> ARGS。路径相对于此技能的目录。
  6. 解析JSON并清晰地呈现。
  7. 账户作用域命令和 LIGHTER_ACCOUNT_INDEX。 两种情况:
    • 公开读取(account info、account apikeys)接受 --account_index,省略时默认为 LIGHTER_ACCOUNT_INDEX。
    • 认证读取(account limits、portfolio performance、orders open、orders history)是仅限自身的,使用 LIGHTER_ACCOUNT_INDEX 而不是 --account_index,因为认证令牌绑定到该账户。

诊断(可选): 如果调用失败并出现类似 import lighter 的错误,运行 python3 scripts/bootstrap.py 以验证SDK是否正确供应商化。它应返回包含 status: ok 字段的响应。在正常会话中你无需运行此命令。


读取命令 (query.py)

公开读取——无需凭据

命令用途
system statuszkLighter系统状态(网络ID、时间戳)。
market list [--market_type perp|spot] [--search X]紧凑的 {symbol, market_index, market_type} 目录。用于符号到索引的查找。
market stats [--symbol X]市场概览:价格、24小时成交量、每日交易数。传递 --symbol 获取单行。
market info [--market_type perp|spot] [--symbol X]完整市场元数据(费用、小数位数、最小规模)。始终过滤;未过滤时约150行。
market book <symbol> [--limit 20]买卖盘口最优报价。<symbol> 是永续代码(BTC)、现货交易对(ETH/USDC)或数字市场索引。--limit 是每边的笔数。
market trades <symbol> [--limit 20]一个市场的最新成交。--limit 最大100。
market candles <symbol> --resolution 1h --count_back 24OHLCV K线。分辨率:1m、5m、15m、30m、1h、4h、1d。返回 o/h/l/c(价格)、v(基础货币成交量)、V(报价货币成交量)、t(K线起始时间,毫秒)、i(最后一笔交易ID)。
market funding [--symbol X] [--market_index N] [--exchange X]各交易所的资金费率。未过滤时约300行;始终传递 --symbol 或 --exchange。
account info [--account_index N] [--by l1_address --value 0x…] [--include_zero_positions]账户查询:余额、仓位、资产。默认为 LIGHTER_ACCOUNT_INDEX。使用 --by l1_address --value … 通过L1地址查询。positions[] 默认仅过滤当前开仓仓位——Lighter为账户接触过的每个市场保留一行,原始列表可能非常庞大且大部分为平仓。当你需要每个市场的生命周期 realized_pnl / total_funding_paid_out(PnL分析、资金审计、税务报告)时,传递 --include_zero_positions。
account apikeys [--account_index N] [--api_key_index N]列出账户的API密钥。省略 --api_key_index(默认为255)以列出所有密钥。
auth status仅本地的凭据预检查。返回 auth_capable + 每个凭据的来源。在进行认证调用前运行一次。

账户私有读取——需要 LIGHTER_API_PRIVATE_KEY + LIGHTER_ACCOUNT_INDEX + LIGHTER_API_KEY_INDEX

这些端点在每次调用时从你配置的凭据生成一个短期认证令牌。认证令牌绑定到 LIGHTER_ACCOUNT_INDEX,因此以下四个命令是仅限自身的——它们不接受 --account_index,且无法查询与签名令牌的私钥对应的账户不同的账户。

命令用途
account limits交易限制和等级信息。
portfolio performance --resolution 1h --count_back 24一段时间内的盈亏图表。
orders open (--symbol X | --market_index N)一个市场的未完成订单。传递 --symbol(永续代码或现货交易对)或 --market_index。
orders history [--symbol X] [--market_index N] [--limit 20]已成交/已取消订单历史。市场过滤器可选。

平台注意: 在 claude.ai 的沙盒 bash 环境 中没有持久化 shell 来 export 环境变量,并且将API私钥粘贴到聊天中是不可接受的。将上述四个命令视为实际仅适用于 Claude Code / Cursor / 桌面。在claude.ai上,回退到公开读取或引导用户使用Lighter网页/移动端UI进行账户私有视图。

完整性检查:python3 scripts/health.py 返回 {"status": "ok", "version": "..."},无需接触SDK——有助于确认技能已加载。

请参阅 references/schemas-read.md 了解完整的响应形状。


写入命令 (trade.py)

**所有写入命令都需要凭据。**价格和数量以人类单位表示(例如 --price 4050.5 --amount 0.1);脚本获取市场元数据并自动将其缩放为整数刻度/手数。响应会回显 effective_amount / effective_price,因此你可以看到四舍五入后实际生效的值。

方向接受两种形式: --side buy|sell|long|short。永续和现货市场均接受。内部规范化为标准形式(永续用long/short,现货用buy/sell)。

符号约定: 位置参数 <symbol> 是永续代码(BTC、ETH)、现货交易对(ETH/USDC、LIT/USDC)或数字市场索引(1)。现货符号中的 / 是区分标志——无需 --market_type 标志。

现货交易: 每个订单命令都透明地适用于现货市场——只需传递类似 ETH/USDC 的现货交易对。使用 query.py market list --market_type spot 发现它们。在现货市场上,--reduce_only 和 position leverage / position margin 命令是空操作——现货没有杠杆仓位。

命令关键参数
order limit <symbol> --side <side> --amount N --price N [--reduce_only] [--post_only]永续或现货的限价单。
order market <symbol> --side <side> --amount N [--slippage N] [--reduce_only]永续或现货的市价单。默认滑点 0.01(1%)。
order modify <symbol> --order_index COI --price N --amount NCOI 是 order limit 返回的 client_order_index。
order cancel <symbol> --order_index COI取消单个未完成订单。
order cancel_all取消所有市场上所有未完成的订单(无参数)。
order close_all [--slippage N] [--with_cancel_all] [--preview]高风险。 使用仅减仓市价单平掉所有开仓仓位——在所有市场上一次性实现盈亏。始终先运行 --preview 并在实际调用前获得用户明确批准;不要从“清理”或“重置”等措辞自动推断意图。--with_cancel_all 还会取消止盈/止损挂单。与 --preview 结合使用时,响应会包含取消所有将首先运行的说明,但 would_close[] 仍仅列出仓位。
position leverage <symbol> --leverage N [--margin_mode cross|isolated]设置杠杆。默认 cross。
position margin <symbol> --amount N --direction add|remove数量为部署抵押品(USDC或USDG);仅对逐仓仓位有效。
account mode --mode classic|unified高风险。 更改账户级别的保证金行为。先检查 query.py account info 并获得用户明确批准。
account collateral --asset A --mode enabled|disabled高风险。 在统一模式下更改符合条件的资产是否贡献抵押品。检查账户并获得用户明确批准。
funds withdraw --asset A --amount N [--route perp|spot]默认路由 perp。接受任何部署资产符号或数字资产ID;当无歧义时,collateral 别名指向报价资产。这将创建提现请求;资金可能进入待处理/领取流程,不会立即出现在钱包中。
funds transfer --asset A --amount N --from_route perp|spot --to_route perp|spot在你自己的现货和永续桶之间移动任何部署资产。无需L1签名,无跨账户路由。

order limit 和 order market 返回一个 client_order_index——保存它;这是后续 order modify / order cancel 的句柄。

示例——将部署抵押品从永续移动到现货以资助现货购买:

python3 scripts/trade.py funds transfer --asset collateral --amount 250 \
    --from_route perp --to_route spot

示例——在Robinhood Lighter上启用SPY作为抵押品:

python3 scripts/query.py account info
python3 scripts/trade.py account mode --mode unified
python3 scripts/query.py account info  # 等待直到 account_trading_mode 为 1
python3 scripts/trade.py account collateral --asset SPY --mode enabled
python3 scripts/query.py account info

上述两个写入命令需要单独、明确的用户批准。account collateral --mode enabled 会拒绝选定的部署未标记为抵押品合格的资产,并拒绝经典模式账户。

每个命令支持 --help。请参阅 references/schemas-write.md 了解响应信封、精度回显和错误代码表。


模拟交易 (paper.py)

无需凭据、无需广播、无风险地针对真实Lighter订单簿快照模拟交易。所有状态均为本地。

共享子集命令使用与 trade.py 相同的 <group> <action> 格式,因此交换脚本名称即交换引擎。仅限模拟的生命周期命令保持扁平。

命令

仅限模拟(扁平):

命令用途
init [--collateral N] [--tier T]创建模拟账户。默认值:--collateral 10000 --tier premium。
reset [--collateral N] [--tier T]清除状态。无参数形式重用之前的抵押品和等级。
set_tier --tier T更改现有账户的费用等级(更新缓存的市场配置)。
status [--no-refresh]账户摘要:抵押品、盈亏、仓位/交易计数。自动刷新所有开仓仓位的标记价格;传递 --no-refresh 跳过。
positions [--symbol X] [--no-refresh]开仓仓位。无 --symbol 列出所有。自动刷新标记价格。
trades [--symbol X] [--limit 50]交易历史,最近优先。
health [--no-refresh]账户健康:总资产价值、保证金要求、杠杆。自动刷新标记价格。
liquidation_price <symbol> [--no-refresh]估计的仓位清算价格。自动刷新标记价格。
refresh <symbol>强制刷新一个市场的订单簿快照。适用于交易前预热市场,或当你希望在不传递 --no-refresh 的情况下获取当前标记数据。

共享子集(镜像 trade.py 格式):

命令用途
order market <symbol> --side buy|sell|long|short --amount N根据实时订单簿快照执行吃单市价单。
order ioc <symbol> --side buy|sell|long|short --amount N --price N具有限价价格的吃单IOC订单。

交换规则: 将 trade.py ↔ paper.py 互换以切换引擎。例如:

# 真实交易
python3 scripts/trade.py order market BTC --side long --amount 0.5

# 模拟相同交易
python3 scripts/paper.py order market BTC --side long --amount 0.5

相关技能