海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

TavilyProxyManager 是一个针对 Tavily API 设计的开源透明反向代理系统。它的核心功能是将开发者手中的多个 Tavily API 密钥(Key)统一汇聚到一个代理池中,对外仅暴露一个自定义的 Master Key 进行安全鉴权。通过这种多账号池化管理机制,系统能够智能监测各个密钥的剩余额度并自动分配调用任务,有效解决了单个免费账号接口调用受限、并发频率低(Rate Limit)以及额度碎片化的问题。

除了代理转发基础功能,系统还内嵌了基于 Vue 3 打造的可视化 Web 管理面板,方便用户随时添加/移除 API 密钥、一键同步所有账号的剩余配额,并支持以图表形式直观呈现历史调用量与额度消耗趋势。由于采用完全透明的代理策略,TavilyProxyManager 兼容原版官方接口的所有请求路径及参数形式。针对 AI 辅助开发生态,系统原生提供了 HTTP MCP(Model Context Protocol)端点,使其可以开箱即用地无缝接入 Claude 桌面端、VS Code 智能插件等主流 AI 工作流体系。项目采用轻量化的 Go 语言单文件编译架构,搭配 Docker 容器化方案,在资源占用极低的前提下即可完成快速部署。

功能列表

  • 智能密钥池并发调度:整合录入的多个 Tavily API Key,自动判断各 Key 剩余额度。优先调用额度充裕的密钥,针对同等额度的密钥采用随机打散策略,大幅降低单一 Key 的并发访问压力,规避 429 请求超限错误。
  • 自动故障拦截与无缝切换:建立请求容灾机制,在向下游发起调用遇到 401(未授权)、429(请求过于频繁)、432/433 等官方异常状态码时,代理层将自动截获报错,并静默将该次请求切换至下一个健康的备用 Key 进行重试。
  • Web 可视化集中管理面板:内嵌完整的图形界面控制台(Vite + Vue 3),提供多账号的增删改查、批量同步最新额度信息的功能,同时使用趋势走势图展示请求量消耗与整体运行状态。
  • 全局请求日志审计:后台实时记录每一次经过代理转发的搜索请求和响应明细(包含状态码、消耗额度、耗时等)。支持使用条件过滤搜索历史日志,并自带长效存储的手动和自动清理机制。
  • 原生 HTTP MCP 端点支持:符合 Model Context Protocol 规范,系统内置 /mcp 端点服务,并支持有状态与无状态(Stateless)两种运行模式,极大地降低了 AI 智能体(Agent)和编辑器的网络搜索能力配置门槛。
  • Master Key 统一访问鉴权:客户端和业务代码无需关心底层连接了多少个 Tavily 账号,只需将 API 域名替换为代理地址,并通过一个总控 Master Key 发起标准的 Authorization: Bearer 认证即可调用。
  • 周期性自动运维任务:后台定时脚本将于每月 1 号自动触发额度重置逻辑,同时可自动清算过期废弃的日志数据,全程无需人工干预即可长期稳定运行。
  • 极致的轻量化部署:后端(Go 1.23+)与前端静态资源编译捆绑为一个极其精简的单一二进制执行文件,支持所有主流架构平台,结合 Docker Compose 可以做到一键拉起即用。

使用帮助

🛠️ TavilyProxyManager 详细安装与使用指南

为了让用户能够流畅管理和使用多个 Tavily API 额度,本使用指南将详细讲解从 Docker 环境搭建、配置文件设定、面板管理到 API 与 MCP 客户端对接的完整操作流程。

一、 推荐安装方式:基于 Docker Compose 的环境部署

由于项目采用将前后端打包为一个二进制文件的架构,使用 Docker 容器化部署是最高效且能够避免主机环境污染的方法。请确保您的服务器已安装 Docker 及 Docker Compose 插件。

1. 建立工程目录与配置文件
在服务器终端中创建一个新文件夹,并在该目录下创建名为 docker-compose.yml 的编排文件:

mkdir tavily-proxy && cd tavily-proxy
touch docker-compose.yml

2. 编写配置参数
使用文本编辑器打开 docker-compose.yml,填入如下内容并保存:

