Center + Worker 的完整安装、Bootstrap、升级与卸载流程。
agent-center 是单一 Go binary(Web Console React SPA 通过 go:embed 内嵌),无额外依赖。
下载对应平台的 release tarball(命名格式 agent-center-<os>-<arch>-<version>-<sha>),解压后运行:
tar xzf agent-center-v2.15.0-darwin-arm64.tar.gz
cd agent-center-v2.15.0-darwin-arm64/
./install center
默认 prefix:~/.agent-center(macOS / Linux user mode)或 /opt/agent-center(Linux system mode)。可用 --prefix=<dir> 覆盖。
git clone https://github.com/oopslink/agent-center.git
cd agent-center
make build # = build-frontend + build-backend
# 产物 → ./bin/agent-center (~17-18 MB)
构建完成后手动安装:
./bin/agent-center install center
# 交互式向导(询问 mode、version、prefix)
curl -fsSL https://raw.githubusercontent.com/oopslink/agent-center/main/install.sh | bash
# 固定版本安装(推荐生产使用)
curl -fsSL https://raw.githubusercontent.com/oopslink/agent-center/v2.15.0/install.sh \
| bash -s -- center --version v2.15.0
install center 默认只部署文件与配置,打印前台启动命令:
agent-center server --config=<prefix>/etc/config.yaml # 日志输出到 stdout
如需注册后台服务(开机自启动),加 --service:
./install center --service # macOS → LaunchAgent,Linux → systemd unit
install center 是幂等且 upgrade-aware 的:重复运行相同版本会跳过;新版本会执行升级。| 默认端口 | 地址 | 用途 |
|---|---|---|
| Web Console | 127.0.0.1:7100 | 浏览器打开 |
| Center server | :7050 | 内部服务端口 |
| Admin TCP | 0.0.0.0:7300 | Worker enroll / 连接 |
:7050。如遇端口冲突,请关闭 System Settings → General → AirDrop & Handoff → AirPlay Receiver。Worker 可以部署在与 center 同一台机器,也可以部署在任意其他开发机上。
在 Web Console 点击 "+ Add Worker",输入名称,复制生成的命令(含 bootstrap URL、enroll token、server fingerprint):
./install worker \
--bootstrap=tcp://HOST:7300 \
--server-fingerprint=sha256:... \
--token=enroll_... \
--worker-id=worker-... --worker-name="my box"
install worker 自动检测当前平台:
--service 时)--service 时)默认前台模式,打印启动命令:
agent-center worker run --config=<prefix>/etc/config.yaml
同一台机器可安装多个 worker,每个使用独立子目录(<prefix>/workers/<worker-id>/)。加 --service 时各自获得独立的 service label(com.agent-center.worker.<worker-id>),互不冲突。
~/.agent-center-worker/
├── config.yaml # mode=worker 配置(v2.7.1 起为 single source of truth)
├── session-token # 长期 session token(enroll 后写入)
├── daemon.sock # worker daemon unix socket
├── exec/ # per-execution 目录
│ └── <execution_id>/
│ ├── envelope.json
│ ├── status.json
│ ├── events.jsonl
│ └── agent.log
└── blobs-staging/ # BlobStore 上传暂存
Center 首次启动时在 <sqlite_dir>/bootstrap_token 写入一个 * scope 的 system bootstrap token(mode 0600)。应尽快用它 mint 长期 scoped token 后 revoke:
# 用 bootstrap token mint worker daemon 的长期 token
export AGENT_CENTER_ADMIN_TOKEN=$(cat /var/lib/agent-center/bootstrap_token)
agent-center admin token create \
--owner=worker:mac-w-1 \
--scopes=dispatch:pull,secret:resolve,blob:put,task:*
install worker 命令session-token,后续通信使用此 token--server-fingerprint 在 tcp:// 模式下必须提供(SSH-style fingerprint pinning),防止中间人攻击。从源码:
git pull
make build
./bin/agent-center upgrade center
从发行包:重新解压新版本并运行 ./install center,自动检测已有安装并执行升级。
升级流程:复制新 binary → 原子 symlink 切换(current → 新版本)→ health probe → 失败自动回滚。配置文件(端口、blob store、keys)跨版本保留。
启动时自动执行 DB migration。Downtime 约 2-5 秒,worker 自动重连。
指定 --worker-id 以定位正确的 worker subtree(多 worker 主机场景):
git pull && make build
./bin/agent-center upgrade worker --worker-id=worker-...
升级不中断正在运行的 agent:daemon 重启后 reconcile 扫描活跃 shim 进程并续接。
# Center 回滚到上一版本
sudo ln -sfn /opt/agent-center/releases/<previous-sha> /opt/agent-center/current
sudo systemctl restart agent-center
agent-center uninstall center
默认保留数据目录(SQLite、blobs、memory)。如需彻底清除:
agent-center uninstall center --purge
agent-center uninstall worker --worker-id=worker-...
移除对应 worker 的子目录与 service 注册(LaunchAgent / systemd unit)。
v2.8 起支持 install test-instance,创建隔离的测试环境(独立 center + N workers),适用于功能验证与 CI:
agent-center install test-instance
Test instance 特性:
install center --instance <name> 可部署第二个 center,各自使用独立 DB / socket / service。list-local-centers 列出本机所有 center 部署。| 命令 | 说明 |
|---|---|
agent-center install center | 安装 center(幂等,upgrade-aware) |
agent-center install worker | 安装 worker daemon(enroll 到运行中的 center) |
agent-center upgrade center | 升级 center(原子切换 + 自动回滚) |
agent-center upgrade worker --worker-id=<id> | 升级 worker |
agent-center uninstall center | 移除 center(数据保留,--purge 彻底清除) |
agent-center uninstall worker --worker-id=<id> | 移除单个 worker |
agent-center install test-instance | 创建隔离测试沙箱 |
agent-center server | 前台运行 center(开发用) |
agent-center help | 完整命令树 |
快速上手见 5 分钟快速开始。