Skip to content

P1 · 平台如何统一管理和控制 Agent? - Control Plane ​

所属知识库:Agent 全栈技术地图
所属领域:04 · Agent Platform
所属章节:02 · Agent Platform 是如何构建和运行的? - Technical Architecture
文档类型:专题研究 / 技术架构 / 参考设计
版本:v1.3
更新日期:2026 年 11 月 1 日
核心问题:Agent Platform 如何以统一的控制面管理 Agent 定义、部署、执行准入、生命周期、策略与资源,并与执行面保持安全、可追踪、可恢复的协作?

专题导读 ​

本篇属 Technical Architecture。Control Plane(控制面)是 Agent Platform 的管理与决策职责集合:它将用户意图和平台策略转化为可验证、可审计的执行安排,并持续维护 Agent 及相关对象的期望状态。它并不等同于后台管理页面,也不意味着所有请求都必须经过单个“控制面微服务”。

本篇承接 Fundamentals 的对象模型及本章 Technical Architecture 总纲,回答五个问题:控制面管理什么;对哪些动作做决策;如何把决策交给执行面;怎样处理异步任务与故障;如何把权限、配额、版本和审计嵌入控制流程。本文以多 Agent 研究报告 Studio 为贯穿案例,给出参考对象模型、接口契约、状态机、时序图、故障矩阵与验证清单。

研究边界:P1 研究平台级控制职责和协作契约。P2 深入研究实际执行与资源隔离;P3 研究 Agent Registry;P5 研究部署和运行生命周期;P6 研究工作流调度;P11、P12 研究租户隔离及治理策略。本文只说明它们与控制面的接口,不代替这些专题。

研究结论 ​

  1. 控制面负责决定“允许什么、执行什么版本、由谁承载、如何跟踪”,执行面负责“实际运行并报告事实”。 控制面可以委派调度和部分执行期决策,但不能把授权和资源边界仅寄托于模型提示词。
  2. 控制面的核心是对象状态与契约,不是界面或某个框架。 Agent Definition、Version、Deployment、Run、Attempt、Approval、Policy Decision 等对象必须具有稳定标识和明确关系。
  3. 一次运行必须固定可追溯的执行快照。 至少记录 Agent/Workflow 版本、配置引用、租户、调用主体、权限范围及资源预算;敏感凭据使用安全引用,不复制明文。
  4. 执行请求需要“鉴权 → 策略/配额准入 → 版本解析 → 持久化 → 可靠派发 → 结果归并”闭环。 仅在 HTTP 处理器内直接启动长任务会使故障恢复与审计变得困难。
  5. 控制面与执行面之间宜采用可重试的异步契约,并按至少一次交付的现实设计幂等。 不应默认消息恰好一次送达,也不能把“请求已受理”误写成“任务已成功”。
  6. 期望状态与观测状态应区分。 控制面声明部署目标和运行意图,执行面报告实际执行、健康和结果;对账机制负责处理差异。
  7. 从模块化单体控制服务 + 独立 Worker 起步通常更符合 Studio 的 MVP 阶段。 是否拆分服务取决于隔离、负载、团队和可靠性要求,而非平台名称。

一、概念与边界 ​

1.1 什么是控制面 ​

控制面是一组负责平台资源声明、管理决策、执行准入、协调与治理的能力。它面向用户、开发者、管理员及自动化调用方,接收创建、配置、发布、启动、暂停、取消、审批等意图,检查是否允许,记录其结果,并驱动执行面采取行动。

可将平台简化为三个协作视角:

视角核心职责典型输入典型输出
Control Plane管理对象、策略判断、准入、调度意图、生命周期协调API 命令、版本变更、审批决定状态变更、执行指令、审计事件
Execution Plane执行 Agent System、工具调用、隔离与运行报告运行快照、租约/令牌、任务消息运行事件、结果、指标、产物
Shared Services身份、数据库、队列、密钥、存储、观测等基础能力两侧的服务调用身份与策略数据、持久化及遥测

“控制面 / 数据面”在基础设施领域具有广泛用法;在 Agent Platform 中,Execution Plane 更准确地强调长时间运行、模型调用与工具操作。二者是逻辑划分,不保证网络隔离,也不天然意味着微服务。

