Beta版: LLM网关处于 beta测试阶段。
X-Gateway-Customer-Id: acme,则它只限制来自该工作区且携带该头部值的请求。来自同一工作区但携带 X-Gateway-Customer-Id: globex 的请求,则计入另一个策略的限额。
可匹配的头部
网关匹配以X-Gateway- 为前缀的请求头,以及 X-Gateway-Metadata JSON头内部的键。其他请求头均不可匹配。
头部名称在匹配前会进行标准化处理:去掉 X-Gateway- 前缀,剩余部分转为小写,并将 a-z、0-9 和 _ 以外的每个字符替换为 _。头部 X-Gateway-Customer-Id、x-gateway-customer_id 和 X-Gateway-CUSTOMER.ID 均会解析为匹配器键 customer_id。头部值作为精确、区分大小写的字符串进行比较,不支持通配符或模式匹配。
网关会自行记录调用者身份,并忽略客户端覆盖它的尝试。解析为 organization_id、workspace_id、workspace_handle、user_id、user_email、api_key_id、api_key_short、auth_mode、user_agent、applied_policy_ids 或 applied_policy_names 的头部,以及任何标准化后以 gateway 开头的头部,均会被丢弃。
头部条件规则
- 每个策略一个条件:一个策略接受一个头部键和一个值。
- 与一个主体范围配对:将头部条件与一个组织、工作区、用户或API密钥范围结合。主体一侧接受多个值并匹配其中任何一个。头部一侧只接受一个值。
- 仅适用于支出上限和速率限制:默认策略不能携带头部条件,因此网关不会自行创建按头部划分的策略。要限制多个头部值,需为每个值创建一个策略。
- 缺少头部则不匹配:不携带该头部的请求不会匹配该策略。将按头部策略与主体上更广泛的策略配对,以便未标记的流量仍受限制。
- 每个匹配的策略都会被执行:同时匹配一个普通主体策略和一个带头部条件的策略的请求,将计入两者的限额,且任意一个都可能阻止它。
- 最多10个条件:一个策略总共携带的主体条件不超过10个。
添加头部条件
- 前往 设置 → 网关 → LLM网关。
- 点击 创建策略。
- 选择策略类型和主体范围,然后设置限制。
- 在 自定义头部条件(可选) 下,输入不带
X-Gateway-前缀的 头部名称(例如,Customer-Id)和要匹配的 头部值(例如,acme)。 - 保存。
subject_matchers。
为每个终端客户设置支出上限
经销商或多租户应用通常从其自己的后端调用网关,代表多个终端客户使用一个工作区范围的API密钥。头部条件让这些终端客户在该单一密钥下拥有各自独立的支出上限。步骤1. 在每次调用时发送客户头部
在您的后端代表终端客户发出的每个请求中附上该头部:如果您的LangSmith账户位于区域实例,请使用相应的 区域网关。
步骤2. 为一个客户创建上限
通过 LangSmith REST API 为每个终端客户创建一个支出策略:customer_id,而不是头部名称 X-Gateway-Customer-Id。该策略属于拥有该API密钥的组织。
发布一个 subject_matchers 已经存在的策略会更新该策略,而不是添加重复项,因此此调用可以安全地重复执行。
步骤3. 将策略与您的客户列表同步
由于每个终端客户都需要自己的策略,请保持策略集与您的客户列表同步。以下脚本为每个当前客户创建或更新一个上限,然后删除已不复存在的客户的上限:步骤4. 读取每个客户的支出
API返回的每个支出策略都报告current_spend_usd,即该策略活动窗口内累积的支出。可用它向每个终端客户展示其使用情况,或在他们接近上限时发出警告。当支出查询失败时,该字段会被省略,因此应将缺失值视为未知,而不是零。
列表端点仅在某个主体匹配器键与值配对时才会缩小范围,因此请列出支出上限并在您自己的代码中选择按客户的上限:
限制每个终端客户的吞吐量
速率限制使用相同的主体匹配器。替换policy_type 和 config 以为终端客户提供其自己的请求和令牌配额:
后续步骤
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

