Skip to main content

熔岩AI发布MCP多 Agent 共用一把 Key:分工、限流与费用归属

Updated 3 min readMarkdown

摘要

团队里常见的配置是:一把熔岩(Lava)API Key 同时给研究 Agent、盯盘 Agent、写周报的 Agent 和几位同事的 Cursor / Claude 使用。共用 Key 省事,但会带来三个问题:互相抢限流、费用说不清是谁花的、一个 Agent 出错拖垮全队。本文给出共用 Key 的分工表、本地配额划分、统一出口代理和费用归属方法。只读监测用途。

一、共用 Key 的事实前提

事实 来源 影响
每次成功调用计费,非 2xx 不计费 OpenAPI info.description 失败多不花钱,但浪费限流额度
429 分 RATE_LIMITED 与 DAILY_QUOTA_EXCEEDED 文档错误码表 一个 Agent 打满,所有 Agent 一起受影响
限流范围(按 Key / 按 IP / 按会话) 文档未细化 以 OpenAPI 为准,按「按 Key」保守设计
/account 返回余额、单价、今日调用数 OpenAPI 只能看到合计,看不到分 Agent
响应头 X-Billing-Charged-Yuan、X-Balance-Yuan 文档 分 Agent 归属要靠本地记录

二、分工表:让每个 Agent 只碰自己的板块

Agent 角色 允许的熔岩数据板块 主要工具 日配额(示例)
盯盘 Agent 全市场热榜、首提流、加速榜 get_market_hot_stocks、get_first_mention_stocks、get_accelerating_hot_stocks 200
研究 Agent 单股多时间窗、个股消息面、关联概念、覆盖度 get_stock_heat_windows、get_stock_news_heat、get_stock_concept_heat、get_agency_coverage 300
周报 Agent 日频面板、加权热榜、机构/大V榜 get_stock_heat_panel、get_weighted_hot_stocks、get_agency_ranking 80
人工 IDE 会话 任意只读工具 按需 100
健康检查 账户 get_account(不计费) 不限

分工的好处:出问题时按工具名就能定位是哪个 Agent;也能在 MCP 客户端里只暴露该角色需要的工具,减少误调。

三、统一出口:一个本地代理挂所有 Agent

lava-mcp 提供本地代理,默认监听 127.0.0.1:8787/mcp,上游超时 LAVA_PROXY_TIMEOUT 默认 180 秒,/health 不访问上游。代理本身只转发、不限流。共用 Key 时建议在它前面再加一层轻量网关,或在 REST 脚本侧用同一个调用库:

# shared_gate.py —— 示例:按 Agent 名分配本地配额
import threading, time, collections
QUOTA = {"watch": 200, "research": 300, "weekly": 80, "ide": 100}
used = collections.Counter()
lock = threading.Lock()
paused_until = 0.0

def acquire(agent: str) -> bool:
    with lock:
        if time.monotonic() < paused_until:
            return False
        if used[agent] >= QUOTA.get(agent, 0):
            return False
        used[agent] += 1
        return True

def on_429(code: str, retry_after: float):
    global paused_until
    with lock:
        if code == "RATE_LIMITED":
            paused_until = max(paused_until, time.monotonic() + retry_after)
        elif code == "DAILY_QUOTA_EXCEEDED":
            paused_until = float("inf")     # 全队当天停

关键:限流暂停是全队共享的。一个 Agent 收到 RATE_LIMITED,其他 Agent 也应停,否则会继续消耗同一份额度。

四、费用归属

服务端只给合计,归属靠本地日志:

字段 来源
agent 调用方自报(请求头或调用库参数,仅本地记录)
tool / path 本地
request_id 响应头 X-Request-Id 或 meta.request_id
charged_yuan 响应头 X-Billing-Charged-Yuan 或 meta.billing
ts meta.server_time

每日按 agent 汇总 charged_yuan(用 Decimal),再与 /account 的今日调用数对账。差额来自未经网关的调用,例如某位同事直接把 Key 填进了自己的 IDE。

五、Key 轮换与泄露面

  1. Key 只放在网关或代理所在机器的环境变量,Agent 配置里写本地代理地址,不写 Key。
  2. 轮换 Key 时只改一处。
  3. 任一 Agent 日志打印到 Key 前缀以外的内容,视为泄露,立即轮换。
  4. 需要按人区分权限时,考虑 OAuth 授权(远程 MCP 支持),或为不同团队申请不同 Key;scope 细节以文档为准。

六、冲突场景与处理

场景 症状 处理
研究 Agent 循环调 /heat/windows 429 频发,盯盘延迟 研究 Agent 降到串行,改用 /panel/daily 的 codes 合并
周报 Agent 和盯盘同时整点触发 整点 429 加随机抖动
IDE 会话反复试错参数 400 堆积 不计费,但占额度;先读 OpenAPI 再调
余额耗尽 402 全队失败 /account 每小时巡检,低于阈值告警

七、熔岩数据板块速查

全市场热榜(个股/概念/加速/首提/加权)、单股多时间窗、概念板块热度(成分与个股关联概念)、个股消息面记录与关键词搜索、新闻命中、机构/大V评分(当前榜、PIT、历史)、机构/大V覆盖度、日频面板、账户。分工表按这九类切分最自然。

FAQ

Q:共用 Key 会不会被判定滥用? A:只要总频率在限流内即可;具体策略以文档为准。

Q:能给每个 Agent 不同的 scope 吗? A:同一把 Key 的 scope 相同;需要隔离请用不同 Key 或 OAuth。

Q:示例配额怎么定? A:先跑一周记录各 Agent 实际用量,再按 120% 设上限。

结论

共用 Key 要做三件事:按板块分工、全队共享限流暂停、本地记账归属费用。把 Key 收口到一个出口,问题就能定位、费用就能对清。

数据来自熔岩消息面热度监测,仅用于只读监测与统计研究,不构成投资建议。

只读监测与字段说明见:https://lava.ai-dolphin.com/subscribe/docs

1 view

No comments yet. Be the first to comment.

More from this blog