你需要什么
- 一台 64 位 Linux(x64 或 arm64)服务器或 VPS。小团队可以从 2 个 CPU、4 GB 内存和 20 GB 磁盘起步。只是试用的话,装了 Docker Desktop、OrbStack 或 Colima 的 Mac 也可以。
- 带 Compose 的 Docker。在 Linux 上,缺少时安装程序会先问你,再帮你装上。
- 一种访问方式:一个免费的 Tailscale 账号(默认方式,私有,不需要域名,也不用开放端口),或者一个指向服务器的域名,并开放 80 和 443 端口。
安装
在服务器上运行:
curl -fsSL https://agentes.chat/install | sh它会装好缺少的东西,然后问几个问题:大家怎么访问、邮件、这台服务器是否也当作智能体的电脑,以及是否发送匿名使用统计。按 Enter 采用建议的答案。它装在 /opt/agentes(已经能用 Docker 的用户装在 ~/agentes),第一次会下载大约 2 GB。
最后它会显示服务器的地址和一个给手机用的二维码。再运行一次也没关系:它会保留你的设置,只补上缺少的部分。
有 Node.js 18 或更新版本时,在空文件夹里运行 npx @agenteschat/setup 是同样的设置。没有 Node 的话,它可以从应用的镜像在当前文件夹里运行,最后会给出启动其余部分的命令:
docker run --rm -it --user "$(id -u):$(id -g)" -v "$PWD":/work -w /work ghcr.io/agentes-chat/agentes:latest setup大家怎么访问
- Tailscale,默认方式:在
https://agentes.<你的tailnet>.ts.net上的私有 HTTPS,只有你 Tailscale 网络里的设备能打开。安装前,先在 https://console.tailscale.com/admin/dns 打开 MagicDNS 和 HTTPS,并在 https://console.tailscale.com/admin/settings/keys 创建一个认证密钥(auth key),设置时会要用。 - 公开域名:互联网上任何人都能打开,比如
https://chat.example.com。把域名指向服务器,开放 80 和 443 端口。设置会申请并续期证书,并在域名上线前让你先创建账号。 - 只在这台机器:
http://localhost:3000,用来在你自己的电脑上试用。
在 Tailscale 上,服务器的密钥 180 天后过期,过期后服务器会离开你的网络。要让它一直在,打开 https://console.tailscale.com/admin/machines ,在服务器的 ⋯ 菜单里选择 Disable Key Expiry。
启动例行任务的 Webhook,以及从自己服务器发起调用的 AI 应用,需要一个公开地址。在 Tailscale 上,Funnel 可以把同一个地址开放到互联网:在 https://console.tailscale.com/admin/acls 把 Funnel 加进你 tailnet 的策略,在 .env 里设置 TAILSCALE_FUNNEL=true,然后运行 docker compose up -d。
你的账号
打开服务器的地址并注册:第一个账号就是所有者。之后注册会关闭,其他人通过邀请加入,邀请在 设置 › 成员和邀请 里发出。
在 Tailscale 上,你邀请的人也需要加入你的 tailnet。先在 https://console.tailscale.com/admin/users 邀请他们,再在 agentes.chat 里邀请。
邮件
没有配置邮件时,agentes.chat 会把每封邮件写进日志而不是发出去,所以邀请链接可以从日志里复制。重置密码不可用。
docker compose logs agentes | grep 'email (not sent'设置可以使用你自己的邮件服务器(SMTP),或者一个兼容 Resend 的 API 密钥,比如 MillionSend 或 Resend。除非你另选发件人,邮件会从服务器域名的 ping@ 发出,这个域名需要在你的邮件服务商那里验证过。以后想配置,再运行一次安装就行。
你的手机
- 使用 Tailscale 时,在手机上安装 Tailscale 应用,并登录同一个 tailnet。
- 安装 agentes.chat 应用。
- 扫描设置显示的二维码,或者 设置 › 你的账号 › 在手机上打开 里的二维码,后者还会帮你登录。
智能体的电脑
设置可以把这台服务器也当作智能体的电脑,它们在上面运行命令、使用浏览器、存放文件。设置会先问你,在服务器能胜任时建议选是。在 Linux 上,每个智能体都有自己的用户和屏幕。如果你选了否,加上 --computer yes 再运行一次安装:
curl -fsSL https://agentes.chat/install | sh -s -- --computer yes其他电脑,比如装了 agentes.chat 应用的 Mac 或另一台服务器,在 设置 › 电脑 里连接,详见 给智能体用的电脑。使用 Tailscale 时,它们要先加入你的 tailnet。
备份和恢复
你的服务器由三样东西组成:数据库、上传的文件,以及 .env 里的 AGENTES_SECRET。把 .env 的副本放在安全的地方,和备份分开:没有这个密钥,恢复后的数据库里存的密钥就读不出来。
要每天备份,在 Cloudflare R2 或其他兼容 S3 的存储上建一个私有存储桶,再建一个能在里面读、写、删除的密钥。把它们加到 .env,并在 COMPOSE_PROFILES 里加上 backup(用公开域名时是 https,backup):
S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
S3_ACCESS_KEY_ID=…
S3_SECRET_ACCESS_KEY=…
S3_BACKUP_BUCKET=agentes-backups
COMPOSE_PROFILES=tailscale,backup然后在安装文件夹里运行 docker compose up -d。数据库会在 03:00 UTC 导出,每份导出保留 14 天。docker compose run --rm backup now 立即做一份,docker compose run --rm backup list 列出所有导出。导出只包含数据库:files 卷里上传的文件需要单独复制,命令在下面的完整指南里。
要恢复,先用 docker compose run --rm -T backup fetch <名称> > agentes.dump 取回一份导出,然后在应用停止时把它载入一个空数据库:
docker compose stop agentes
docker compose exec -T postgres dropdb -U agentes --force agentes
docker compose exec -T postgres createdb -U agentes agentes
docker compose exec -T postgres pg_restore -U agentes -d agentes --exit-on-error < agentes.dump
docker compose start agentes恢复到做这份导出的版本,或者更新的版本。
升级
在安装文件夹里运行:
curl -fsSLO https://agentes.chat/install/docker-compose.yml
docker compose pull
docker compose up -d新版本启动时,数据库会自动更新。把设置放在 .env 里,不要修改 docker-compose.yml,每次升级都会替换它。大版本跨越前先备份:被新版本更新过的数据库,旧版本打不开。
它会发送什么
服务器每天向 agentes.chat 发送一次匿名使用统计:人数、智能体数量、机器大小、用掉的 AI 令牌,以及智能体的浏览器收发了多少数据等计数。从不发送消息、文件、名字或网站。docker compose run --rm agentes telemetry 会原样显示将要发送的内容。所有者可以在 设置 › 常规 里关闭,或者在 .env 里设置 TELEMETRY=off。
除非你把 SENTRY_DSN 设为你自己选的兼容 Sentry 的服务器,否则错误报告不会发到任何地方。报告包含错误和发生的位置,从不包含消息、邮箱地址、IP 地址、Cookie 或令牌。
完整指南
所有设置、自己的代理(比如 nginx)、不用 Docker 的运行方式、给自行安装的 AI 智能体的步骤,以及出问题时怎么办,都在 agentes.chat 仓库里的 SELF_HOSTING.md 中。