Tavily Hikari 不是 Tavily 官方服务的替代品,而是部署在你自己的 Tavily key 前面的代理与控制层。
它负责这些事:
/mcp 和 /api/tavily/*th-<id>-<secret> token真实的 Tavily key 仍然由你自己持有,并由管理员面管理。
如果你希望保留密钥池、请求审计和额度控制,就应该把客户端指向 Tavily Hikari,而不是直接发官方 Tavily key。
/mcp,什么时候用 /api/tavily/*/mcp:给 Codex CLI、Cursor、Claude Desktop、VS Code 这类 MCP 客户端使用/api/tavily/*:给 Cherry Studio、脚本、自定义后端这类直接走 HTTP JSON API 的客户端使用如果你的客户端配置界面只要求 Base URL + API key,通常就是走 /api/tavily/*。
不一定,但你至少需要一种管理员访问策略。
DEV_OPEN_ADMIN=true:只适合本地或临时调试如果没有任何管理员访问策略,你虽然能把服务跑起来,但没法稳定管理上游 key。
不一定。
Linux DO OAuth 主要解决的是“终端用户登录并自动绑定 Hikari token”这件事。如果你的部署只是管理员内部使用,或者 token 由管理员手动发放,可以先不启用它。
长期数据主要保存在 SQLite。
--db-path / PROXY_DB_PATH/srv/app/data/tavily_proxy.db这份数据库通常会保存 key 状态、用户 token 绑定、请求审计和其他运营相关数据,所以部署时要先想清楚持久化方案。
如果你要接客户端或部署服务,看文档站;如果你要核页面表现,看 Storybook。
/admin 打不开,或 /api/keys 返回 401这通常说明管理员访问策略没有配置完整。
先按下面顺序排查:
ADMIN_AUTH_FORWARD_ENABLED=trueFORWARD_AUTH_HEADER 与 FORWARD_AUTH_ADMIN_VALUE 已配置ADMIN_AUTH_BUILTIN_ENABLED=trueADMIN_AUTH_BUILTIN_PASSWORD_HASH 已配置ADMIN_AUTH_FORWARD_ENABLED=falseDEV_OPEN_ADMIN=true补充一点:仓库根目录自带的 docker-compose.yml 只会启动 Hikari 本体,不会自动替你配置管理员入口。
/api/tavily/* 返回 401 Unauthorized优先检查 token 是否真的按 Hikari 规则传入:
Authorization: Bearer th-<id>-<secret>POST /api/tavily/* 这类 JSON 请求,也可以在 body 里放 api_keyGET /api/tavily/usage 和 GET /api/tavily/research/:request_id,应使用 Authorization 头如果你本地用了 DEV_OPEN_ADMIN=true,那只是开发回退路径,不是正式接入方式。
/api/tavily/* 返回 429 Too Many Requests这通常意味着:
先看用户控制台,或者调用 GET /api/tavily/usage 确认当前使用情况;需要时再由管理员调整额度、标签或发放新的 token。
/api/tavily/* 返回 502 Bad Gateway最常见的原因有两个:
先检查:
TAVILY_UPSTREAM 与相关上游地址配置是否正确这通常不是逻辑问题,而是 SQLite 没有持久化。
你需要确认:
PROXY_DB_PATH 指向的目录是持久卷或宿主机挂载目录如果你用的是默认容器路径,至少要把 /srv/app/data 持久化出来。
docker compose up -d 跑起来了,但首页看不到管理员入口这是预期行为,不是 bug。
仓库根目录的 docker-compose.yml 只负责把 Hikari 拉起来,不会自动启用:
如果你要在这个基础上继续操作,请再补一层管理员访问模型。最短路径看 部署与高匿名。
本地交叉跳转依赖两个开发服务都在:
http://127.0.0.1:56006http://127.0.0.1:56007如果你只启动了其中一个,本地回链自然会失败。GitHub Pages 上的最终发布面不会依赖这两个本地端口。
重点看请求审计里的这些字段:
forwarded_headersdropped_headers如果你要看完整设计背景,再去读仓库里的
docs/high-anonymity-proxy.md。