Enterprise Gateway 是什么?
开源 agent_gateway 的私有企业版。它不 fork、不改上游一行代码:import 开源网关,向其 extension hooks 注册组织能力,再原样转发同一个 Flask app(sentry/getsentry 式拆分)。上游安全修复只需重新构建即可到达所有部署;开源网关始终不知道这个私有包的存在。
Enterprise Gateway 是跑在客户服务器上的组织推理入口:成员目录、嵌套额度与用量台账都在你自己的数据库里,每条模型路由显式指定端点与凭证,绝不回落到厂商的 key。
开源 agent_gateway 的私有企业版。它不 fork、不改上游一行代码:import 开源网关,向其 extension hooks 注册组织能力,再原样转发同一个 Flask app(sentry/getsentry 式拆分)。上游安全修复只需重新构建即可到达所有部署;开源网关始终不知道这个私有包的存在。
开源网关只服务个人账户:一个扁平用户列表,每人一个余额。企业层补上组织真正需要的东西——成员/团队/令牌目录、可嵌套额度、留在客户自己数据库里的用量台账、共享技能与流程资产、签名组织策略,以及控制台 /api/org/* 接口。全部跑在客户的服务器上。
可以,而且这是默认姿态。每条路由都是显式的 chat_url + 凭证,由管理员在控制台配置:公司自己的 Azure OpenAI、DeepSeek 合同、Volcano Ark 租户,或者机房内网里自建的 vLLM/SGLang(代码注释明确支持 LAN endpoint)。端点需兼容 OpenAI chat/completions 协议。
请求被拒绝,错误信息指明去控制台哪里配置——绝不回落到 Laintas 自己的 provider key。回落意味着把客户的提示词发往他们没选过的端点、把 token 计到 Laintas 账上。历史的 is_managed 标志不再创建托管推理路由,API 会拒绝这种用法。
model_pattern 通配匹配模型名(如 gpt-*、deepseek-*、* 兜底),按 priority 升序取第一个命中的启用路由;调用方显式指定 provider_id 时精确直连,不存在或已禁用则报错。凭证以 AES-256-GCM 信封加密存库,解密密钥只存在于部署环境变量、永不入库,且与组织绑定——拖走数据库备份拿不到明文 key。
SSRF 防护只作用于控制台里的主动测试请求:默认拒绝解析到内网/环回地址的目标,防止从控制台探测内网服务。推理路由本身不受此限;确有内网端点需要测试时,用 ENTERPRISE_ALLOW_LAN_PROVIDER_TESTS 显式放开。
一个 URL 加一组令牌。install.sh 用 docker compose 起 db + gateway + nginx 三个容器,全部只绑回环地址;客户在自己的反向代理上终止 TLS 后,对外就是 https://<your-host>。控制台与推理 API 同源(浏览器无需 CORS),本地端口为 console 8090、gateway 2913,代理超时对齐 1200 秒长推理。
刻意不走 HTTP:bootstrap 是一次性本地命令(docker compose exec gateway python -m laintas_enterprise.bootstrap --email …),校验许可证后在库里建组织与 owner,并只打印一次令牌。在第一个令牌存在之前开放“首个请求者即管理员”,等于把管理员交给公网。已有活跃 owner 时它会拒绝运行。
lem_ 前缀 + 43 字符 URL-safe 随机串(256 位)。owner 令牌由 bootstrap 打印一次,成员令牌由控制台签发。数据库只存 SHA-256 摘要——拖库既不能重放也不能冒充。成员侧存于 ~/.laintas/enterprise/issuer.json,CI 可用 LAINTAS_ORG_TOKEN 环境变量覆盖;控制台与 CLI 复用同一凭证,离职吊销一处即全站失效。
成员不换程序,还是原来那个 laintas-cli,三条命令接入:/v enterprise 安装组织层,/org connect https://<your-host> --token lem_… 连接网关,/backend https://<your-host> 把推理也指过来。之后 /org sync 拉取共享技能与签名策略,/org status 查看当前 issuer、剩余额度与策略版本。
两个:LAINTAS_LICENCE_TOKEN(laintas.com 签发的许可证,绑定组织 UUID,决定谁可以运行这套软件)和 ENTERPRISE_KEY_ENCRYPTION_KEY(信封加密主密钥——丢失它,库里的 provider API key 就永远无法解开,install.sh 结尾会专门警告)。
laintas.com 只保存组织身份、席位与许可证。成员、角色、团队、额度、用量明细、提示词、代码、文件与审计记录全部留在客户自己的服务器。需要说明的是:CLI 扩展软件本身仍从 enterprise.laintas.com 分发——"谁能运行软件"和"工作在哪发生"是两个独立的问题。
不会,处处 fail closed:目录故障返回 503 而不是匿名放行;额度检查故障返回 503 而不是免费推理;身份钩子只裁决不降级——持 Laintas 登录也进不来私有网关。额度取交集不取并集:组织限 10 万次、团队被授予 50 万次,团队实际拿到 10 万次,预算控制不会被下一层 undo。
STUN 默认关闭:客户部署不会向 Laintas 的 STUN 服务器泄露成员公网地址,跨网 P2P 需要自建 coturn(RTC_STUN_URLS)。请求日志的保留天数(ENTERPRISE_REQUEST_LOG_DAYS)与是否记录来源 IP(ENTERPRISE_REQUEST_LOG_IPS)是两个独立开关,都可整体关闭——不想留"谁从哪台机器调用"的记录,可以干脆不留。