1.2 控制面不是什么 ​

  • 不是单纯的 Admin Console。前端管理页只是控制面的一个入口。
  • 不是 Agent 的推理循环。模型如何规划和调用工具属于 Agent/Agent System 的执行机制。
  • 不是 Workflow Engine 的同义词。工作流引擎可能处于执行面或独立编排服务;控制面负责其定义、启动、权限与生命周期契约。
  • 不是“万能中枢”。模型推理、文件解析、长任务执行和工具沙箱不应因控制方便而全部挤入同步 API 进程。
  • 不是安全的唯一执行点。工具访问、网络隔离、凭据作用域等需要在实际执行路径再次强制校验。

1.3 控制面研究的抽象层级 ​

  1. 产品操作:用户点击“运行报告”,或调用 POST /runs。
  2. 领域命令:CreateRun、ApproveRun、CancelRun。
  3. 决策与状态:鉴权、策略判断、版本固定、预算预留、状态迁移。
  4. 执行契约:向 Worker 发布 RunRequested、RunCancellationRequested 等消息。
  5. 部署形态:同一进程、模块化单体、独立控制服务或分布式控制集群。

以上五层不能互相替代;例如增加一个“运行”按钮并不等于已经实现可靠的控制面。

二、控制面管理的对象与关系 ​

2.1 核心对象清单 ​

对象作用关键关系控制面职责
Tenant / Organization资源与治理边界拥有 Workspace、策略、配额身份与归属、隔离上下文
Workspace / Project协作与业务组织容纳 Agent、任务、产物成员权限、资源可见性
Agent DefinitionAgent 的逻辑身份对应多个 Version创建、编辑、归档
Agent Version固定配置与依赖被 Deployment/Run 引用校验、发布、撤销
Workflow Version固定编排定义被 Run 引用版本解析与准入
Deployment版本在环境中的可用配置指向版本和环境期望状态、发布、回滚
Runtime Instance实际运行承载体承载 Attempt发现、健康、分配策略
Run一次业务执行固定快照、含多个 Attempt准入、状态、取消、审计
Attempt一次执行尝试属于 Run重试条件、次数与去重
Approval人工决策记录关联 Run/步骤审批权限、有效期与结果
Artifact输出成果属于 Run/Project元数据、访问授权、保留
Policy / Quota规则与预算作用于租户、资源、动作决策、计量、审计

关键约束:Run 是业务执行的稳定身份,Attempt 是一次尝试;Worker 重启或重试不应自动创建一个全新的业务 Run。Deployment 是期望可用状态,不等于一个具体进程;Agent Version 是不可变定义,不等于运行中的实例。

2.2 对象关系示意 ​

mermaid
flowchart TD
    T[Tenant / Organization] --> W[Workspace / Project]
    W --> D[Agent Definition]
    D --> V[Agent Version]
    V --> DEP[Deployment]
    W --> R[Run]
    V -.固定引用.-> R
    DEP -.可作为运行入口.-> R
    R --> A[Attempt]
    A --> RI[Runtime Instance]
    R --> AP[Approval]
    R --> ART[Artifact]
    T --> POL[Policy / Quota]
    POL -.准入与约束.-> R

这是一张概念图,不代表数据库外键必须逐一按图建立。一个 Run 还可能引用多个 Agent Version、Workflow Version 和资源版本,尤其是在多 Agent 场景中。

2.3 运行快照的最小内容 ​

每次获准启动的 Run 应固定:run_id、tenant_id、project_id、initiator、agent_version_id 或 workflow_version_id、input_ref、policy_version、budget_limit、created_at、trace_id。如果运行依赖多 Agent,应固定各节点版本和依赖引用。

资源密钥应保存为 secret_ref,由运行时按授权领取短期凭据;不要把密钥明文放入 Run 快照、队列消息、日志或审计记录。是否固定模型精确版本取决于供应商支持,若无法固定,应记录可观测的模型标识和调用时间,并明确复现限制。

三、控制面的核心职责 ​

3.1 统一入口与身份上下文 ​

入口可以是 Web UI、REST/GraphQL API、CLI、SDK 或自动化事件。所有入口应进入一致的领域授权流程,避免“UI 禁止但 API 可绕过”的缺陷。请求上下文至少包含调用主体、租户、目标资源、动作、请求关联标识和必要的风险属性。

认证回答“你是谁”,授权回答“你能否对这个对象执行这个动作”。角色(RBAC)、属性(ABAC)或关系(ReBAC)可按需要组合。不能把来自前端的 tenant_id 当作可信权限证明;服务端必须验证调用者与目标租户的关系。

