☰
Agent of Empires配置完全参考:config.toml与Profile关键设置详解
2026/9/27 2:32:16 网站建设 项目流程

Agent of Empires配置完全参考:config.toml与Profile关键设置详解

【免费下载链接】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

Agent of Empires 是统一管理 Claude Code、OpenCode、Codex CLI、Gemini CLI 等 AI 编码 Agent 的多会话调度中枢,支持 TUI 与 Web 双端操作。本文详解其配置文件config.toml的三层覆盖机制与 Profile 关键设置,帮助你快速完成 Agent of Empires 配置。

配置文件放在哪里?

Agent of Empires 的设置采用三层覆盖模型,逐层按字段覆盖,未设置的字段自动继承上一层:

层级文件路径作用范围
全局~/.agent-of-empires/config.toml所有会话生效(Linux 默认在~/.config/agent-of-empires/)
Profile~/.agent-of-empires/profiles/<名称>/config.toml仅该 Profile 内会话
仓库项目根目录.agent-of-empires/config.toml仅该仓库(权限最受限)

目录结构大致如下:

~/.agent-of-empires/ config.toml # 全局配置 profiles/default/ config.toml # Profile 覆盖层 sessions.json # 会话数据(自动管理)

💡 所有配置项都可以在 TUI 的设置界面(按s)和 Web 仪表盘中直接编辑,改完即写回 TOML 文件。完整键值参考见 docs/guides/configuration.md。

Profile 是什么?多身份工作区一键切换

Profile 是彼此隔离的工作区:每个 Profile 拥有独立的会话列表、分组和配置覆盖。典型用法是把「个人项目」和「客户项目」分开管理。

aoe # 使用 default profile aoe -p work # 使用 work profile aoe profile create client-xyz aoe profile list # 列出所有 profile aoe profile default work # 把 work 设为默认

Profile 配置文件是一个稀疏覆盖树:文件里只写你要改的字段,其余全部继承全局配置。例如只想给客户 Profile 换个主题、禁用 YOLO 模式:

# ~/.agent-of-empires/profiles/client-xyz/config.toml description = "客户交付专用,禁止跳过权限确认" [theme] name = "empire" [session] yolo_mode_default = false

Profile 还支持一个description字段,会在 TUI 和 Web 新建会话时的 Profile 选择器中显示为辅助说明。加载逻辑见 src/session/config/profile_config.rs,它会对覆盖值做类型校验,写错的键会给出警告而不是静默丢弃。

config.toml 核心区块详解

[theme]:主题与配色

[theme] name = "empire" # 内置 8 套:empire、tokyo-night-storm、dracula 等 color_mode = "truecolor" # truecolor | palette(老终端可切 256 色)

TUI 和 Web 共用同一主题;自定义主题只需把 TOML 文件放进~/.agent-of-empires/themes/,可用aoe theme export empire一键导出作为模板。内置主题源文件在 themes/builtin/。

[session]:会话行为,最高频设置区

[session] default_tool = "claude" # 新建会话默认使用的 Agent yolo_mode_default = false # 是否默认跳过权限确认 smart_rename = true # 根据首轮对话自动重命名会话 auto_stop_idle_secs = 0 # 0=不自动停止;7200=闲置 2 小时后回收

几个新手最容易问到的键:

  • default_tool:新会话默认 Agent,也支持自定义 Agent 名称,找不到时回退到首个可用工具;
  • yolo_mode_default:终端视图下等价于--dangerously-skip-permissions,结构化视图下映射为 ACP 的bypassPermissions。

  • smart_rename+smart_rename_agent+smart_rename_model:自动重命名默认用会话自己的 Agent,可以指定一个更便宜的「工具型 Agent」(如 codex)来执行,再用smart_rename_model = { claude = "haiku" }为每个 Agent 钉住低价模型,避免小标题烧掉大量 token;
  • custom_agents:为 AoE 无法识别的命令定义自定义 Agent,例如custom_agents = { "lenovo-claude" = "ssh -t lenovo claude" },配合agent_detect_as继承内置 Agent 的状态检测;
  • agent_status_hooks:向各 Agent 的配置注入状态检测钩子(默认开启),关闭后回退到 tmux 面板内容解析,可靠性略降。

