AEGIS OS · TUTORIAL · 2026
从安装到第一个
多 Agent 任务
这份教程面向第一次使用 Aegis OS 的开发者。完成后,你会有一个可隔离的 Agent 工作区、 一次经过批准的记忆访问、一个可撤销的 A2A 任务,以及一份可查看的审计记录。
预计时间:10–15 分钟。支持 macOS / Linux;不支持 Windows。
00 / PREPARE
准备
你需要:
- macOS 或 Linux 终端
- Homebrew(macOS / Linux 均可)
- 一个 coding agent:Claude Code、Codex CLI 或 AGY
- 一个 Markdown / Obsidian 笔记库(可选,用于记忆同意)
Aegis OS 目前不支持 Windows。不要把真实生产密钥放进示例目录;教程使用本地临时项目。
01 / INSTALL
安装 Aegis OS
# 添加 Heurion tap 并安装 brew tap heurion-org/aegis-os https://github.com/heurion-org/aegis-os.git brew trust heurion-org/aegis-os brew install aegis-os # 接入 AGY / Claude Code / Codex(运行一次) aegis-os install # 验证 aegis-os --version aegis-os doctor
Homebrew 安装二进制后,运行一次 aegis-os install,把 Aegis OS 接入 agy、claude 与 codex;随后 doctor 应全部通过。
如果不用 Homebrew:从 GitHub Releases 下载对应平台二进制,或从源码 cargo install --path crates/aos-cli。安装后同样运行 aegis-os install。
02 / FIRST RUN
接入 Agent
进入一个项目目录,直接启动你常用的 Agent:
# 任选其一
claude
codex
agy
Aegis OS 的 hook 会自动附加运行时。默认直接进入免费的 Local CoW 沙箱模式,你也可随时切换到 Cloud 模式:
| 模式 | 说明与入口 |
|---|---|
| Local | 免费本地模式(默认):本机 CoW 影子工作区 + 内核沙箱,启动即用。 |
| Cloud | 远程 64GB Linux btrfs 运行时(本地零 CPU/RAM 负载):支持免费体验档(aegis-os cloud up)与 Pro 专业版($29/月,8 个并行 Agent)。前往 Aegis Cloud 控制台 (/aegis-cloud/dashboard) → 或运行 aegis-os cloud subscribe --plan pro --wait。 |
也可以在对话里直接说“切换到 Local 模式”或“切换到 Cloud 模式”。
验证隔离与边界审批
让 Agent 修改一个文件,然后运行:
aegis-os workspace status aegis-os workspace diff
你会看到修改先落在 CoW 影子工作区,尚未写回宿主目录。当 Agent 调用 workspace_commit 合并回宿主机时,桌面环境会自动打开网页审批台(/approve,点击批准后自动续跑),纯终端/SSH 下也可运行 aegis-os approve(或简写 aos approve)一键放行。
03 / MEMORY CONSENT
记忆同意:只读批准的范围
UOMP 是 Aegis OS 执行的记忆同意协议。先给客户端写入 bridge profile,并导入笔记:
aegis-os memory setup claude --vault ~/Notes
这条命令会:
- 导入 Markdown 笔记(默认 tag
notes,可用--tag修改) - 在后台启动本地 memory server(默认
127.0.0.1:9374) - 写入 Claude Desktop / Cursor / OpenCode 的 MCP 配置
- 不签发 Token,不授权任何访问
重启客户端,然后让 Agent 读取笔记:
# 在 Claude / Cursor / OpenCode 里
列出 notes/projects 下的笔记
第一次 tool call 会创建 consent request。Aegis OS 会自动打开本地同意页(127.0.0.1:9375);在页面上勾选要授予的 tag / key,然后点 Allow selected。不需要另开终端。
# 如果浏览器没有自动打开,手动启动同意页 aegis-os memory ui # 终端 fallback aegis-os memory pending aegis-os memory approve <request-id>
同意页会显示 request id、Agent、task id(如果有)、session id 和过期时间。批准后当前调用继续;拒绝则返回错误。
高敏数据不会因为 tag scope 被批量放开。同意页会把具体 key 单独列出,你必须逐 key 勾选;Agent 不能批准自己的请求。
验证
aegis-os memory sessions aegis-os memory audit --limit 20
你应该看到 session 的 scope、过期时间,以及 allow / deny 审计事件。
04 / MULTI-AGENT
多 Agent / A2A
Aegis OS 用 Google A2A 作为 Agent 之间的协作总线。创建一个 stateful task:
aegis-os ipc request \ --to worker \ --subject "Review auth module" \ --message "Read the auth module and report risks"
查看任务:
aegis-os a2a board aegis-os a2a show <task-id>
board 会显示 task、state、from → to、age、flags、subject。input-required 会置顶并标记 BLOCKED;失去 assignee 的任务会标记 STALE。
任务级租约
如果某个任务需要一段时间的自动提交权限,可以把 lease 绑定到 task:
aegis-os policy lease \ --action-pattern workspace_commit \ --ttl-secs 3600 \ --task-id <task-id>
输出会包含 "kind": "task_scoped" 和 task_id。任务进入终态后,绑定 lease 会被撤销;同一个 Agent 不能把 task A 的 lease 用到 task B。
如果使用自定义 --runtime-dir,所有 a2a / policy / memory revoke 命令都要传同一个 runtime 目录。
05 / REVOKE & AUDIT
撤销与审计
查看并撤销一个 memory session:
aegis-os memory sessions aegis-os memory revoke <session-id>
撤销后:
- 下一个 memory 请求返回
401 SESSION_NOT_ACTIVE - 如果 session 绑定了 A2A task,task 会转为
input-required(标记BLOCKED) - 审计会记录 revoke 事件和 task id
aegis-os memory audit --limit 20 aegis-os a2a board
如果任务通过 gateway 进入终态(例如 tasks/cancel),Aegis OS 会调用 memory server 的 revoke-by-task,自动撤销该任务的 memory sessions。
06 / TROUBLESHOOT
故障排查
| 问题 | 处理 |
|---|---|
| 客户端看不到 Aegis OS 工具 | 运行 aegis-os doctor;重启客户端;检查 MCP 配置。 |
| Agent 一直等待审批 | 先看是否已自动打开同意页;没有就运行 aegis-os memory ui。CLI fallback:aegis-os memory pending,再 approve / deny。 |
| 端口 9374 被占用 | aegis-os memory stop;或 aegis-os memory setup claude --listen 127.0.0.1:9380。 |
| 同意页 9375 端口被占用 | 运行 aegis-os memory ui --listen 127.0.0.1:9376 --url http://127.0.0.1:9374;或关闭占用 9375 的进程。 |
SESSION_NOT_ACTIVE | session 过期或被撤销;重新发起请求,或 aegis-os memory connect claude --scope notes/projects。 |
ACCESS_DENIED | key/tag 不在批准范围;查看 aegis-os memory audit 和 consent request scope。 |
| 自定义 runtime 下 task 没变化 | a2a / memory revoke 命令补上同一个 --runtime-dir。 |
| Windows | 不支持;请使用 macOS 或 Linux。 |