3.2 定义、版本与发布控制 ​

控制面管理 Agent/Workflow 的创建、修改、校验、发布、撤销与引用;具体定义存储与查询由 P3 Agent Registry 深入研究。重要规则包括:草稿可修改、发布版本不可变、部署指向明确版本、运行绑定快照、撤销新启动权限不应无条件破坏已运行任务。

发布流程可包括 schema 校验、工具权限检查、依赖可用性检查、测试门槛、审批和签名/哈希记录。发布与执行是不同权限动作。

3.3 运行准入与资源决策 ​

一次运行请求至少需要通过以下检查:

  1. 主体是否对该 Project/Agent 拥有 run:create 权限。
  2. 目标版本是否可运行,是否被禁用或撤销。
  3. 输入是否满足 schema、大小、内容与引用访问约束。
  4. 所需模型、工具、知识源是否可用且允许访问。
  5. 租户并发数、速率、令牌预算、货币预算和资源上限是否允许。
  6. 高风险操作是否需要预先审批,或执行到关键步骤时再次审批。
  7. 是否能分配到满足隔离和能力要求的执行资源。

配额检查应与预留/扣减策略一致,避免并发请求同时通过检查造成超额。预算估算可能不准确,执行期还需持续计量并设置硬限制或明确的超限处置策略。

3.4 调度意图与执行分配 ​

控制面可以把获准的 Run 放入持久化队列,或交给独立调度器分配 Worker。常见分配条件包括租户隔离、模型/工具可用性、执行环境、地理/数据驻留限制、资源需求、优先级与并发限制。

控制面通常不负责逐 token 调度。执行面可在获授权范围内自行决定具体模型调用、工具执行顺序和局部重试;超出权限、预算或审批边界时需要返回控制面或策略执行点。

3.5 生命周期控制与期望状态 ​

控制面接收 pause、resume、cancel、retry、approve 等命令,校验状态迁移是否允许,并通过事件通知执行面。应区分:

  • 命令已接受:控制面持久化意图;不代表执行面已完成。
  • 执行已确认:Worker 已观察并处理控制意图。
  • 最终状态:Run 已完成、失败、取消或超时,并持久化结果。

暂停、取消通常不是瞬时操作。若 Worker 正在执行不可中断的外部工具调用,控制面只能保证尽力取消,并通过超时、租约失效和后续对账处理残留执行。外部副作用的补偿需要独立设计。

3.6 审计、观测与治理 ​

每个重要控制动作应形成可关联的审计事实:谁、在何时、对哪个对象、请求什么动作、采用哪个策略版本、得到什么决策、最终产生什么结果。审计记录不应直接包含敏感提示词、令牌或凭据。操作日志、分布式追踪、指标和审计日志有不同用途,不能互相替代。

四、控制面与执行面的协作协议 ​

4.1 端到端时序 ​

mermaid
sequenceDiagram
    autonumber
    participant U as User / API Client
    participant C as Control API
    participant DB as Database + Outbox
    participant Q as Queue
    participant W as Worker / Execution Plane
    participant S as Artifact Storage
    U->>C: POST /runs + Idempotency-Key
    C->>C: Authenticate / Authorize / Policy / Quota
    C->>DB: Transaction: Run(QUEUED) + Outbox event
    C-->>U: 202 Accepted + run_id
    DB-->>Q: Outbox publisher: RunRequested
    Q->>W: Deliver run_id + snapshot_ref
    W->>DB: Acquire lease / register Attempt
    W->>W: Execute pinned Agent/Workflow version
    W->>S: Persist artifact (if any)
    W->>DB: Report events + terminal outcome
    W-->>Q: Acknowledge message
    U->>C: GET /runs/{run_id}
    C->>DB: Read authorized Run state
    C-->>U: State + artifact references

示意采用事务性 Outbox:先在同一数据库事务中写入 Run 与待发布事件,再异步投递到队列,避免“Run 已创建但消息丢失”或“消息已发送但 Run 未落库”的双写不一致。Outbox 不会自动解决重复投递;消费者必须幂等。

4.2 参考接口契约 ​

以下接口为教学性参考设计,不是现成平台的官方 API:

