Skip to content

[LightBridge Node Provider] 实现可选一跳串联转发与循环保护 #55

Description

@WilliamWang1721

目标

在多实例共享状态和统一入口能力稳定后,再实现真正意义上的“串联”:把另一个 LightBridge 实例作为一个特殊 upstream/provider 使用。

注意:这不是默认流量分流方案,只作为兜底、跨区补偿、特殊用户路由或测试用途。

设计原则

允许:

用户 → LB-A → LB-B → 上游

禁止:

用户 → LB-A → LB-B → LB-C → LB-D → 上游

协议建议

跨节点请求增加 Header:

X-LB-Chain-ID: <uuid>
X-LB-Hop-Limit: 1
X-LB-Origin-Node: <node_id>
X-LB-Forwarded-By: <node_id>
X-LB-Visited-Nodes: a,b
Authorization: Bearer <node_token>

实现建议

  • 新增 AccountTypeLightBridgeNode 或在 custom provider extra 中明确 provider_kind=lightbridge_node
  • 优先复用现有 OpenAI-compatible / Anthropic / Gemini 转发栈,不重新写协议栈。
  • node token 与用户 API Key 分离,禁止把用户后台权限传给下游节点。
  • hop-limit 默认为 1。
  • 如果 X-LB-Visited-Nodes 包含当前 node_id,直接拒绝,避免循环。
  • stream 必须透传,不能缓冲。

验收标准

  • LB-A 能把一个请求转发给 LB-B,LB-B 能正常调用上游并返回。
  • hop-limit 超过限制时拒绝。
  • 检测到循环时拒绝。
  • 下游节点不会拿到用户管理权限。
  • OpenAI stream 和 Anthropic stream 至少各有一个测试。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions