Files
pikasTech-agentrun/docs/reference/spec-v01-scheduler.md
T

3.2 KiB
Raw Blame History

v0.1 Scheduler Deferred 规格

agentrun-scheduler 是 AgentRun 后续自动调度器。它扫描 pending runs 或 Queue task attempts,选择 backend/profile/capacity,创建 runner Jobs,并处理 stale lease recovery。v0.1 保留该规格用于边界收敛,但自动 scheduler 不作为第一阶段交付和发布通过条件。

在系统中的职责划分

  • 只在 M1-M3 稳定后进入实现;MVP 先通过 CLI/manual dispatch 启动 runner。
  • 未来负责 pending run scan、capacity selection、runner Job creation、stale lease recovery 和 scheduler restart recovery。
  • AgentRun Queue 吸收 UniDesk Code Queue 后,Scheduler 是唯一长期调度方向;旧 UniDesk Code Queue scheduler 不保留。
  • 不直接执行 backend,不直接写 provider events,不绕过 agentrun-mgr claim/report。
  • 不替代 tenant 业务授权;只能消费 manager 已保存的 run policy。

Deferred 边界

v0.1 第一阶段不得因为 scheduler 未实现而阻塞最小真实闭环。发布候选可以在 scheduler 未实现时通过,但必须满足:

  • CLI/manual dispatch 能启动真实 runner。
  • manager durable facts、runner claim、backend turn、events 和 terminal status 全部真实可用。
  • scheduler 相关字段或状态不会被误报为 active runtime 通过证据。

若后续在 v0.1 lane 内启用 scheduler,必须更新本文并补齐测试规格,不得把一次性 poller、自定义 runner 或手工脚本伪装成 scheduler。

未来 API 与运行形态

Scheduler 未来应运行在 agentrun-v01 namespace,作为独立 Deployment 或 manager 内受控 loop 二选一;选择前必须重新评估 HA、leader election、lease recovery 和 rollout 风险。

未来 scheduler 只能通过 manager API 观察和改变 run 调度状态,不能直接写 Postgres 或直接调用 backend

scheduler -> agentrun-mgr -> durable facts
scheduler -> Kubernetes API -> runner Job
runner -> agentrun-mgr -> events/status

测试规格

T1 Deferred 状态检查

阅读本文和 spec-v01-services.md,然后检查 v0.1 发布验收材料。确认 scheduler 未实现时被明确标记为 Deferred,且发布通过证据来自 CLI/manual dispatch 的真实 runner 闭环,而不是 scheduler 占位。

T2 未来 scheduler 启用前检查

阅读本文,然后在实现 scheduler 前检查设计是否包含 pending scan、capacity selection、runner Job creation、stale lease recovery、leader/restart 行为和 failureKind。缺少这些内容时不得启用自动 scheduler。

T3 不接受自定义 poller

阅读本文和 spec-v01-cicd.md,然后检查 runtime 与 CI/CD 链路。确认没有长期自定义 runner、CI.json runner、自研 poller 或手工脚本承担 scheduler 职责。

规格的实现情况

规格项 状态 说明
Scheduler 边界规格 已定义 本文定义 deferred 边界。
自动 pending scan Deferred 不作为 v0.1 第一阶段验收目标。
runner Job 自动创建 Deferred 先使用 CLI/manual dispatch。
stale lease recovery Deferred 未来实现前需补齐详细测试。