接口语义关键约束
POST /v1/runs创建并请求运行Idempotency-Key、鉴权、版本快照
GET /v1/runs/{id}查询状态与结果引用资源级授权、租户隔离
POST /v1/runs/{id}:cancel请求取消状态迁移校验、异步生效
POST /v1/runs/{id}:resume恢复可恢复任务checkpoint 有效性、审批状态
POST /v1/approvals/{id}:decide审批决策审批主体、一次性决定、过期校验
POST /v1/deployments创建部署意图版本不可变引用、发布权限
GET /v1/events?run_id=...查询运行事件过滤、分页、授权与保留期

创建运行的参考请求:

json
{
  "project_id": "proj_123",
  "workflow_version_id": "wfv_2026_10_31_01",
  "input_ref": "obj://tenant-a/inputs/request-42.json",
  "execution_profile": "standard",
  "budget": { "max_cost_usd": 3.0, "max_duration_seconds": 1800 }
}

参考响应:

json
{
  "run_id": "run_8f2c",
  "status": "QUEUED",
  "accepted_at": "2026-10-31T12:00:00Z",
  "status_url": "/v1/runs/run_8f2c"
}

服务端不得直接信任请求中任何自称拥有高权限的字段;执行快照必须由服务端解析、验证和固定。预算金额仅用于展示示例字段,并非推荐定价。

4.3 参考事件契约 ​

json
{
  "event_id": "evt_001",
  "event_type": "RunRequested",
  "schema_version": 1,
  "run_id": "run_8f2c",
  "tenant_id": "tenant_a",
  "snapshot_ref": "db://run_snapshots/run_8f2c",
  "occurred_at": "2026-10-31T12:00:00Z",
  "trace_id": "trace_abc"
}

事件仅包含必要的标识与受控引用。Worker 获取快照时再次验证租户、租约与运行权限。对于敏感操作,不能仅凭可伪造的队列字段完成授权。

4.4 幂等、去重与顺序 ​

  • API 幂等:同一调用主体、作用域、Idempotency-Key 和请求摘要应返回同一业务结果;同键不同内容应拒绝或显式冲突。
  • 消息去重:以 event_id、run_id、attempt_id 和状态版本控制重复消费。
  • 状态并发:使用版本号/CAS 或数据库事务,防止旧事件覆盖终态。
  • 事件乱序:按 Run 内单调序号或状态版本归并,不依赖跨队列全局顺序。
  • 外部副作用:发送邮件、支付、写第三方系统等需要业务幂等键、审批和补偿策略;平台无法凭队列去重保证外部世界“恰好一次”。

五、控制面的状态机与一致性 ​

5.1 Run 状态机(参考) ​

mermaid
stateDiagram-v2
    [*] --> QUEUED
    QUEUED --> RUNNING: Worker lease acquired
    QUEUED --> CANCELLING: cancel requested
    RUNNING --> WAITING_APPROVAL: approval gate
    WAITING_APPROVAL --> QUEUED: approved and resumed
    WAITING_APPROVAL --> CANCELLING: rejected / cancelled
    RUNNING --> PAUSING: pause requested
    PAUSING --> PAUSED: checkpoint confirmed
    PAUSED --> QUEUED: resume accepted
    RUNNING --> SUCCEEDED: committed outcome
    RUNNING --> FAILED: terminal failure
    RUNNING --> CANCELLING: cancel requested
    CANCELLING --> CANCELLED: stop confirmed
    CANCELLING --> FAILED: cancellation failure policy
    QUEUED --> FAILED: admission expiry
    SUCCEEDED --> [*]
    FAILED --> [*]
    CANCELLED --> [*]

这是教学性状态机,具体实现可增加 TIMED_OUT、RETRY_SCHEDULED、EXPIRED 等状态。审批拒绝是否取消整个 Run、暂停是否可恢复、失败后重试是新 Attempt 还是新 Run,均应由产品语义和执行契约明确规定。

5.2 期望状态与观测状态 ​

对于 Deployment:期望状态可能是“版本 v3、并发 4、环境 production”,观测状态可能是“当前仅 3 个健康 Worker”。控制面对账器定期比较二者并触发修复、告警或回滚。

对于 Run:期望状态可能是 CANCEL_REQUESTED,观测状态可能仍是 RUNNING。若控制面在取消请求时立即写入 CANCELLED,将掩盖仍在运行的外部副作用。因此建议分别保存控制意图与执行事实,或采用能表达中间状态的状态机。

5.3 租约、心跳与失联 ​

