Manifest是个人AI代理(如OpenClaw、Hermes或任何支持OpenAI兼容HTTP API的工具)的智能模型路由器。它位于您的代理和LLM提供商之间,对每个请求进行评分,并将其路由到能够处理该请求的最便宜模型。简单问题分配给快速、低成本的模型,复杂问题分配给更专业的模型。无需额外操作即可节省成本。
支持300+模型,涵盖OpenAI、Anthropic、Google Gemini、DeepSeek、xAI、Mistral、Qwen、MiniMax、Kimi、Amazon Nova、Z.ai、OpenRouter、Ollama以及任何支持OpenAI兼容API的提供商。通过API密钥连接,或在支持的情况下复用现有付费订阅(如*** Plus/Pro、Claude Max/Pro、GLM Coding Plan等)。
| 特性 | Manifest | OpenRouter |
|---|---|---|
| 架构 | 您的Manifest实例直接转发至您的提供商 | 云代理,所有流量经过其服务器 |
| 成本 | 免费 | 每笔API调用收取5%费用 |
| 源代码 | MIT许可,完全开源 | 专有 |
| 数据隐私 | 自托管,无中间方 | 提示和响应经过第三方 |
| 透明度 | 开放评分机制,可查看模型选择原因 | 路由决策不可见 |
以下三种安装方式,按从简单到手动的顺序排列。所有方式最终都会在http://localhost:3001启动服务,您可以在此注册账号。创建的第一个账号将成为管理员,无预设演示凭据。
网络绑定注意事项:默认的compose文件将端口3001绑定到
127.0.0.1,因此控制台仅可在主机上访问,无法通过局域网访问。如需暴露到局域网外,请参见自定义端口。
单命令安装。安装程序会下载compose文件、生成密钥并启动服务。启动过程约需30秒。
bashbash <(curl -sSL https://raw.githubusercontent.com/mnfst/manifest/main/docker/install.sh)
下载脚本:
bashcurl -sSLO https://raw.githubusercontent.com/mnfst/manifest/main/docker/install.sh
查看脚本(可选):
bashless install.sh
运行脚本:
bashbash install.sh
可用标志:--dir <路径>指定安装目录,--dry-run预览安装过程,--yes跳过确认提示。
与安装脚本流程相同,但需手动操作,以便在启动前编辑配置。
bashcurl -O https://raw.githubusercontent.com/mnfst/manifest/main/docker/docker-compose.yml curl -O https://raw.githubusercontent.com/mnfst/manifest/main/docker/.env.example cp .env.example .env
.env,将BETTER_AUTH_SECRET设置为随机字符串。可通过以下命令生成:bashopenssl rand -hex 32
(可选:如需使用更强的数据库密码,需同时在.env中设置POSTGRES_PASSWORD和DATABASE_URL,两者必须一致,且密码中的特殊字符需在URL中进行百分比编码。)
bashdocker compose up -d
启动过程约需30秒。
停止服务:
bashdocker compose down # 保留数据 docker compose down -v # 删除所有数据
如果您已运行PostgreSQL,将user、pass和host替换为实际数据库凭据,然后在终端运行以下命令:
bashdocker run -d \ -p 3001:3001 \ -e DATABASE_URL=postgresql://user:pass@host:5432/manifest \ -e BETTER_AUTH_SECRET=$(openssl rand -hex 32) \ -e BETTER_AUTH_URL=http://localhost:3001 \ -e AUTO_MIGRATE=true \ manifestdotbuild/manifest
powershell$secret = -join ((48..57 + 97..122) | Get-Random -Count 64 | ForEach-Object { [char]$_ }) docker run -d ` -p 3001:3001 ` -e DATABASE_URL=postgresql://user:pass@host:5432/manifest ` -e BETTER_AUTH_SECRET=$secret ` -e BETTER_AUTH_URL=http://localhost:3001 ` -e AUTO_MIGRATE=true ` manifestdotbuild/manifest
使用可信工具生成64字符十六进制密钥,然后:
cmddocker run -d ^ -p 3001:3001 ^ -e DATABASE_URL=postgresql://user:pass@host:5432/manifest ^ -e BETTER_AUTH_SECRET=<您的64字符密钥> ^ -e BETTER_AUTH_URL=http://localhost:3001 ^ -e AUTO_MIGRATE=true ^ manifestdotbuild/manifest
AUTO_MIGRATE=true会在首次启动时运行数据库迁移。然后打开http://localhost:3001并注册账号。创建的第一个账号将成为管理员。
发布的镜像使用cosign无密钥签名(Sigstore)。拉取前可验证:
bashcosign verify manifestdotbuild/manifest:<version> \ --certificate-identity-regexp="^https://github.com/mnfst/manifest/" \ --certificate-oidc-issuer="https://token.actions.githubusercontent.com"
若端口3001被占用,需同时修改端口映射和BETTER_AUTH_URL:
bashdocker run -d \ -p 8080:3001 \ -e BETTER_AUTH_URL=http://localhost:8080 \ ...
或在docker-compose.yml中:
yamlports: - '127.0.0.1:8080:3001'
并在.env中:
envBETTER_AUTH_URL=http://localhost:8080
默认compose文件仅将端口3001绑定到127.0.0.1,控制台仅可从主机访问,无法从局域网其他机器访问。如需暴露到局域网:
docker-compose.yml,将ports行从"127.0.0.1:3001:3001"改为"3001:3001"。.env中,将BETTER_AUTH_URL设置为访问控制台的主机地址,例如http://192.168.1.20:3001或https://manifest.mydomain.com。该地址必须与浏览器中的URL匹配,否则Better Auth会因“无效源”拒绝登录。docker compose up -d应用更改。若登录页面显示“无效源”,说明BETTER_AUTH_URL与访问控制台的URL不匹配,主机和端口都需一致。
每个版本发布时包含以下标签:
{major}.{minor}.{patch} - 完全固定版本(如5.46.0){major}.{minor} - 次版本内的最新补丁(如5.46){major} - 主版本内的最新次版本+补丁(如5)latest - 最新稳定版本sha-<short> - 精确提交版本(用于回滚)镜像支持linux/amd64和linux/arm64架构。
Manifest每次发布都会更新镜像。如需升级现有compose安装:
bashdocker compose pull docker compose up -d
数据库迁移会在启动时自动运行,无需手动操作。pgdata卷中的数据在升级过程中会保留。若需控制主版本升级时机,可在docker-compose.yml中固定主版本标签(如manifestdotbuild/manifest:5)。
所有状态存储在postgres服务中挂载于/var/lib/postgresql/data的pgdata命名卷中。Manifest容器中无其他状态数据。
备份(在主机上,服务运行时):
bashdocker compose exec -T postgres pg_dump -U manifest manifest > manifest-backup-$(date +%F).sql
恢复到新服务:
bashdocker compose up -d postgres cat manifest-backup-2026-04-12.sql | docker compose exec -T postgres psql -U manifest manifest docker compose up -d
手动列出/删除卷:
bashdocker volume ls | grep pgdata docker compose down -v # ⚠ 销毁所有数据
| 变量 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
DATABASE_URL | 是 | -- | PostgreSQL连接字符串 |
BETTER_AUTH_SECRET | 是 | -- | 会话签名密钥(至少32字符) |
BETTER_AUTH_URL | 否 | http://localhost:3001 | 公共URL,使用自定义端口时需设置 |
PORT | 否 | 3001 | 内部服务器端口 |
NODE_ENV | 否 | production | 设置为development启用自动迁移 |
SEED_DATA | 否 | false | 启动时植入演示数据 |
完整环境变量参考:https://github.com/mnfst/manifest
https://github.com/mnfst/manifest/blob/main/LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务