AACWorkflow Docs

运行时能力注册表

理解运行时能力以及 AACWorkflow 如何根据智能体支持的功能将其路由到合适的运行时。

运行时能力注册表是每个运行时能做什么的结构化数据库——它支持哪些AI提供商、在哪些操作系统上运行、可以访问哪些MCP工具,以及是否支持技能导入和任务恢复等高级功能。

为什么能力很重要

当你为智能体分配任务时,AACWorkflow 需要知道:

  • 哪些运行时可以运行这个智能体? - 在 macOS 上运行的守护进程无法执行 Docker 任务
  • 哪些 AI 提供商可用? - 某些运行时有 Claude,其他的既有 Claude 也有 Cursor
  • 哪些 MCP 工具已连接? - 连接到 GitHub 的运行时可以与 GitHub 对话,没有连接的则无法
  • 运行时能否恢复任务? - 对于长时间运行的任务,某些运行时支持从检查点恢复

能力注册表会自动回答所有这些问题。

查看运行时能力

通过 UI

  1. 转到 设置 → 运行时
  2. 点击一个运行时查看其详细页面
  3. 滚动到 能力 部分

你会看到:

  • 操作系统和架构 - 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"]
  }
}

理解能力字段

操作系统和架构

  • 操作系统 - macoslinuxwindows
  • 架构 - arm64amd64(x86-64)、arm386

如果你的智能体需要运行特定于操作系统的脚本或工具,这很重要。

执行器类型

  • host - 任务直接在守护进程的操作系统上运行,具有完整访问权限
  • docker - 任务在容器化环境中运行,更加隔离

Docker 运行时对于沙箱处理不受信任的代码或确保可重现性很有用。

提供商

每个提供商条目显示:

  • 提供商名称 - claudecodexcursor
  • CLI 版本 - 安装的 AI 工具版本
  • 模型选择 - 守护进程是否支持选择特定模型
  • 模型列表 - 可用的模型(如果已知)

如果智能体配置为使用特定模型,AACWorkflow 会检查此列表以确保运行时支持它。

MCP 传输

MCP(模型上下文协议)支持多种传输机制:

  • stdio - 通过标准输入/输出通信(默认、本地)
  • sse - 服务器发送事件(HTTP 流)
  • http - 直接 HTTP 请求

仅支持 stdio 的运行时只能连接到基于 stdio 的 MCP 服务器;它无法使用基于 HTTP 的远程 MCP 服务器。

高级功能

  • 恢复支持 - 运行时能否暂停和恢复长时间运行的任务?
  • 技能路径支持 - 运行时是否可以从本地文件路径加载技能,而不仅仅从数据库加载?

基于能力的路由

当你为智能体分配任务时,AACWorkflow 的路由器使用能力找到合适的运行时:

  1. 按提供商过滤 - 选择支持智能体配置的 AI 提供商的运行时
  2. 按标签过滤 - 如果你为任务或运行时分配了标签,则进行匹配
  3. 按操作系统过滤 - 如果任务需要特定操作系统,则进行相应过滤
  4. 检查高级需求 - 验证恢复、技能导入、MCP 传输
  5. 选择最佳匹配 - 更喜欢有最多可用容量的运行时

如果没有运行时匹配,任务会排队等待合适的运行时上线。

参见 Runtime labels and routing 了解更多关于自定义路由的信息。

标签和路由

能力包括一个 labels 字段——路由引擎使用的可搜索标签的派生集合:

  • macoslinuxwindows - 操作系统
  • arm64amd64 - 架构
  • claudecodexcursor - 提供商
  • mcp-stdiomcp-ssemcp-http - MCP 传输
  • 通过 runtime labels 分配的自定义标签

在任务分配中使用标签:

assign @agent-name with label="macos" 
  because task requires macOS-specific tools

路由器随后会将任务引导到 macOS 运行时。

更新能力

能力在守护进程启动时和每次心跳时自动检测。你无需手动更新它们。

要刷新能力:

  • 重启守护进程 - 下次启动时刷新所有能力
  • 重新连接守护进程 - 停止并重启守护进程
  • 等待心跳 - 心跳每 30 秒发生一次,所以更改被快速捕获

如果你在运行中的守护进程上安装新提供商(例如,安装 Cursor CLI):

  1. 停止守护进程
  2. 安装提供商
  3. 重启守护进程

在下次心跳时,新提供商出现在能力中。

回退行为

如果运行时的能力不完整或格式错误:

  • AACWorkflow 优雅地降级并将未知能力视为"不支持"
  • 运行时仍出现在 UI 中并可用于手动分配
  • 自动路由只是将其视为具有较少能力
  • 不会发生崩溃或白屏错误

这确保了与可能不发送完整能力结构的旧守护进程的向后兼容性。

最佳实践

  • 分配前检查能力 - 如果你需要特定操作系统或提供商,验证运行时拥有它
  • 使用标签进行复杂路由 - 如果你有许多运行时,用标签标记它们并在任务分配中包括标签需求
  • 保持守护进程最新 - 较新的守护进程版本支持更多能力
  • 监视不支持的任务 - 检查你的任务队列中是否有等待不存在的运行时的作业

下一步