Worker 可通过带过期时间的租约声明对 Attempt 的执行权;租约超时后,调度器按策略回收或重新分配。对于可能发生长时间停顿的任务,必须考虑:

  • 心跳延迟不等于进程必然死亡;可能出现网络分区。
  • 旧 Worker 恢复后可能与新 Worker 并行执行,需要 fencing token 或等价机制阻止过期持有者写入受保护状态。
  • 对外部系统的副作用未必受平台 fencing 保护,仍需外部幂等与人工核查。
  • checkpoint 必须记录兼容的执行版本、状态 schema 和资源引用,否则恢复可能失败。

六、平台安全与治理的控制点 ​

6.1 策略决策与执行位置 ​

可以借用 Policy Administration Point、Policy Decision Point、Policy Enforcement Point 等概念组织策略,但具体实现未必需要独立策略引擎。常见控制点如下:

控制点控制面责任执行面/资源侧责任
创建 Agent验证创建者与 Workspace 权限不适用
发布版本校验依赖、风险、审批加载已批准版本
启动 Run认证、授权、配额、预算预留验证租约与运行快照
调用工具颁发最小权限范围与策略在工具网关/沙箱强制执行
访问文件生成受控资源引用校验租户、路径、有效期
人工审批确认审批者、决定和过期时间审批前阻止对应副作用
取消与回滚记录意图、授权、对账停止执行、报告补偿结果

关键原则:控制面准入通过,不代表执行过程中所有操作都被永久授权。执行期权限可因令牌过期、策略变更或风险升级而被拒绝。

6.2 多租户与资源隔离 ​

租户边界必须贯穿 API、数据库查询、缓存键、队列消息、对象存储路径、Worker 调度、工具凭据和审计日志。共享 Worker 是否足够安全取决于代码执行风险、凭据隔离和数据敏感度;高风险任务可使用容器/沙箱或专用执行池。控制面要保存隔离策略,实际隔离由执行环境与数据访问控制落实。

6.3 配额、预算与公平性 ​

平台应区分:请求速率、并发 Run、排队深度、模型令牌、工具调用、CPU/内存、存储与货币成本。配额是准入边界,计量是实际消耗记录,预算是支出控制目标。预估费用可能与真实消耗不同,需明确预留、结算、超额与退款策略。对不同租户的公平调度应考虑饥饿、优先级和资源争用。

七、三种实现模式及取舍 ​

模式适用条件优点风险
模块化单体控制服务 + Worker单团队、早期 MVP事务边界简单、开发快后期模块耦合与容量边界
独立控制服务 + 队列 + Worker 池多团队、异步任务增长扩容和隔离较灵活事件一致性、调试复杂度
多租户控制集群 + 分层执行池高并发、多组织、强隔离独立治理、分级资源调度运维成本、复杂度、策略一致性

不要把“控制面和执行面分责”误认为“必须部署成两个微服务”。即使采用单体,也应将控制 API、领域服务、持久化和执行 Worker 的契约隔离出来。

7.1 Studio 的建议起步架构 ​

mermaid
flowchart LR
    UI[Studio Web UI] --> API[Platform API / Control Modules]
    API --> DB[(PostgreSQL)]
    API --> OUT[Outbox Publisher]
    OUT --> Q[(Task Queue)]
    Q --> WK[Agent System Worker]
    WK --> MODELS[Models / Tools / Knowledge]
    WK --> STORE[(Artifact Storage)]
    WK --> DB
    API --> AUTH[Identity / Policy / Quota]
    API --> OBS[Audit / Telemetry]
    WK --> OBS

这是逻辑参考图。早期可以让 Outbox Publisher 与 API 共享部署;执行 Worker 独立进程,避免长任务占用 Web 请求。PostgreSQL 可作为状态主存储,任务队列可按技术选型采用受支持的消息/作业系统。是否采用 Redis、消息代理或专用工作流引擎,应由负载和恢复要求决定。

7.2 Studio 的控制面动作实例 ​

用户在 Project 中启动“城市文化研究报告”工作流:

  1. 控制面验证用户在该 Project 的运行权限,并解析工作流的已发布版本。
  2. 固定选题、调研、分析、审核等 Agent 的版本和允许工具,创建 Run 快照。
  3. 检查研究预算、并发限制与可访问的数据源;将 Run 持久化为 QUEUED。
  4. Worker 执行选题 Agent 和审核 Agent 的循环;每个关键步骤记录事件与检查点。
  5. 到达“用户确认选题”节点,执行面报告 WAITING_APPROVAL,控制面创建 Approval 对象。
  6. 用户确认后,控制面校验审批权限与版本,发出恢复命令;Worker 继续深度调研。
  7. 报告产物写入对象存储,控制面登记 Artifact 元数据、权限和归属,Run 进入终态。