[acp]:结构化视图调优

[acp] default_new_session_view = "auto" # auto | structured | terminal restrict_agents = false # 开启后结构化会话只能用 allowed_agents 里的 Agent allowed_agents = ["claude", "codex"]
  • offer_structured_in_new_session:是否在 TUI 新建会话弹窗中提供结构化视图选项(Web 端始终提供);
  • acp_defaults.<agent>:为每个 Agent 预设model、effort(思考级别)、mode,创建会话时即可指定pin_model = true锁定模型;
  • restrict_agents:是运营级开关,只从全局配置读取,Profile 无法放宽,Web 端修改需要口令二次确认。

[tmux] / [diff] / [updates]:体验微调

[tmux] status_bar = "auto" # AoE 主题状态栏;你的 tmux.conf 有配置时自动让位 mouse = "auto" # 滚轮/触摸板进入复制模式滚动 [diff] default_branch = "main" context_lines = 3 split_view = false # true = 并排对比 [updates] update_check_mode = "notify" # auto | notify | off,离线网络用 off

[worktree] 与 [sandbox]:隔离工作目录与容器

[worktree] enabled = false # 新会话是否自动建 git worktree path_template = "../{repo-name}-worktrees/{branch}" [sandbox] enabled_by_default = false default_image = "ghcr.io/agent-of-empires/aoe-sandbox:latest" environment = ["GH_TOKEN=$AOE_GH_TOKEN"]

两个区块都有完整独立文档:worktrees.md 与 sandbox.md,这里不展开。

环境注入与钩子:给 Agent 喂 Token 的正确姿势

全局 environment 列表

environment = [ "GH_TOKEN=$AOE_GH_TOKEN", # 从 AoE 自身环境读取 "TERM", # 裸键 = 直接透传 ]

支持KEY=value字面量、KEY=$VAR引用、KEY=$$literal转义和裸键透传四种写法。注意:该列表只作用于非沙箱(host)会话;沙箱会话请配置sandbox.environment,两者互不相通。

想要更安全的做法,用[host_hooks]在启动时动态铸造临时 token:

[host_hooks] before_start = ['echo "GH_TOKEN=$(my-mint-tool "$AOE_REPO_SLUG")"']

钩子输出的每一行KEY=VALUE都会成为 Agent 的环境变量,stdout 永不落日志,适合注入机密。[host_hooks]仅限全局/Profile 层——仓库配置不允许在宿主机执行命令。

[status_hooks]:桌面通知自动化

[status_hooks] enabled = true on_waiting = "notify-send -a aoe '等待输入' \"$AOE_SESSION_TITLE\"" on_error = "notify-send -u critical -a aoe '出错' \"$AOE_SESSION_TITLE\""

on_starting、on_running、on_waiting、on_idle、on_error在对应状态切换时触发,命令中还能取到AOE_SESSION_ID、AOE_PROJECT_PATH等变量,适合做桌面通知和个性化自动化。

配置解析源码在哪看?

  • 全局配置结构与所有设置项定义:src/session/config/mod.rs
  • Profile 稀疏覆盖与合并校验:src/session/config/profile_config.rs
  • 仓库级配置与钩子安全策略:src/session/config/repo_config/
  • Profile 子命令(create/list/default):src/cli/profile.rs

常见配置问题速查

症状排查点
设置改了不生效确认改的是哪一层:仓库层 > Profile 层 > 全局层;列表字段是整体替换而非追加
Profile 覆盖报未知键警告拼写检查,如[sandbox] privildged会被列出并跳过
想让某个 Profile 彻底独立该 Profile 下重复声明你要保留的 map 类字段(如custom_agents),Profile 的 map 会整体替换全局
离线环境频繁检查更新全局设update_check_mode = "off"

掌握三层覆盖 + Profile 稀疏覆盖这两条主线,你就覆盖了 Agent of Empires 配置 90% 的日常场景;其余键值(工具会话[tools.*]、日志[logging]、Web 推送[web])都遵循同样的写法,可对照官方配置文档按需查阅。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询