@ agent-relay/ creditial- 代理服务器
上游LLM供应商的JWT认证认证代理. 让我们的沙盒 代理调用提供者 API( OpenAI, Anthropic, OpenRouter) 而不给定 原始供应商证书——代理机持有钥匙,代理机按会场显示 JWTs,和代理执行每个证书符号预算.
这是什么
一个Hono应用程序加上几个帮手:
createCredentialProxyApp(options)——挂载 HTTP 路由器(/health, (中文(简体) ),/usage,下面有一个覆盖所有供应商的前进路线*) (中文(简体) ). 用这个 直接在节点(通过)@hono/node-server或把它绑入云层 劳工.mintProxyToken(...)编号 :verifyProxyToken(...)- JWT的帮助者joseHS256 默认,观众relay-llm-proxy。 。 。 .MeteringCollector+ 键checkBudget- 模拟使用会计 悲观的保留,使同时提出的请求不能绕过宣布的保留 预算.- 提供方适配器
providers/- 将收到的JWT索赔翻译为 更正上游 HTTP 对 OpenAI / Anthropic / OpenRouter 的请求.
环境变量
运行时需要( 代理主机) :
| 变量 | 目的 |
|---|---|
CREDENTIAL_PROXY_JWT_SECRET | HS256 秘密使用代理来验证每个会场的JWT. |
CREDENTIAL_PROXY_ADMIN_JWT_SECRET | 管理范围符号的秘密(例如 /usage 结束点). |
CREDENTIAL_PROXY_ADMIN_AUDIENCE | 观众声称代理机需要管理令牌. |
OPENAI_API_KEY | OpenAI 提供者适配器的上游证书. |
ANTHROPIC_API_KEY | Anthropic供应商适配器的上游证书. |
OPENROUTER_API_KEY | OpenRouter 提供者适配器的上游证书. |
只有您实际转发的提供者密钥需要设置—— 缺少密钥
表面为 502 credential_unavailable 在相关路线.
代理方(无论哪一种加工薄荷符号并发射沙盒CLI)
用途 CREDENTIAL_PROXY_JWT_SECRET 并把它们放进经纪人的
环境 CREDENTIAL_PROXY_TOKEN (别名: RELAY_LLM_PROXY_TOKEN+) 加上 (中文(简体) )
RELAY_LLM_PROXY 编号 : RELAY_LLM_PROXY_URL 所以,SDK's proxy-env 帮助者可以
每CLI电线 OPENAI_BASE_URL 编号 : ANTHROPIC_BASE_URL 超载.
使用量
import { serve } from '@hono/node-server';
import { createCredentialProxyApp } from '@agent-relay/credential-proxy';
const app = createCredentialProxyApp({
// Defaults to process.env.CREDENTIAL_PROXY_JWT_SECRET / ADMIN_JWT_SECRET.
});
serve({ fetch: app.fetch, port: Number(process.env.PORT ?? 3001) });
对于SDK侧线让工作流程代理透明地使用代理,
见 @agent-relay/sdk/workflows代理代理服务器
模块 编辑 credentialProxy 打开
SwarmConfig。 。 。 .
发展
npm run build # tsc → dist/
npm run test # vitest
npm run dev # builds then runs the proxy on PORT (default 3001)