version: "3.8"
services:
tavily-proxy:
image: ghcr.io/xuncv/tavilyproxymanager:latest
container_name: tavily-proxy
ports:
- "8080:8080"
environment:
# 代理服务内部监听地址与端口
- LISTEN_ADDR=:8080
# 设定内置 SQLite 数据库的存储路径
- DATABASE_PATH=/app/data/proxy.db
# 上游 Tavily 官方 API 基准地址
- TAVILY_BASE_URL=https://api.tavily.com
# 请求超时断开时间
- UPSTREAM_TIMEOUT=30s
# MCP 模式,默认 true 代表无状态模式,防止客户端报会话丢失
- MCP_STATELESS=true
volumes:
# 将宿主机的 data 目录映射给容器,持久化存储数据库
- ./data:/app/data
# 映射系统时间以保障日志时区正确
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped

3. 启动并拉取镜像服务
运行以下命令启动容器。系统会自动从 Github Container Registry 获取最新版镜像。

docker-compose up -d

二、 获取核心凭据:生成 Master Key

TavilyProxyManager 为保证服务不被滥用,强制使用 Master Key 体系。在服务首次启动时,若数据库中为空,系统会自动生成一段高强度的随机 Master Key。

请通过查询容器日志获取这个初始管理密码:

docker logs tavily-proxy 2>&1 | grep "master key"

终端输出样例:

level=INFO msg="no master key found, generated a new one" key=sk_master_xxxxxx

⚠️ 重要提示:请立刻将这段 key= 后的字符串保存至您的密码管理器中。该密码既是登录 Web 监控面板的唯一口令,也是后续各种 API 请求头中所需携带的 Bearer Token。

