ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何安全运行AI代理:Agent of Empires容器沙箱Docker、Podman与Apple Containers指南

如何安全运行AI代理:Agent of Empires容器沙箱Docker、Podman与Apple Containers指南 如何安全运行AI代理Agent of Empires容器沙箱Docker、Podman与Apple Containers指南【免费下载链接】agent-of-empiresManage multiple Claude Code, OpenCode agents from either TUI or Web for easy access on mobile. Also supports Mistral Vibe, Codex CLI, Gemini CLI, Pi.dev, Copilot CLI, Factory Droid Coding.项目地址: https://gitcode.com/gh_mirrors/ag/agent-of-empiresAgent of EmpiresAoE是一款AI代理管理工具支持从 TUI 或 Web 仪表盘统一管理 Claude Code、OpenCode、Codex CLI、Gemini CLI 等多个编程AI代理其核心安全能力是容器沙箱Container Sandbox让AI代理在独立的 Docker、Podman 或 Apple Containers 容器中运行代理能访问你的项目代码却碰不到本机其余文件实现安全运行AI代理的隔离目标。为什么AI代理需要容器沙箱AI代理编程Agent会执行命令、读写文件、安装依赖默认情况下它们拥有和你一样的主机权限。容器沙箱提供了天然的隔离层代码可达系统隔离项目目录挂载到容器内的/workspace代理可以修改代码但删不掉你主机上的其他文件凭证自动注入代理登录凭证被注入到每个会话私有的存储中容器内无需重新登录资源可控可设置 CPU、内存上限防止代理失控占满机器清理彻底删除会话时容器一并删除不留残留相关设计实现可在 src/containers/ 目录的运行时模块中查看官方指南位于 docs/guides/sandbox.md。快速上手一条命令创建沙箱会话安装好 tmux 和任意容器运行时后Docker 为默认只需一条命令aoe add --sandbox . # 使用官方默认沙箱镜像 aoe add --sandbox-image myregistry/custom:v1 . # 使用自定义镜像 aoe remove session # 删除会话时一并删除容器在 TUI 或 Web 向导中创建会话时直接勾选Sandbox 开关即可——只有检测到容器运行时后该选项才会出现。官方提供两款沙箱镜像镜像内容aoe-sandbox:latest默认所有受支持的代理 CLI ACP 适配器、git、ripgrep、fzfaoe-dev-sandbox:latest基础镜像 Rust、uv、Node LTS、GitHub CLI需要项目专属依赖时基于任一镜像扩展后通过--sandbox-image指定即可。三大容器运行时Docker、Podman、Apple Containers 怎么选Docker默认运行时开箱即用无需任何配置。[sandbox]下的所有运行策略选项 Docker 全部支持。PodmanLinux 用户友好替代Podman 是无守护进程、支持 rootless 的 Docker 替代品。安装后只需一行配置[sandbox] container_runtime podman使用要点独立镜像存储先用podman pull拉取沙箱镜像或让 AoE 首次使用时自动拉取rootless 网络1024 以上的端口直接可用SELinux 拦截挂载若容器内出现 Permission denied设置selinux_relabel true即可Apple ContainersmacOS 原生运行时Apple Containers 基于 Apple 虚拟化框架需要 Apple 芯片和 macOS 26Tahoe或更新版本brew install container container system start # 可能需要下载 Linux 内核然后配置[sandbox] container_runtime apple_containerTUI 的沙箱开关会自动使用该运行时container守护进程未启动时会明确报错。注意两点每个容器独占一个 VM已占用的主机内存在重启或删除前不会释放不支持只读挂载只读卷会自动降级为读写并给出日志警告。沙箱配置选项速查在 Web 仪表盘的Settings → Sandbox页面或config.toml中常用选项如下选项默认值说明enabled_by_defaultfalse新会话是否自动启用沙箱default_imageaoe-sandbox:latest使用的沙箱镜像container_runtimedockerdocker/podman/apple_container仅全局生效auto_cleanuptrue删除会话时自动删除容器cpu_limit/memory_limit无单容器资源上限如4与8genvironment[]注入容器的环境变量mount_sshfalse只读挂载~/.ssh/default_terminal_modehost配对终端运行位置环境变量支持三种写法密钥可以留在 shell 配置文件中而不写入配置文件[sandbox] environment [ ANTHROPIC_API_KEY, # 从主机透传同名变量 GH_TOKEN$AOE_GH_TOKEN, # 读主机变量 AOE_GH_TOKEN注入为 GH_TOKEN CUSTOM_API_KEYsk-sandbox-key, # 字面量 ]安全细节代理能碰到什么、碰不到什么自动挂载清单这是沙箱的信任边界主机路径容器路径模式项目目录/workspace读写~/.gitconfig/root/.gitconfig只读~/.ssh/开启mount_ssh时/root/.ssh/只读会话工件目录/aoe/artifacts读写会话私有代理配置/root/.claude/等读写几个值得了解的安全设计每会话私有代理存储每个沙箱会话拥有独立的sandbox-v2/instance-id配置目录会话的对话记录、缓存、日志彼此隔离也绝不导入你主机的历史数据文件夹预信任容器内的工作区对代理而言是陌生目录AoE 会在下发给容器的配置中预先信任它避免代理因信任提示而卡住共享凭证链Claude Code 的刷新令牌会轮换失效因此所有 Claude 会话共享一份sandbox-v2/.credentials.json任一容器刷新后全体可见登录一次即可清理有兜底aoe sandbox reclaim先报告再删除避免误删包含代理凭证的存储常见问题排查 容器被 OOM 杀掉docker inspect显示OOMKilled: true。macOS 上 Docker 运行在内存上限固定默认 2GB的 Linux VM 中请在 Docker Desktop 的Settings → Resources中调高 VM 内存编程代理建议 8GB 以上并设置[sandbox] memory_limit给每个容器明确配额。沙箱镜像升级后 OpenCode 会话启动失败报 drizzle/SQLite 迁移错误。删除该会话沙箱数据库位于~/.local/share/opencode/sandbox-v2/instance-id/opencode.db*并重启即可主机上的 OpenCode 状态不受影响。Podman 下podman info失败通常是存储未初始化或缺少 rootless 模式所需的/etc/subuid、/etc/subgid条目。完整排查方案见 docs/guides/sandbox.md运行时探测逻辑实现于 src/containers/runtime.rs。小结需求推荐运行时macOS 开发机Apple Containers原生或 DockerLinux 日常开发Docker默认或 Podmanrootless无 root 权限环境PodmanAgent of Empires 的沙箱机制让把代码交给AI代理这件事变得可控代码在容器内自由修改主机保持干净凭证按会话隔离资源有明确上限。一条aoe add --sandbox .即可体验 【免费下载链接】agent-of-empiresManage multiple Claude Code, OpenCode agents from either TUI or Web for easy access on mobile. Also supports Mistral Vibe, Codex CLI, Gemini CLI, Pi.dev, Copilot CLI, Factory Droid Coding.项目地址: https://gitcode.com/gh_mirrors/ag/agent-of-empires创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表