这个案例说明:控制面管理“能否做、做哪个版本、如何受控推进”;Agent System 管理“具体怎样研究、分析和生成报告”。

八、常见失败模式与防护 ​

失败模式根因防护或恢复策略
Run 入库成功但任务未派发数据库与队列双写事务性 Outbox、重投递与告警
消息重复导致任务重复至少一次交付幂等消费、租约、Attempt 去重
用户重复点击创建多个 Run无 API 幂等Idempotency-Key + 请求摘要
旧 Worker 覆盖新状态租约过期后继续写状态版本、fencing token
用户跨租户读取产物仅 UI 做隔离服务端资源级鉴权与存储授权
发布版本被原地修改缺少不可变版本版本快照、内容哈希、发布权限
取消请求后仍有外部操作把取消视为同步完成中间状态、执行确认、补偿流程
配额并发超卖只做读后检查原子预留、执行期计量与结算
审批后运行了另一版本审批对象未绑定快照审批绑定 Run、步骤与版本摘要
控制面宕机导致状态丢失内存状态与临时队列持久化状态、Outbox、对账器
任务长时间卡住无超时、心跳、告警租约、超时策略、死信队列
日志泄漏凭据或输入数据无数据分级与脱敏最小日志、敏感字段脱敏、访问审计

九、可观测性与运行指标 ​

控制面至少需要以下观测维度:

指标/证据说明用途
API 受理延迟、错误率请求到持久化受理控制面可用性
准入拒绝原因分布权限、配额、版本、策略产品诊断与安全审计
队列等待时长Run 入队到 Worker 领取容量规划
派发失败与 Outbox 积压控制事件投递状态检测双写/队列故障
租约超时与重试次数Worker 不稳定性可靠性分析
Run 状态滞留时长RUNNING、WAITING_APPROVAL 等卡死与审批瓶颈
预算预留与实际消耗差额估算与计量差异成本治理
取消完成时延取消意图到执行确认用户体验与风险
审计事件完整率控制动作是否可追溯合规与事故调查

关键关联标识包括 request_id、trace_id、tenant_id、run_id、attempt_id、deployment_id 和 event_id。对高基数标识应谨慎设计指标标签,避免监控系统成本失控;完整标识更适合日志或追踪。

十、工程验证计划与验收标准 ​

下表为建议实施的测试,不是已完成的测试结果。

编号测试场景预期结果
CP-01未授权用户创建 Run403/等价拒绝;无 Run、无派发
CP-02跨租户读取 Run/Artifact服务端拒绝;不泄露对象存在性或内容
CP-03相同幂等键重复创建同一作用域返回同一 Run;不重复执行
CP-04相同幂等键不同请求体明确冲突,不静默复用
CP-05Run 入库后 Outbox 发布进程崩溃恢复后最终派发,不丢 Run
CP-06队列重复投递不产生未经授权的并行副作用
CP-07Worker 租约过期后恢复旧持有者不能覆盖新状态
CP-08已发布版本被修改拒绝原地修改,必须产生新版本
CP-09Run 执行中修改 Agent 草稿已启动 Run 的快照不变
CP-10并发超额请求原子配额控制;按策略排队/拒绝
CP-11等待审批时尝试执行高风险工具未获批准不得产生副作用
CP-12非审批人提交批准拒绝并记录审计
CP-13取消正在执行的任务明确中间状态;最终确认或超时告警
CP-14控制面重启持久化 Run、审批和派发意图仍可恢复
CP-15队列长时间不可用Outbox 积压可观测、可重试、可告警
CP-16Worker 重复提交终态终态不可被旧事件覆盖
CP-17任务完成后登记产物Artifact 与 Run 归属一致、访问受控
CP-18凭据/敏感信息检查API 响应、队列、日志和审计中无明文泄漏

建议在验收前明确服务等级目标(例如受理延迟、派发时延、可恢复时间),再根据真实负载测试结果设置阈值;本文不凭空指定生产级 SLO 数字。

10.1 最小可用控制面的完成定义 ​

