运行时

运行时概览

运行时是你在机器上安装的 Provider CLI(如 ClaudeCode、KimiCode)被 Mopheus 发现后在平台上的映射。

运行时概览

运行时就是你在机器上安装的 Provider CLI(如 ClaudeCode、KimiCode)被 Mopheus 发现后在平台上的映射。说得更直白一点:一个运行时 ≈ 一个 Provider CLI 实例

举个例子:

  • 你的笔记本上安装了 claude(ClaudeCode CLI)和 kimi-code(KimiCode CLI)
  • 启动 mopheus daemon start 后,Mopheus 在界面上会显示 两个运行时
  • 一个叫 "claude"(对应你的 ClaudeCode),一个叫 "kimi-code"(对应你的 KimiCode)

运行时本身不是执行任务的实体——真正执行的是 Provider CLI(如 ClaudeCode)。Provider CLI 在工作目录中读写文件、执行命令、查询数据库,完成智能体的具体工作。运行时只是 Provider CLI 在 Mopheus 平台上的"身份标识",用来让服务器知道"某台机器上有一个可以执行任务的 claude/kimi-code"。

守护进程(Daemon)负责把任务从服务器搬运到 Provider CLI,再把结果搬运回来。关于守护进程的详细说明,参见什么是守护进程

状态

每个运行时在侧边栏的 运行时 下显示一条记录,带有以下状态:

状态含义
在线背后的守护进程已连接,该 Provider CLI 可用,可以承接任务。
忙碌该 Provider CLI 上当前有智能体任务正在执行。
离线背后的守护进程未连接或已停止,该 Provider CLI 不可用。
错误最近一次任务执行出错。

运行时若约 90 秒内未收到守护进程的心跳,状态会变为 离线

激活与访问

每个工作区中,激活和访问是两套独立的控制:

  • 激活状态决定 Runtime 能否接收任务。只有 Runtime Owner 可以启用或禁用它。
  • 可见性决定谁可以绑定 Runtime。工作区可见的 Runtime 可供工作区成员使用;私有 Runtime 仅可供 owner 以及被直接或通过自定义角色授权的成员使用。
  • 成员仍可查看已启用私有 Runtime 的元数据。界面使用 viewerCanUse 决定选择器是否允许绑定,未授权 Runtime 不会作为新的智能体绑定候选项出现。
  • Runtime Owner 和满足运行时管理所有权规则的管理者可在 访问控制 Tab 中切换可见性,并向成员或自定义角色授予私有 Runtime 使用权。
  • 禁用 Runtime 会保留在 owner 的 我的 列表中,但不能用于新的绑定。
  • 如果仍有智能体直接绑定到某个 Runtime,则不能禁用它。需要先把这些智能体迁移到其他 Runtime,或移除绑定。
  • 同一 Owner、Daemon 和 Provider 重新注册时会保留 Runtime ID、激活状态与可见性;其他 Owner 即使使用相同 Daemon ID,也会获得独立记录。

运行时 页面使用激活开关决定 Runtime 是否可用,并在 访问控制 中决定谁可以绑定它。

运行时能力与元数据分层

每个 Runtime 向 Mopheus 服务端注册时,都会上报三层清晰解耦的结构化元数据:

  1. 守护进程执行配置(Daemon Execution Config)
    • 宿主机级全局并发上限(maxConcurrentAgentTasks)、任务超时时间;
    • 空闲看门狗(agentIdleWatchdog)与运行时资源守护策略(runtime_guard 内存、进程数限制等);
    • 此类配置属于宿主机与工作区的管控策略,不属于具体 CLI 的协议能力。
  2. 守护进程构建与环境元数据(Daemon Build Metadata)
    • 守护进程二进制构建版本(gitCommit)、操作系统(os)与主机标识。
  3. Provider CLI 声明能力(Provider Declared Capabilities)
    • 每个 Provider CLI 自身声明的能力矩阵(如 sandbox 文件沙箱支持、interaction 运行中交互支持、MCP 支持等);
    • 声明能力表示 CLI 协议具备该特性,实际生效仍取决于当前宿主机环境配置。

运行时与智能体的关系

每个智能体创建时都会被绑定到一个具体的运行时。这意味着:

  • 智能体的 Provider CLI 字段决定了它只能运行在对应 Provider CLI 的运行时上
    • 选择 "claude" 的智能体 → 只能在 "claude" 运行时上运行
    • 选择 "kimi-code" 的智能体 → 只能在 "kimi-code" 运行时上运行
  • 运行时列表中可以看到每个运行时下挂的智能体
  • 如果某智能体绑定的运行时离线或被禁用,该智能体就无法在该 Runtime 上执行新任务

