运行时能力注册表
理解运行时能力以及 AACWorkflow 如何根据智能体支持的功能将其路由到合适的运行时。
运行时能力注册表是每个运行时能做什么的结构化数据库——它支持哪些AI提供商、在哪些操作系统上运行、可以访问哪些MCP工具,以及是否支持技能导入和任务恢复等高级功能。
为什么能力很重要
当你为智能体分配任务时,AACWorkflow 需要知道:
- 哪些运行时可以运行这个智能体? - 在 macOS 上运行的守护进程无法执行 Docker 任务
- 哪些 AI 提供商可用? - 某些运行时有 Claude,其他的既有 Claude 也有 Cursor
- 哪些 MCP 工具已连接? - 连接到 GitHub 的运行时可以与 GitHub 对话,没有连接的则无法
- 运行时能否恢复任务? - 对于长时间运行的任务,某些运行时支持从检查点恢复
能力注册表会自动回答所有这些问题。
查看运行时能力
通过 UI
- 转到 设置 → 运行时
- 点击一个运行时查看其详细页面
- 滚动到 能力 部分
你会看到:
- 操作系统和架构 - Linux x86_64、macOS ARM64 等
- 执行器类型 - host(直接进程)或 docker(容器化)
- AI 提供商 - 安装了哪些提供商(Claude、Codex、Cursor 等)
- 模型选择 - 提供商是否支持模型选择
- MCP 传输 - 运行时如何与 MCP 服务器通信(stdio、SSE、HTTP)
- 高级功能 - 恢复支持、技能导入等
通过 API
运行时能力也可在 /workspaces/{ws}/runtimes/{id} 的 API 响应中获得:
{
"id": "runtime-123",
"name": "My macOS daemon",
"capabilities": {
"schema_version": 1,
"os": "macos",
"arch": "arm64",
"executor": "host",
"providers": [
{
"provider": "claude",
"cli_version": "1.2.3",
"model_selection": true,
"models": ["claude-opus-4", "claude-sonnet-4"]
}
],
"mcp_transports": ["stdio", "sse"],
"supports_resume": true,
"supports_skill_path": true,
"labels": ["macos", "arm64", "claude", "mcp-stdio"]
}
}理解能力字段
操作系统和架构
- 操作系统 -
macos、linux或windows - 架构 -
arm64、amd64(x86-64)、arm或386
如果你的智能体需要运行特定于操作系统的脚本或工具,这很重要。
执行器类型
- host - 任务直接在守护进程的操作系统上运行,具有完整访问权限
- docker - 任务在容器化环境中运行,更加隔离
Docker 运行时对于沙箱处理不受信任的代码或确保可重现性很有用。
提供商
每个提供商条目显示:
- 提供商名称 -
claude、codex、cursor等 - CLI 版本 - 安装的 AI 工具版本
- 模型选择 - 守护进程是否支持选择特定模型
- 模型列表 - 可用的模型(如果已知)
如果智能体配置为使用特定模型,AACWorkflow 会检查此列表以确保运行时支持它。
MCP 传输
MCP(模型上下文协议)支持多种传输机制:
- stdio - 通过标准输入/输出通信(默认、本地)
- sse - 服务器发送事件(HTTP 流)
- http - 直接 HTTP 请求
仅支持 stdio 的运行时只能连接到基于 stdio 的 MCP 服务器;它无法使用基于 HTTP 的远程 MCP 服务器。
高级功能
- 恢复支持 - 运行时能否暂停和恢复长时间运行的任务?
- 技能路径支持 - 运行时是否可以从本地文件路径加载技能,而不仅仅从数据库加载?
基于能力的路由
当你为智能体分配任务时,AACWorkflow 的路由器使用能力找到合适的运行时:
- 按提供商过滤 - 选择支持智能体配置的 AI 提供商的运行时
- 按标签过滤 - 如果你为任务或运行时分配了标签,则进行匹配
- 按操作系统过滤 - 如果任务需要特定操作系统,则进行相应过滤
- 检查高级需求 - 验证恢复、技能导入、MCP 传输
- 选择最佳匹配 - 更喜欢有最多可用容量的运行时
如果没有运行时匹配,任务会排队等待合适的运行时上线。
参见 Runtime labels and routing 了解更多关于自定义路由的信息。
标签和路由
能力包括一个 labels 字段——路由引擎使用的可搜索标签的派生集合:
macos、linux、windows- 操作系统arm64、amd64- 架构claude、codex、cursor- 提供商mcp-stdio、mcp-sse、mcp-http- MCP 传输- 通过 runtime labels 分配的自定义标签
在任务分配中使用标签:
assign @agent-name with label="macos"
because task requires macOS-specific tools路由器随后会将任务引导到 macOS 运行时。
更新能力
能力在守护进程启动时和每次心跳时自动检测。你无需手动更新它们。
要刷新能力:
- 重启守护进程 - 下次启动时刷新所有能力
- 重新连接守护进程 - 停止并重启守护进程
- 等待心跳 - 心跳每 30 秒发生一次,所以更改被快速捕获
如果你在运行中的守护进程上安装新提供商(例如,安装 Cursor CLI):
- 停止守护进程
- 安装提供商
- 重启守护进程
在下次心跳时,新提供商出现在能力中。
回退行为
如果运行时的能力不完整或格式错误:
- AACWorkflow 优雅地降级并将未知能力视为"不支持"
- 运行时仍出现在 UI 中并可用于手动分配
- 自动路由只是将其视为具有较少能力
- 不会发生崩溃或白屏错误
这确保了与可能不发送完整能力结构的旧守护进程的向后兼容性。
最佳实践
- 分配前检查能力 - 如果你需要特定操作系统或提供商,验证运行时拥有它
- 使用标签进行复杂路由 - 如果你有许多运行时,用标签标记它们并在任务分配中包括标签需求
- 保持守护进程最新 - 较新的守护进程版本支持更多能力
- 监视不支持的任务 - 检查你的任务队列中是否有等待不存在的运行时的作业
下一步
- Install agent runtime - 设置一个守护进程
- Runtime labels and routing - 使用自定义标签进行高级路由
- Daemon and runtimes - 理解守护进程和运行时架构