面向AI编码代理的本地控制平面。 按工程师计费 · 硬预算 · 出站治理 · 上下文膨胀可观测性 · 审计就绪导出 —— 全部位于您的VPC内。
Conduit 位于您的 AI 编码代理(Claude Code、Cursor、Codex、Aider)与您已使用的任何提供商(Anthropic、OpenAI、Bedrock、Azure —— 或您现有的 LiteLLM / Portkey 部署)之间。只需一个环境变量即可接入,客户端无需更改,提示和补全内容永不存储。
[Claude Code / Cursor / Codex]
│ ANTHROPIC_BASE_URL=https://conduit.yourco.dev
▼
[Conduit] vk_live_…(按工程师)
│ 计量 · 预算 · 治理 · 审计 · 上下文膨胀
▼
[LiteLLM / Portkey / 直接提供商]
│
▼
[Anthropic / OpenAI / Bedrock / Azure]
概览 —— 一眼掌握消费、缓存节省、令牌数、被阻止请求和治理标志。

硬预算强制 —— 超出限额时,网关返回 402,请求在到达提供商之前被阻止。

出站治理 —— 携带 AWS 密钥的请求被阻止,返回 451;仅记录类别,从不记录值。

活动 —— 每个请求带有不同状态:成功 · 缓存命中 · 速率受限 · 模型阻止 · 预算超额 · 治理阻止。

设置 —— 对组织、提供商凭证、团队、预算和虚拟密钥进行完整的增删改查。