你可以在智能体设置页面更换它绑定的运行时。

任务动态引导与干预(Agent Steering)

声明 interaction 交互能力的 Provider(如 ClaudeCode)允许运行中的 AgentTask 通过工单详情页或 Chat 会话接收动态引导。这是 Runtime 暴露的能力;Daemon 将消息投递给既有的 Provider 进程和会话。

  • 运行中航向修正:无需重启任务即可投递补充指导。
  • 投递状态:消息依次经过 accepted(已接收)-> queued(排队中)-> delivering(投递中)-> delivered(已送达)或 rejected(已拒绝)。
  • 安全撤回:消息处于 acceptedqueued 时可以撤回,撤回后不会投递。
  • 实时同步:队列和投递状态通过 WebSocket 事件同步。

工作区注册与可见性

守护进程通过 mopheus login 获取的用户身份注册运行时。注册时每条 Runtime 记录会关联该用户的身份作为 Owner

运行时对工作区成员的可见性遵循以下规则:

条件可见范围
Daemon 登录者是工作区的 Owner工作区所有已启用并可见的 Runtime 均可看到
Daemon 登录者是工作区普通成员只能看到自己(该用户)注册的 Runtime
通过 ?scope=mine 参数过滤只返回当前用户的 Runtime(前端"我的"视图)

这意味着:

  • 工作区 Owner 启动守护进程后,工作区中所有成员都可以看到这台机器上的所有 Runtime
  • 普通成员启动守护进程后,只有该成员自己能看到自己的 Runtime,其他成员不可见
  • 每个成员仍可在自己的"运行时"页面查看、管理自己的 Runtime
  • 工作区 Owner 可以通过"启用/禁用"开关控制工作区级的 Runtime 是否可用

这种设计确保:Owner 的机器作为共享资源,所有成员可见;成员的机器作为私有资源,仅自己可见。

连接流程

让一台机器上的 Provider CLI 成为 Mopheus 的运行时,只需要三步:

  1. 安装 CLI 并登录。 下载 mopheus 二进制文件,运行 mopheus login 完成认证(参见 安装 Daemon)。
  2. 安装 Provider CLI。 在机器上安装 claudekimi-code 或其他支持的 CLI,并确保它们在 $PATH 中可执行(参见 Provider CLI)。
  3. 启动守护进程。 运行 mopheus daemon start。守护进程会自动扫描本机已安装的 Provider CLI,向 Mopheus 注册,你的运行时随即出现在侧边栏中。

几秒钟后,你机器上的每个 Provider CLI 就会对应一行运行时记录。

一台机器可以对应多个运行时

一台物理机器可以同时拥有多个运行时——只要它安装了多个 Provider CLI。

机器上的 Provider CLIMopheus 上显示的运行时
只装了 claude1 个运行时(claude)
装了 claude + kimi-code2 个运行时(claude, kimi-code)

这些运行时的背后是同一个守护进程。侧边栏按 Runtime Owner 与 Daemon ID 共同分组,避免不同 Owner 的记录被合并到同一个管理组。

多工作区与多机器

多工作区: 单个守护进程可以同时连接多个工作区。它在每个工作区中都会为每个 Provider CLI 注册一个 Runtime;各工作区的激活状态彼此独立且默认禁用,由你明确决定机器在哪些工作区承接任务。比如一台机器有 2 个 Provider CLI、连接 2 个工作区,你名下会有 4 条 Runtime 记录——但后台仍然是 1 个守护进程

多机器: 你可以在任意数量的机器上启动守护进程——笔记本、值班工作站、虚拟机、Kubernetes Pod。每台机器独立发现自己的 Provider CLI 并注册运行时。智能体的任务会被分发给绑定的运行时所在的机器执行。

并发控制

并发任务上限由守护进程控制,通过 --max-concurrent-tasks 设置(默认 20)。这意味着:一台机器上所有运行时的并发任务总数不能超过这个上限。例如,你的机器有 claude 和 kimi-code 两个运行时,它们同时执行的任务加起来最多 20 个。

运行时资源守卫

资源限制、配置优先级和守卫诊断请见运行时资源守卫

命令行参考

与运行时查询、用量统计及资源守卫相关的 CLI 命令参考:

# === 运行时列表与状态 ===
mopheus runtime list                        # 列出当前工作区的所有运行时、绑定状态与在线情况

# === 用量与活动分析 ===
mopheus runtime usage <runtime-id>          # 查看指定运行时的任务用量统计(支持 --days 过滤)
mopheus runtime activity <runtime-id>       # 查看指定运行时的每小时任务活动趋势