Agent of Empires HTTP API完全参考:用curl、脚本和MCP驱动AI代理会话
【免费下载链接】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(AoE)是一款多 AI 代理会话管理器,支持统一管理 Claude Code、OpenCode、Codex CLI、Gemini CLI 等代理。它内置的HTTP API让你无需打开终端,就能用 curl、Shell 脚本或 MCP 工具创建会话、发送提示词、读取输出,实现真正的 AI 代理自动化编排。
快速上手:启动 aoe serve 获取 API 令牌
HTTP API 由aoe serve命令暴露,它与 Web 仪表盘共用同一套接口。启动后,AoE 会打印一个访问令牌(在 TUI 的 Serve 面板中也能看到):
aoe serve # 默认监听 127.0.0.1:8080 aoe serve --port 7777 --host 0.0.0.0 # 局域网/手机访问所有端点都要求携带该令牌,--no-auth模式除外。令牌有三种传递方式,任选其一:
| 方式 | 示例 |
|---|---|
| Bearer 头 | -H "Authorization: Bearer $AOE_TOKEN" |
| 查询参数 | ?token=$AOE_TOKEN |
| Cookie | aoe_token=$AOE_TOKEN |
💡 小贴士:脚本里推荐用 Bearer 头,避免令牌泄漏进 URL 日志。
会话列表 API:用 curl 查看所有代理状态
GET /api/sessions返回全部会话(含已归档与回收站),可用state参数在服务端过滤:live(仅活跃)、trashed(仅回收站)、all(默认)。
curl -sS -H "Authorization: Bearer $AOE_TOKEN" \ "http://localhost:7777/api/sessions?state=live"每行的status字段为PascalCase,是脚本判断"该不该轮询"的关键:
| 状态 | 含义 |
|---|---|
Running | 代理正在干活 |
Waiting | 停止并等待输入,需要提示词 |
Idle | 本轮结束,可视为任务完成 |
Error/Stopped | 出错或面板已消失 |
创建会话:一个 POST 拉起 AI 代理
POST /api/sessions创建新会话,核心字段:
{ "path": "/path/to/repo", "tool": "claude", "title": "Fix Login Flow", "worktree_enabled": true, "create_new_branch": true }worktree_enabled:自动创建托管 worktree 与分支,多会话并行改代码互不干扰;callback_url:会话进入Waiting/Idle/Error时向你的服务 POST 一个状态通知,派发器无需轮询(要求公网可达地址,不能指向内网回环);idempotency_key:重试时返回同一个会话(200)而非创建重复项,跨守护进程重启也有效。
加上?wait=ready可阻塞至状态离开Starting(上限 10 秒),适合 CI 里串行等待。
send + output:两条 curl 把代理变成子代理
这是驱动代理的最小原语对:
1. 发送提示词(等同于在 TUI 里敲键盘):
curl -sS -X POST -H "Authorization: Bearer $AOE_TOKEN" \ -H "Content-Type: application/json" \ -d '{"message":"summarize the failing test"}' \ "http://localhost:7777/api/sessions/abc123/send"2. 轮询状态回到Idle(比轮询输出更便宜),然后读取输出:
curl -sS -H "Authorization: Bearer $AOE_TOKEN" \ "http://localhost:7777/api/sessions/abc123/output?lines=200&format=text"output支持lines(默认 200,最大 2000)与format(text去 ANSI /ansi原始字节),且只读模式下也可用。
⚠️ 常见错误码:
409 session_not_running(面板已消失,可配合revive: true自动复活)、400 acp_mode_unsupported(结构化视图会话无 tmux 面板)。同一会话的并发 POST 会被串行化,两个编排器抢一个会话也不会交错键盘输入。
状态回调与推送:告别轮询
三种"知道会话完成"的方式,按需选择:
- 轮询:定时
GET /api/sessions,看status是否回到Idle; - 回调:创建时传
callback_url,状态切换时 AoE 主动 POST{"session_id", "old_status", "new_status", "at", "seq"}; - WebSocket 推送:仪表盘与 TUI 使用的推送通道同样可用于自研前端。
对于 MCP 编排场景,回调 +seq序号是最省心的方案:seq是进程内单调计数器,可据此丢弃乱序投递。
MCP 服务器管理 API
AoE 把配置好的 MCP 服务器 转发给结构化视图代理,并提供统一的管理面:
GET /api/mcp/servers?agent=claude:查看某代理的生效MCP 集合(含冲突与漂移标记,密钥值全部脱敏);POST /api/mcp/servers/{name}/resolve:在"AoE 版本 / 代理原生配置"之间裁决冲突;POST /api/mcp/servers/{name}/keep/drop:保留或丢弃从原生配置中消失的服务器。
配置分层优先级:代理原生 < 全局 mcp.json < 配置文件 mcp.json < 项目 .mcp.json。
Skills API:用脚本管理技能包
GET /api/skills # 列出全部技能 POST /api/skills # 创建托管技能 PUT /api/skills/{directory} # 替换 SKILL.md POST /api/skills/sync # 同步到各代理的技能目录 POST /api/skills/{source}/{dir}/adopt # 认领外部技能同步是非破坏性的:手工编辑过的技能会报告conflict而绝不被覆盖,这让 API 可以安全地接入 CI。
安全模式与只读限制
--read-only:所有写端点一律返回403 read_only,适合对外暴露"只看不改"的会话监控页;--auth=passphrase:去掉 URL 令牌,仅保留口令登录墙,适合反向代理后手机访问;--daemon:后台守护运行,令牌与端点保持不变。
相关资源
- 完整 API 文档:docs/api.md
- 路由定义:src/server/router.rs
- 发送/读取输出实现:src/server/api/sessions/send.rs
- 会话列表实现:src/server/api/sessions/list.rs
- serve 命令参数:src/cli/serve.rs
- MCP 服务器指南:docs/guides/mcp-servers.md
掌握了sessions、send、output三个核心端点,你就能用任意脚本语言把 Agent of Empires 变成一个可编程的 AI 代理运行时 🚀
【免费下载链接】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),仅供参考