Bedrock / Vertex / Azure 私有端点及无训练 BAA 解决了与供应商的通道问题。但它们无法告诉财务部门是谁花了那 4 万美元,无法在出站时捕获密钥,无法为审计提供记录,也无法显示上下文膨胀正在消耗您的令牌预算。这正是 Conduit 填补的空白 —— 且无需接触您的提示。
从 GHCR 拉取最新的签名镜像(可通过 cosign verify 验证,详见安全状态)。
# 1. 获取 compose 文件 + 环境模板(无需完整克隆)
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/.env.example -o .env
# 2. 生成真实的主加密密钥
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
# 3. 拉取签名镜像并启动
docker compose --profile app pull
docker compose --profile app up -d
# 4. 运行迁移并导入定价手册(一次性)
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
# → 打开 http://localhost:3000/setup → 创建组织 / 凭证 / 团队 / 虚拟密钥
通过在执行 up 之前导出 GATEWAY_IMAGE 和 CONTROL_PLANE_IMAGE 来固定到特定版本:
export GATEWAY_IMAGE=ghcr.io/anee769/conduit-gateway:v0.1.0
export CONTROL_PLANE_IMAGE=ghcr.io/anee769/conduit-control-plane:v0.1.0
git clone https://github.com/anee769/conduit && cd conduit
cp .env.example .env
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
docker compose --profile app up -d --build
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_AUTH_TOKEN=vk_live_… # 来自 /setup 的虚拟密钥
claude # 或 cursor / codex / aider
完整的从零开始教程在 INSTALL.md 中。
LiteLLM 在模型别名和路由方面非常出色 —— Conduit 增加了安全团队和财务团队要求的层次。Portkey 功能重叠最接近,但一旦需要治理和本地部署,即变为闭源企业版。Helicone 仅为可观测性(它告诉你令牌去了哪里;但不能控制令牌的去向)。
SECURITY.md。/invoke 正常工作。Conduit 完全运行在您自己的云中 —— 请求路径中无供应商,无电话回家,可气隙部署。参见 SECURITY.md 获取完整白皮书(数据流图、存储内容、加密、失败关闭认证、合规状态、威胁模型)。
v* Git 标签发布到 ghcr.io/anee769/conduit-gateway 和 ghcr.io/anee769/conduit-control-plane(参见 .github/workflows/release.yml)。验证任何发布的标签:
cosign verify ghcr.io/anee769/conduit-gateway:<tag> \
--certificate-identity-regexp 'https://github.com/anee769/conduit' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
bash scripts/sbom.sh 在本地生成 SBOM。apps/gateway —— 基于 Hono on Node,热路径数据平面。无需构建步骤(tsx)。零依赖 ClickHouse 客户端 + ioredis。apps/control-plane —— Next.js 15 / React 19 仪表板 + 管理 API + 首次运行 /setup 向导。packages/db —— Drizzle 模式,AES-256-GCM 加密,密钥哈希,定价 + 预算。usage_events)+ Redis(缓存 + 速率限制 + 实时预算计数器)。请求生命周期(apps/gateway/src/routes/proxy.ts):
认证(vk)→ 速率限制 → 模型允许列表 → 预算检查
→ 治理扫描(T1 密钥 + T2-lite 实体)
→ 缓存查找 → 解析凭证 → adapter.prepare()
→ 转发 + 分流流(客户端不受影响;计量分支在后台进行)
bash scripts/run-tests.sh # 完整单元 + 实时系统套件(72 项测试)
bash scripts/run-tests.sh --unit-only # 纯逻辑,无需 Docker 栈
pwsh scripts/run-tests.ps1 # Windows 等效命令
CI(.github/workflows/ci.yml)在每个 PR 上运行两个作业 —— 仅在绿色通过时合并。
欢迎提交 PR。快速路径:
git checkout -b feat/my-change
# …
bash scripts/ci-local.sh # 运行与 CI 相同的检查
bash scripts/ci-local.sh --fast # 仅类型检查和单元测试,无需 Docker
git push -u origin feat/my-change
gh pr create --base dev
分支流程:功能分支 → dev → master。合并前必须通过 CI。
Apache License 2.0 —— 与 Kubernetes、Terraform、Kafka 相同的许可证。可商业使用、修改、分发;但请勿声称 Conduit 为您的原创作品。
SECURITY.mddocs/run-with-litellm.mdINSTALL.md| 您当前运行的 | 将 Conduit 的上游配置为 |
|---|
| LiteLLM(任何模型,任何提供商) | UPSTREAM_ANTHROPIC_URL=http://litellm:4000 → 完整教程:docs/run-with-litellm.md |
| Portkey | 将 UPSTREAM_OPENAI_URL / UPSTREAM_ANTHROPIC_URL 指向您的 Portkey 基础 URL |
| 直接使用 Anthropic / OpenAI | 默认 —— 无需配置 |
| AWS Bedrock | 在 /setup 中配置 Bedrock 凭证;Conduit 使用 SigV4 签署请求 |
| Azure OpenAI | 在 /setup 中配置 Azure 凭证(部署名称 + api-version) |
| Conduit | LiteLLM | Portkey | Helicone |
|---|
| 开源许可证 | Apache 2.0 | MIT | Apache 2.0(网关) | MIT |
| 完全在本地 / 您的 VPC 内运行 | ✅ | ✅ | ✅(企业版) | ✅(自托管) |
| 提供商路由 + 别名 + 回退 | ✅(任何上游) | ✅ | ✅ | ❌ |
| 按工程师成本归属(带名称的虚拟密钥) | ✅ | 部分(主密钥共享账单) | ✅ | ✅(仅观测) |
| 硬预算(失败关闭 402) | ✅ | 部分 | ✅ | ❌ |
| 出站治理(密钥 + 按组织实体允许列表,警报→阻止) | ✅ | ❌ | ✅(护栏) | ❌ |
| 审计就绪 CSV/JSON 导出(仅元数据) | ✅ | ❌ | 部分 | ✅ |
| 上下文膨胀可观测性(按输入令牌大小的成本与错误率曲线) | ✅ | ❌ | ❌ | ❌ |
| 提示 / 补全永不存储 | ✅ | 默认记录 | 可配置 | 默认记录 |
| 签名发布版本 + CycloneDX SBOM | ✅ | ❌ | ❌ | ❌ |
| 设计为置于其他工具之上 | ✅ | 不适用 | 不适用 | 不适用 |