博客 · 指南 · 2026年10月28日
在全新的 Ubuntu VPS 上安装 AEGIS,并运行你的第一个经批准的任务
声明:AEGIS 由 100monkeys.ai 开发,因此请把这篇指南当作开发方的说明来读。它由我们的一个 AI 智能体根据 docs.100monkeys.ai 上公开的 AEGIS 文档(英文)起草,并经公司审阅;这个简体中文版是英文原版指南的译文。下面的每条命令都是从这些文档或我们的主页原样复制的。为写这篇指南,我们没有在全新的 VPS 上完整跑过这一串步骤;文档之间说法不一致的地方,我们会直接指出,而不是猜测。
AEGIS by 100monkeys.ai, in beta 是一个自托管的编排器,它在隔离的、强制执行策略的运行时中运行自主智能体,并保存持久状态。本指南把一台全新的 Ubuntu 服务器带到一套正在运行的本地服务,然后在人工审批关卡之后运行一个智能体:智能体的工作会停下来,等你回答 yes。
开始之前
先弄清快速安装的用途。Getting Started 页面说得很直白:aegis init "is designed for local testing and evaluation only. It uses an in-memory secrets store and does not deploy Keycloak (IAM) or OpenBao (secrets management)."(仅用于本地测试和评估。它使用内存中的密钥存储,不部署 Keycloak(IAM)或 OpenBao(密钥管理)。)Infrastructure Requirements 页面把它的 IAM 列为 "None (unauthenticated)"(无,未认证),TLS 列为 "None"(无)。对于生产环境,文档改为指向 aegis-deploy 仓库。
所以在 VPS 上,请把这套服务当作私人实验环境。CLI 的健康检查默认使用主机 127.0.0.1 和端口 8088。不要把这个端口开放到互联网;通过 SSH 访问这台机器。
你需要:
- 一台可以通过 SSH 访问、并有能运行
sudo的用户的 Ubuntu 或 Debian 服务器。安装脚本 "runs on Ubuntu or Debian (it needsapt-get)"(在 Ubuntu 或 Debian 上运行,需要apt-get)。 - 一台 x86_64 机器。安装脚本固定的版本带有 Linux x86_64 压缩包
aegis-linux-x86_64.tar.gz。 - 一个模型提供方的 API 密钥。文档的提供方页面在自带模型的别名(alias)体系下介绍了 OpenAI、Anthropic 和 Ollama。
第 1 步. 运行安装脚本
从 100monkeys.ai 上复制印在页面上的那一行,以你的普通用户身份运行:
curl -fsSL https://get.100monkeys.ai | bash
如果愿意,可以先读一遍脚本。文档说 https://get.100monkeys.ai 会重定向到 aegis-orchestrator 的 main 分支上的 install.sh。在 Linux 上,它会在缺少时安装 curl、ca-certificates 和 fuse3,在二进制文件需要时安装 libfuse3,在没有 Docker 时安装 Docker Engine(docker-ce)。如果 Docker 在运行但你的用户无法访问,它会把你加入 docker 组。然后它把 aegis 安装到 /usr/local/bin/aegis,并用 aegis up --tag <version> 启动整套服务。
如果要固定某个版本,请在运行前把 AEGIS_VERSION 设为一个发布标签;文档的 Releases 页面列出了每个已发布的包。
第 2 步. 检查二进制文件和整套服务
aegis --version
aegis status
aegis status 报告本地服务的健康状况。如果安装过程中你被加入了 docker 组,请注销后重新登录,让新的 shell 带上这个组。
第 3 步. 运行引导式设置并选择模型提供方
aegis init
这个向导 "prepares stack files, configures the node, starts Docker Compose services, verifies health, and can optionally load smoke-test agents"(准备服务文件、配置节点、启动 Docker Compose 服务、检查健康状况,并可选择加载冒烟测试智能体)。当它询问时,接受 hello-world 冒烟测试;下一步会用到它。它写入的配置会把模型别名 default、smart、judge 和 tool-judge 映射到你选择的提供方。hello-world 智能体使用 smart,而节点没有映射的别名会以 Model alias '<alias>' not found 失败,所以请完成提供方的提问。除非传入 --dir,服务文件会放在 ~/.aegis。
第 4 步. 无人值守地运行一次 hello-world
在加关卡之前,先证明循环能跑通:
aegis task execute hello-world \
--input '{"task": "Write a Python function that returns the Fibonacci sequence up to n."}' \
--follow
--follow 会流式输出迭代事件。智能体生成代码、运行验证,要么成功,要么在多轮迭代中不断改进,直到验证器通过。
第 5 步. 编写带审批关卡的工作流
在 AEGIS 中,审批是 kind: Human 类型的工作流状态。把下面的内容保存为 approved-task.yaml。它沿用 Building Workflows 页面示例的结构,精简为一个智能体和一个关卡:
apiVersion: 100monkeys.ai/v1
kind: Workflow
metadata:
name: approved-task
version: "1.0.0"
description: "One agent drafts, a person approves, then the run completes."
spec:
initial_state: DRAFT
states:
DRAFT:
kind: Agent
agent: hello-world
timeout: 600s
transitions:
- condition: on_success
target: APPROVE
- condition: on_failure
target: FAILED
APPROVE:
kind: Human
prompt: |
Draft:
{{DRAFT.output}}
Approve? (yes/no)
timeout: 86400s
transitions:
- condition: input_equals_yes
target: DONE
- condition: input_equals_no
target: FAILED
DONE:
kind: System
command: "echo 'Approved'"
transitions: []
FAILED:
kind: System
command: "echo 'Rejected or failed'"
transitions: []
第 6 步. 部署并启动一次运行
aegis workflow deploy ./approved-task.yaml --force
aegis workflow run approved-task \
--input '{"task": "Write a Python function that returns the Fibonacci sequence up to n."}'
run 命令会打印一个执行 ID。观察它:
aegis workflow logs <execution-id> --follow --verbose
aegis workflow executions get <execution-id>
草稿完成后,executions get 会把当前状态显示为 APPROVE (WAITING FOR HUMAN SIGNAL)。在有人回应之前,关卡之后的任何步骤都不会运行。
第 7 步. 阅读草稿,然后回应
aegis workflow signal <execution-id> --response yes
如果回答 no,运行会转到 FAILED。没有人回应的关卡会在超时后失效;按默认行为,运行会以 human_input_timeout 为原因被标记为失败。
有一点需要知道:各文档页对这个回应词的说法不一致。Human Approvals 页面说是非关卡接受 ["yes", "no"] 两种回应;Building Workflows 页面用 --response approved 发送信号;CLI 页面展示的是 --response "approve"。我们使用 yes,因为 input_equals_yes 这个转换正是以它命名的。如果运行没有推进,请检查 executions get 并尝试其他写法。
本指南不涉及的内容
- 生产环境。请使用 aegis-deploy,它增加了 Keycloak、OpenBao、经由 Caddy 的 TLS 以及可观测性。
- 对外暴露 API。
aegis init这套服务没有 IAM,任何能访问端口 8088 的人都能操作它。 - 硬件规格。文档给出了依赖矩阵(Docker 24.0+ 或 Podman 4.0+、PostgreSQL 15+、SeaweedFS、用于工作流的 Temporal),但我们没有找到本地服务的最低内存数字,所以这里也不给出。
接下来
关于关卡背后的思路,请阅读 How to give an orchestrator an approval step(英文)。关于每次运行前后要记录什么,请阅读 生产环境中 AI 智能体的可追溯性清单。如果你希望智能体的笔记和代码放在一份它们能通过 MCP 读写的记录里,请看 通过 MCP 把 Claude Code 连接到 Carbon Forge。