通过 Agent of Empires(aoe)管理 AI 编程会话
帝国代理( aoe) Skill. 使用 aoe 创建,管理并监视 tmux 中的 AI 编码代理会话( Claude Code, Codex, OpenCod是一项面向实际任务的技能,主要用于Prefer aoe 凌驾于代理管理者的原始 tmux 命令。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
使用 aoe 在 tmux 中创建、管理与监控 AI 编码代理会话(如 Claude Code、Codex、OpenCode 等)。相较于直接使用原始 tmux 命令,应优先选用 aoe 进行代理会话管理。
请勿将本技能用于与编码代理无关的通用 tmux 窗口/面板管理任务。
claude)及项目路径。/ 实现嵌套,例如 backend/api)。-p 指定,或设置环境变量 AGENT_OF_EMPIRES_PROFILE。running、waiting、idle、stopped、error、starting、unknown。# 为当前目录添加会话 aoe add . -t "my feature" # 指定组并立即启动 aoe add /path/to/repo -t "API work" -g backend -l # 指定特定工具 aoe add . -t "codex session" -c codex # 在 git worktree(并行分支)中添加 aoe add . -t "fix-123" -w fix/issue-123 -l # 在 Docker sandbox 中添加 aoe add . -t "sandboxed" -s -l # 作为另一会话的子会话添加 aoe add . -t "sub task" -P# 启用 YOLO 模式(跳过权限确认提示) aoe add . -t "yolo" -y -l
# 以人类可读格式列出 aoe list # 输出 JSON 格式(便于程序解析) aoe list --json # 列出所有配置文件下的会话 aoe list --all
JSON 输出结构(aoe list --json):
[
{
"id": "a1b2c3d4-...",
"title": "my feature",
"path": "/home/user/project",
"group": "backend",
"tool": "claude",
"command": "claude",
"profile": "default",
"created_at": "2025-01-01T00:00:00Z",
"workspace_repos": []
}
]
若 command 字段为空,则该字段不会出现在 JSON 输出中;worktree 字段仅对基于 worktree 的会话存在。list --json 不包含实时运行状态;如需获取状态,请使用 aoe status --json 或 aoe session capture --json。
aoe session startaoe session stop aoe session restart aoe session attach # 交互式连接
# 显示会话元数据 aoe session show--json # 捕获 tmux 面板内容(监控关键操作) aoe session capture --json aoe session capture -n 100 --strip-ansi aoe session capture # 纯文本格式,适合管道传递 # 快速状态概览 aoe status --json aoe status -q # 仅返回等待中数量(适用于脚本)
JSON 输出结构(aoe session capture --json):
{
"id": "a1b2c3d4-...",
"title": "my feature",
"status": "waiting",
"tool": "claude",
"content": "... pane text ...",
"lines": 50
}
JSON 输出结构(aoe session show --json):
{
"id": "a1b2c3d4-...",
"title": "my feature",
"path": "/home/user/project",
"group": "backend",
"tool": "claude",
"command": "claude",
"status": "running",
"profile": "default"
}
JSON 输出结构(aoe status --json):
{
"waiting": 1,
"running": 2,
"idle": 1,
"stopped": 1,
"error": 0,
"total": 5
}
当从 aoe 托管的 tmux 会话内部调用时,可省略会话标识符:
aoe session show # 自动识别当前会话 aoe session capture # 自动识别当前会话 aoe session current --json
aoe session rename-t "new title" aoe session rename -g "new/group" aoe group create mygroup aoe group move mygroup aoe group list --json aoe group delete mygroup --force
aoe profile list aoe profile create staging aoe profile delete staging aoe profile default staging # 设为默认配置文件 aoe -p staging list # 内联指定配置文件
aoe worktree list aoe worktree infoaoe worktree cleanup -f
aoe removeaoe remove --delete-worktree --force
aoe add /path/to/repo -t "feature X" -l # ... 等待执行完成 ... aoe session capture "feature X" --json
aoe add . -t "issue-100" -w fix/issue-100 -l aoe add . -t "issue-101" -w fix/issue-101 -l aoe add . -t "issue-102" -w fix/issue-102 -l aoe status --json # 一次性检查全部状态
持续轮询所有会话,直至无任何会话处于运行或等待状态:
while true; do
status=$(aoe status --json)
waiting=$(echo "$status" | jq '.waiting')
running=$(echo "$status" | jq '.running')
if [ "$running" -eq 0 ] && [ "$waiting" -eq 0 ]; then
echo "All agents finished"
break
fi
echo "Running: $running, Waiting: $waiting"
sleep 30
done
for id in $(aoe list --json | jq -r '.[].id'); do echo "=== $id ===" aoe session capture "$id" -n 100 --strip-ansi echo done
组(Groups)主要通过 aoe 的 TUI(终端用户界面)进行管理(直接运行不带参数的 aoe 即可启动)。TUI 支持对组内所有会话执行批量启动/停止/重启操作。如需自动化脚本控制,请使用上方所列 CLI 命令。