三、 Web 可视化面板的基础操作

  1. 登录系统:在浏览器中访问您的服务器 IP 或绑定的域名(如 http://<服务器IP>:8080 )。在登录界面输入刚才截获的 Master Key 进入控制台。
  2. 添加代理密钥池
    • 登录后,导航至【Key 管理】(Key Management)模块。
    • 点击“新增 Key”,将您注册申请的多个 Tavily 免费或付费 API Key 逐一粘贴录入系统。
    • 录入完毕后,建议点击“同步额度”按钮,系统会并发去官方核实所有 Key 的有效性,并将【当前剩余调用配额】刷新至列表中。
  3. 监控使用情况:导航至【仪表盘】(Dashboard),可以直观地查看请求频次柱状图和系统成功率;【请求日志】(Logs)页面则留存了每一次搜索指令的具体耗时和命中状态,方便进行请求排查与审计。

四、 代码接入指引:REST API 透明代理模式

系统对外暴露的接口规范与 Tavily 官方文档 100% 保持一致,这意味着现有的各类开源项目均能实现零成本迁移。

核心改动点:

  • 将原本请求的 URL 从 https://api.tavily.com 更换为您部署的地址 http://<服务器IP>:8080
  • 鉴权信息换为刚才的 Master Key

CURL 测试示例代码:

curl -X POST "http://<服务器IP>:8080/search" \
-H "Authorization: Bearer <您的_MASTER_KEY>" \
-H "Content-Type: application/json" \
-d '{"query": "2026年最新AI模型架构解析", "search_depth": "basic"}'

注:系统充分兼容多种旧版传参习惯,无论你在 Payload 体内传入 {"api_key": "<MASTER_KEY>"} 或在网址末尾拼接 ?api_key=<MASTER_KEY> 均可被正确识别。

五、 进阶集成:MCP (Model Context Protocol) 协议接入

目前大量新型 AI 生产力工具(如 Claude Desktop 应用端、VS Code 中的 Cline 插件等)均基于 MCP 协议扩展工具调用能力。本代理原生集成该端点。

VS Code 配置修改案例(结合 mcp-remote 使用):
在您的 VS Code MCP 配置文件中添加如下 Server 节点:

{
"servers": {
"tavily-proxy": {
"command": "npx",
"args":[
"-y",
"mcp-remote",
"http://<您的服务器IP>:8080/mcp",
"--header",
"Authorization: Bearer <您的_MASTER_KEY>"
]
}
}
}

工作原理说明:默认启用的 MCP_STATELESS=true 环境变量旨在让代理保持无状态连接。因为 MCP 协议本意维持持续的 SSE / WebSocket 状态,但跨网络及反向代理转发极易导致 Session ID 断联从而报错 session not found。在无状态模式下,每次指令均为独立调用,保障了 AI 工具长连接时的极致稳定性。

应用场景

  1. AI应用研发团队额度池化管理
    小型研发团队在搭建重度依赖搜索引擎的智能体(Agent)工作流时,Tavily 官方免费版的额度不足以支撑调试频次。开发人员可通过注册多个测试账号获取 Key 并统一注入系统,将碎片化额度聚合成海量配额池,无需中途修改底层业务代码。
  2. 高并发业务场景防封锁与重试策略
    在大批量爬取搜索结果、或遭遇突发大流量调用搜索能力时,单个 Tavily Key 容易命中速率限制(Rate Limit)从而导致 429 报错中断流程。部署该系统作为中继层,依靠其平滑的随机打散算法与错误自动 Failover 切换补偿功能,可将并发阻塞和任务失败率降至最低。
  3. 沉浸式 AI 辅助编程生态集成
    开发者在本地使用 IDE(如 Cursor, VS Code)搭配 AI 编码助手编写需要结合最新互联网文档的代码时,只需利用 MCP 节点将 TavilyProxyManager 地址注册进 IDE。此后 AI 模型将自主进行检索操作,开发者能通过 Web 面板清楚审查 AI 是否过度消耗 API,增强计费透明度。
  4. 企业级共享调用接口审计监控
    企业内网统一提供一个 Master Key 给各部门开发者使用。IT 管理员通过监控后台的用量统计和日志数据,定位存在死循环异常调用的服务端脚本,同时自动执行每月额度重估计算,满足企业化资产复用与内控需求。

QA

  1. 由于 Tavily 官方经常升级接口(如新增高级搜索参数),代理工具会因不兼容而报错吗?
    答:不会出现不兼容情况。系统采取“透明化无损透传”的代理哲学,代码层仅对 Authorization 头及代理分发逻辑作介入处理。业务请求发送的特定 URL 路径、请求体内的任意自定参数均原封不动路由至官方 API,故而拥有对上游升级前瞻性的免疫与完全兼容力。
  2. 我通过终端找不到最初生成的 Master Key 怎么办,面板还能登录吗?
    答:初始的 Master Key 是服务存续的唯一超级凭据。如果控制台日志已被滚动覆盖,您可以将映射在宿主机的 /data/proxy.db(SQLite数据库文件)下载至本地,使用诸如 SQLiteStudio 的工具打开查阅相关设置表,即可直接找回或将其修改为您自己自定义的密文密码。
  3. MCP 接入时为什么偶发请求失败或频繁断开连接?
    答:通常是因为网络波动引起有状态连接中断造成的。建议首先确认 docker-compose.yml 中的环境变量 MCP_STATELESS=true 是否生效;如果您在代理容器前还额外嵌套了一层 Nginx/Caddy 等自建网关服务,请确保网关端不拦截特定的请求头部,且对于 SSE 响应格式不要做暴力缓冲截断。
  4. 同等剩余额度的不同 Key,是如何处理轮询策略的?
    答:系统在调度时如果判断多个处于可用状态的 Key 拥有相同的最高额度数值,将跳出简单的顺序分配,而采用系统底层的随机打散算法(Random Shuffle)进行派发。此举最大程度避免了请求固定路由在头几个 Key 从而单点触碰官方每秒并发控制(QPS 阈值)。
0已收藏
0已赞
🍐 鸭梨AI文章智能写手
选题→写作→发布
全自动!
WordPress AI 写作插件
500+ 内容创作者在用
🎯智能选题:批量生成,告别枯竭
🧠检索增强:联网+知识库,有深度
全程自动:写作→配图→发布
💎永久免费:免费版 = 付费版,无限制
🔥 立即免费下载插件
✅ 永久免费 · 🔓 100% 开源 · 🔒 数据本地存储

相关推荐

找不到AI工具?在这试试!

输入关键词,无障碍访问必应搜索,快速找到本站 AI 工具。

回顶部