experiential
experientiallabs/experiential加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
先设想一个场景。你的团队里,Claude Code、Cursor、Codex 各接各的模型供应商,每个人的 token 花费无人知晓,同一个任务有人用贵模型硬扛、有人用便宜模型卡在失败循环里,而你想知道"到底哪个模型在什么任务上性价比最高"——但没人记录过这些。Experiential 解决的就是这个断层:它是开源的、零加价的模型网关与路由器,把生产流量沉淀成可优化的资产。

图:Experiential 工作台,展示模型流量分布、调用方身份与花费统计
官方 README 把能力拆成三句话,逻辑相当清晰。第一层是统一接入:托管模型、BYOK(自带密钥)与本地模型全部通过同一个 OpenAI 兼容 API 暴露,OpenAI 与 Anthropic 两套协议都支持,指向 https://api.experientiallabs.ai/v1 就能把 Claude Code、Cursor、Codex、Aider 等现有编码代理整体改指向网关。
第二层是治理:控制哪个用户、哪个 Agent、哪个用例可以用哪个模型、花多少钱。安装向导会先让你选定供应商、模型与推理强度,然后落盘持久化,最后给出公开别名、身份和 50 美元的命令预算,并签发一次性密钥(xpl_ 前缀)。这个设计对多 Agent 团队很关键——成本控制从"月底看账单"变成了"发号时就能限额"。
第三层才是最有野心的部分:把生产流量变成你自己拥有的模型。用 exp build support-agent 从 trace 构建仿真环境并优化路由器,再用 exp optimize model support-agent 通过 Thinking Machines 的 Tinker 接口微调一个你拥有的开源模型。也就是说,网关不只是转发层,它同时是训练数据管道。
最有意思的设计是 exp capture。它通过 mitmproxy 在本机拦截 Claude Code 与 Codex 桌面端的请求,捕获到你已有的 ChatGPT 或 Claude 订阅所产生的 trace——请求本身仍然直接发往 OpenAI 或 Anthropic,网关只旁路记录。代价是必须 macOS、Python 3.13+,并授权扩展与证书。官方自己也很诚实:Capture 是实验性功能,macOS 网络可靠性仍在排查中。
这是一个工程严谨度相当高的项目。pyproject.toml 里几乎所有依赖都锁死到精确版本并逐条注释原因,比如 httpx2 明确锁在 2.12 以上是因为"OpenAI SDK 的响应解压安全下限",anyio 锁在 4.14.2 是为了避开 CVE-2026-63374,filelock 显式声明是为了跨平台的文件锁而非依赖 Unix 的 fcntl。这种把安全约束写进依赖树的写法,说明团队清楚供应链风险。
架构上分四层:exp/cli 是 Typer 命令行层;exp/runtime 承载网关、路由、抓包、Agent、模型、会话与两套协议适配;exp/simulation 做仿真,含 ingest、mining、reconstruction、retrieval、world_model、orchestration 与场景定义;exp/optimize 管评估、模型、路由器与仿真优化。真正的数据面由 Rust 编写的 exp-gateway-native 承载,可通过 maturin 本地构建。
测试是这仓库最亮的部分:约 757 个 _test.py 文件与被测模块同目录内联存放,另有 exp/tests 包,配合 pytest-xdist 并行执行;CI 有 gate、python-package、gateway-latency 三条流水线。代码规范用 ruff(line-length 100、启用 ANN、D 系列 docstring 规则)与 ty 类型检查,仓库还专门做了 Anthropic SDK 表面漂移门禁——SDK 升级时新请求字段会被显式归类为决策项,而不是静默 400。
本地起网关极其简单:pip install experiential 然后 exp,向导会带你走完选供应商、选模型、定预算、发密钥的全流程,之后就是标准的 curl http://127.0.0.1:8000/v1/chat/completions。Python API 更省事:with exp.load_router("my-project") as client: 拿到一个自带私有网关的官方 OpenAI 客户端,直接用 model="my-project" 调用。
门槛在于依赖面的复杂度:Python 3.12 起(capture 要 3.13+),要装 Rust 工具链才能构建原生扩展,要跑自训练得有 Tinker 权限,想抓包得在 macOS 上装证书并授权系统扩展。没有 Dockerfile 或 compose 文件,纯 pip 分发,企业内网镜像化需要自己补。仓库还提供了一份 HuggingFace 上的公开 terminal-tasks OTLP 数据集,不接自己的 trace 也能先跑通仿真流程。
最直观的观感是"零加价"作为核心卖点——网关层本身不抽成,这是对 LiteLLM、Portkey、Helicone 这类商业网关叙事的直接对标。但免费换来的是自运维成本:密钥安全、版本升级、许可证合规都得自己扛。
抓包能力的双刃剑属性很明显:一方面它让"用已有订阅喂模型"成为可能,显著降低了数据采集门槛;另一方面,官方也强调这不是攻击套件,capture 需要用户在自己的机器上授权证书。150 个 open issue 配上 0.7.x 的版本号,说明项目处于高频迭代期,接口与行为变更风险不低。
还有一点值得注意:默认开启的 PostHog 匿名遥测虽声明不含提示词与 trace,但对企业环境仍需显式 exp config telemetry disable 才算干净。
Experiential 代表了 LLM 网关从"流量代理"向"模型工厂"的跃迁。传统网关解决的是统一接入与成本可见,Experiential 往前多走了一步:既然网关已经掌握了对所有流量的一等观测权,那它天然具备成为专用模型训练与路由优化中枢的条件。"Train a specialized model you own" 这句话道出了社区当前最迫切的需求——不再被模型供应商的定价和版本变更牵着走。
对自建 Agent 基础设施的团队来说,这个项目提供了从 trace 采集、场景仿真、路由器优化到模型微调的完整闭环参考实现,而且是一个零加价、可完全自托管的起点。