一个可投入内部试用的最小控制面至少应具备:资源级身份授权;Agent/Workflow 不可变版本引用;Run 持久化与幂等创建;可靠派发;执行状态查询;基础取消/超时;租户或项目级资源边界;审计与故障告警。人工审批、分层租户隔离和复杂策略引擎是否属于第一阶段必需项,应由 Studio 的实际风险和用户范围决定。

10.2 推荐开发顺序 ​

  1. 先定义对象 ID、状态机、版本与权限模型。
  2. 实现控制 API、事务写入与运行快照。
  3. 实现可靠派发、Worker 租约与状态回报。
  4. 实现取消、超时、失败重试和对账。
  5. 接入审批、配额、成本计量和产物授权。
  6. 在故障注入与负载测试中验证边界,再按需要拆分服务。

十一、与 P2 - P3 - P4 - P5 - P6 - P7 - P8 - P9 - P10 - P11 - P12 及 F1 - F2 - F3 - F4 - F5 - F6 - F7 - F8 - F9 - F10 - F11 - F12 的关系 ​

关联专题P1 提供的接口/约束对方专题深入研究的内容
P2 Execution Plane运行快照、准入结果、租约与控制命令执行隔离、资源调度、工具与模型调用
P3 Agent Registry版本发布、查询与固定引用契约定义存储、索引、版本及依赖
P4 Agent Development Services开发操作授权、发布准入构建、校验、调试与开发工具服务
P5 Deployment & Runtime Management期望状态、部署命令、Run 状态契约实例、部署、健康、滚动更新与回滚
P6 Workflow Management工作流版本引用、启动与审批契约DAG/状态机、调度、协作、补偿
P7 Resource & Integration资源授权、预算与策略约束模型、工具、知识及连接器接入
P8 Platform API & SDK领域命令与错误语义外部接口、SDK、版本与开发者契约
P9 Extensibility & Ecosystem扩展权限与注册准入插件生命周期、扩展点、兼容性
P10 Platform Data & Assets资产引用、归属与访问控制存储、共享、保留、产物治理
P11 Multi-tenancy & Isolation请求租户上下文与资源边界数据、执行、网络、组织隔离
P12 Platform Governance决策执行点、审计与配额接口策略、权限、预算、合规治理

产品架构中,F1 - F2 - F3 - F4 的创建/配置/调试/发布操作通过控制 API 形成可审计命令;F5 的 Workspace/Project 通过租户和资源模型获得权限边界;F6 - F7 - F8 的执行/协作/监控通过 Run、事件和审批契约实现;F9 - F10 - F11 - F12 的管理、交付、开发者接口和平台管理则依赖控制面的统一授权与状态查询。产品界面不是控制面本身,而是控制能力的一种使用方式。

十二、常见认知误区与自检问题 ​

12.1 常见误区 ​

  1. “有管理后台就有控制面。” 后台界面可能只做配置 CRUD,缺少版本、准入、生命周期和执行契约。
  2. “控制面必须是单独微服务。” 逻辑分责与物理拆分是两回事。
  3. “队列保证任务只执行一次。” 重试和网络故障意味着必须设计幂等与副作用控制。
  4. “Run 创建成功等于任务执行成功。” 202 Accepted 只表示请求已受理。
  5. “权限校验一次就够。” 执行期工具、文件和外部资源仍需强制执行权限。
  6. “取消按钮可以立即停止任何外部操作。” 取消是协议,需要执行确认与补偿机制。
  7. “所有状态都放在 Agent 内存里。” 长任务、审批和恢复需要持久化与可重建状态。
  8. “多租户只要数据库加 tenant_id。” 队列、缓存、文件、Worker、密钥和审计同样需要隔离。

12.2 自检问题 ​

  • 能否说明 Agent Version、Deployment、Runtime Instance、Run、Attempt 各自的身份与生命周期?
  • 控制面是否能在不启动任务的情况下验证权限、版本和预算?
  • 控制面进程在“写入 Run 后、派发消息前”崩溃会发生什么?
  • 同一任务被投递两次、旧 Worker 恢复、审批消息乱序时,系统如何处理?
  • 用户点击取消后,哪些状态表示“请求已受理”,哪些表示“执行已停止”?
  • 如何证明某份报告由哪个工作流版本、哪些 Agent 版本及哪次 Run 生成?
  • 哪些安全约束在控制面判断,哪些必须在 Worker/工具网关再次强制执行?
  • 当 Studio 从单团队扩展到多租户时,哪些对象和接口无需重新设计?

第六轮跨章节契约核对(v1.3-r1;2026-11-01) ​

[平台设计决策 / 待测试] 本节是领域级一致性修订说明,优先于本篇不一致的历史局部示例;不表示已执行数据库迁移、API 合约或运行测试。统一参考:04-Agent-Platform-Canonical-Contracts-v1.3-r1.md。

本篇 Mermaid 中 WAITING_APPROVAL 为产品可读状态而非统一数据库枚举;映射为 waiting + status_reason=approval。CANCEL_REQUESTED 属于控制意图 desired_action=cancel,不代表已取消;202 Accepted 仅表示受理,不代表 Run 完成。既有图、指标标签和示例需在实施时统一转换。

上述映射不应机械替换其他对象(如 ManagementOperation、Deployment)的同名状态;正式实施应更新 OpenAPI/JSON Schema、SQL 约束、事件消费者、UI 映射及测试。

附录 A:参考文献与原始资料 ​

以下资料用于进一步核对通用架构原则。它们支持特定工程概念,但不代表存在唯一的 Agent Platform 标准架构。具体产品能力和版本应以各项目最新官方文档为准。

  1. Kubernetes Documentation, Kubernetes Components:控制平面、节点组件与控制循环的通用架构参考。kubernetes.io/docs/concepts/overview/components
  2. Kubernetes Documentation, Controllers:期望状态与观测状态的协调/对账机制。kubernetes.io/docs/concepts/architecture/controller
  3. Kubernetes Documentation, Leases:租约、心跳及协调的工程参考。kubernetes.io/docs/concepts/architecture/leases
  4. AWS Prescriptive Guidance, Transactional Outbox Pattern:数据库状态与事件发布的一致性。docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/transactional-outbox.html
  5. Microsoft Azure Architecture Center, Competing Consumers Pattern:多消费者处理消息及并发控制的通用模式。learn.microsoft.com/en-us/azure/architecture/patterns/competing-consumers
  6. Microsoft Azure Architecture Center, Idempotent Message Processing(相关可靠消息设计参考,可在其消息模式与架构指南中查阅)。learn.microsoft.com/en-us/azure/architecture
  7. OpenTelemetry Documentation, Concepts:Trace、Metric、Log 等可观测性概念。opentelemetry.io/docs/concepts
  8. NIST, AI Risk Management Framework:AI 风险管理与治理的参考框架。www.nist.gov/itl/ai-risk-management-framework
  9. Open Policy Agent Documentation:策略决策与执行集成的参考。www.openpolicyagent.org/docs
  10. OWASP, Top 10 for LLM Applications:LLM 应用安全风险与防护参考。genai.owasp.org/llm-top-10

来源适用性说明:Kubernetes 的控制面概念、Outbox 和消息处理模式是跨领域可迁移的工程原则;本篇对 Agent Platform 的对象、API、状态机和 Studio 案例均为研究性综合设计,不应误认为上述文献提供了相同的 Agent Platform 实现。

附录 B:研究证据、验证声明与适用边界 ​

B.1 证据分级 ​

内容证据属性适用边界
控制面/执行面职责分离通用架构原则 + 本文定义各平台的具体边界可能不同
期望状态/观测状态及对账借鉴成熟控制器模式需结合 Agent 执行语义调整
事务性 Outbox、幂等消费通用分布式系统模式不能保证外部副作用恰好一次
Agent Version/Run/Attempt 对象关系本研究参考领域模型非行业强制统一命名
示例 API、事件、状态机教学性设计方案需经接口评审、测试和演进
Studio 起步架构面向案例的工程建议未测量真实负载和成本
CP-01 - CP-18 测试待执行的验证计划不构成已通过测试的证据

B.2 本次验证情况 ​

本篇完成概念边界、对象关系、职责划分、事件契约、状态机、故障模式与测试计划的文档级自检。未执行平台部署、负载测试、故障注入、安全渗透测试或真实第三方 API 调用。因此,性能、恢复时间、可用性及成本不作实测结论。

B.3 后续专题衔接 ​

下一篇为 P2 · 平台如何执行和承载 Agent 任务? - Execution Plane。它将接续本文定义的运行快照、队列、租约、状态与治理契约,重点研究执行环境、Worker/Runtime、隔离、调度、工具调用、资源管理、长任务与故障恢复。