Skip to content

F6 · 用户如何启动、操作和控制 Agent? - Agent Execution ​

所属知识库:Agent 全栈技术地图
所属领域:04 · Agent Platform
所属章节:03 · Agent Platform 应该提供哪些产品功能? - Product Architecture
文档类型:专题研究 / 产品架构 / 交互与工程参考设计
版本:v1.3
更新日期:2026 年 11 月 1 日
核心问题:Agent Platform 如何让用户以明确的输入、授权和预算启动 Agent,理解执行状态,在运行中进行干预、暂停、恢复、取消或重试,并可靠地取得结果?

专题导读 ​

本篇属 Product Architecture。F1 - F2 - F3 - F4 - F5 分别研究 Agent 创建、配置、开发测试、发布共享以及工作空间与项目组织。F6 关注用户真正使用 Agent 完成任务的交互闭环:启动之前知道将执行什么,执行过程中知道发生什么,遇到问题能够有效干预,结束之后知道得到什么结果。本篇主要研究单个 Agent 的执行体验;多 Agent 协作编排由 F7 展开,运行监控分析由 F8 展开,产物交付由 F10 展开。

技术上,F6 对应 P1 Control Plane、P2 Execution Plane、P5 Deployment & Runtime Management、P6 Workflow Management、P7 Resource & Integration、P8 API & SDK、P10 Data & Assets 与 P12 Governance。下文中的接口、对象、状态和测试属于参考设计与待验证方案,并非已经部署的 Studio 实现。

研究结论 ​

  1. 启动 Agent 的产品动作应生成可追踪的 Run,而不是仅发送一次聊天消息。Run 应具有稳定标识、归属、版本快照、输入引用、状态和成本上下文。
  2. 提交成功、执行成功、业务结果合格必须分开表示。HTTP 接受请求只意味着平台接收执行意图;Run 成功只表示执行机制按定义完成;成果是否通过审核还需独立评价。
  3. 用户应在启动前看见 Agent 身份、版本、输入、可使用资源、预估成本或预算上限、风险操作与审批要求。对高风险操作实行明确授权。
  4. 暂停、取消、重试和恢复具有不同语义。用户界面不能将“已请求取消”显示为“已取消”;也不能保证所有执行器都支持任意时点暂停。
  5. 每次执行固定 Agent Version、关键依赖与权限上下文;运行中的版本切换不应静默改变已启动任务。外部服务的实际行为仍可能随时间变化。
  6. 运行工作台应统一提供输入、状态、事件时间线、可见中间产物、干预入口、最终结果及故障恢复建议;敏感推理内容和凭证不得默认暴露。
  7. Studio MVP 优先实现异步 Run、实时事件、取消、失败重试、人工确认、产物关联与执行记录,再逐步扩展暂停恢复、交互式协作和复杂执行策略。

01 · 概念、范围与关键对象 ​

1.1 Agent Execution 的产品含义 ​

Agent Execution 是用户通过平台请求某个 Agent 执行具体任务,并在任务生命周期中观察和控制其行为的产品能力。它包含启动入口、输入配置、执行反馈、人工干预、终止处理与结果访问。它不等同于底层推理循环,也不等同于 Worker 调度器。

概念产品含义与 F6 的关系
Agent Definition可识别的 Agent用户选择的执行主体
Agent Version不可变的 Agent 定义快照执行时锁定
Deployment可供调用的运行配置与入口决定是否允许在环境中运行
Run一次用户可追踪的执行请求F6 核心对象
AttemptRun 中一次具体执行尝试重试与故障排查
Event执行中可观察的状态或活动时间线、流式反馈
Intervention用户或策略发起的控制动作取消、批准、补充输入等
Artifact执行生成的文件或结构化成果结果预览与交付入口

1.2 Run 与 Session、Message、Workflow Run ​

Session 表示可持续的交互上下文;Message 是会话中的一条消息;Run 是有明确执行边界和生命周期的一次任务。一次 Session 可包含多个 Run,一个 Run 也可处理多条消息或工具调用。Workflow Run 是工作流级执行,可能包含多个 Agent Run;不能将它们混用为同一标识。

1.3 产品范围边界 ​

F6 负责用户侧的单 Agent 运行操作;F7 负责多个 Agent 的协作关系与工作流交互;F8 负责跨运行的可观测性、指标和故障分析;F9 负责 Agent 生命周期管理;F10 负责成果版本、审核、导出与交付。F6 可以提供这些功能的入口,但不重复定义它们的核心业务规则。

02 · 用户角色、任务与使用情境 ​

角色核心目标主要关注点典型权限
业务使用者用 Agent 完成一次任务输入简单、过程可理解、结果可用启动、查看本人 Run、请求取消
项目负责人确保任务符合项目目标预算、风险、审核、进度项目级运行与审批
Agent 构建者验证 Agent 在真实任务中的行为版本、Trace、异常、回归启动测试与诊断
平台运维者保证运行服务可靠队列、资源、故障、配额运维控制,不自动取得业务数据访问权
审批人判断高风险步骤是否可继续操作对象、参数、证据、有效期对指定请求批准或拒绝

典型情境包括:从 Agent 详情页直接运行、从项目工作台启动、在会话中连续交互、从模板任务启动、通过 API 触发,以及工作流中的某个 Agent 节点被调度执行。不同入口应共享同一套 Run 状态与权限语义。

03 · 产品信息架构与运行工作台 ​

3.1 建议的信息架构 ​

mermaid
flowchart TB
    A[Agent 详情 / 项目工作台 / 会话 / API] --> B[启动面板]
    B --> C[运行工作台 Run Workspace]
    C --> D[状态与进度]
    C --> E[事件时间线]
    C --> F[输入与交互]
    C --> G[控制操作]
    C --> H[结果与产物]
    C --> I[运行详情与诊断]
    G --> J[取消 / 重试 / 审批 / 恢复]

3.2 页面组成 ​

启动面板:Agent 名称、版本、运行环境、任务描述、输入字段、文件引用、资源权限提示、预算和提交按钮。运行工作台:任务标题、状态标签、开始与耗时、当前活动、可见事件、用户操作、结果预览。运行详情:Run ID、版本与配置摘要、事件时间线、失败分类、Attempt、成本和相关产物。历史运行:筛选、排序、重启类似任务、比较结果、归档。

3.3 信息层级 ​

首屏优先回答四个问题:“任务是否开始?”“现在进行到哪里?”“我能做什么?”“结果在哪里?”技术日志、Token 细节、Trace 和复杂元数据应按需展开。长时间运行任务需要明确显示最近一次活动时间,避免把无更新误判为停滞或完成。

04 · 启动 Agent 的交互流程 ​

4.1 标准流程 ​

  1. 选择 Agent 或 Deployment,读取当前可用版本与能力摘要。
  2. 填写任务目标、结构化输入、文件或知识资源引用。
  3. 校验字段、资源访问、执行权限、额度、预算和环境状态。
  4. 展示执行预检结果;高风险工具或外部副作用显示审批提示。
  5. 用户确认并提交;平台以幂等键创建 Run。
  6. 返回 Run ID 与初始状态,进入运行工作台或提供后台运行入口。

4.2 启动前预检 ​

检查项示例失败时产品行为
Agent 可用性版本已发布且可执行禁止提交,说明需要发布或部署
输入契约必填字段、类型、长度定位具体字段并保留已填内容
资源权限检索连接已授权引导连接资源或请求授权
预算与配额项目剩余额度展示限制与可调整入口
依赖健康模型服务可用性显示降级策略或建议稍后重试
风险操作发送邮件、写入数据库展示需要审批的操作范围
版本固定解析渠道到具体版本展示实际使用的版本标识

预检属于提交时的判断,不可替代执行时检查;权限和资源状态可能在任务运行过程中发生变化。

4.3 输入设计 ​

优先根据 Agent Input Schema 生成表单,支持文本、枚举、数值、日期、文件与资产引用。高级模式可允许 JSON 输入,但需提供 Schema 校验、示例和错误定位。文件输入应采用资产引用,不应把大文件直接嵌入 Run 元数据。敏感输入需要分类、脱敏与保留期限说明。

4.4 重复提交 ​

双击按钮、网络超时和浏览器刷新都可能造成重复 Run。前端在提交中禁用重复操作,服务端用 Idempotency-Key 与请求指纹识别重复创建。相同键与不同请求体应返回冲突,而不是静默复用旧任务。

05 · Run 状态模型与用户可见语义 ​

5.1 参考状态机 ​

mermaid
stateDiagram-v2
    [*] --> queued
    queued --> running
    queued --> cancelled
    running --> waiting_input
    running --> waiting_approval
    running --> pause_requested
    pause_requested --> paused
    pause_requested --> running
    paused --> running
    waiting_input --> running
    waiting_approval --> running
    running --> cancel_requested
    cancel_requested --> cancelled
    cancel_requested --> succeeded: 已完成的竞态结果
    running --> succeeded
    running --> failed
    running --> timed_out
    queued --> failed
    waiting_input --> cancelled
    waiting_approval --> cancelled
    paused --> cancelled
    succeeded --> [*]
    failed --> [*]
    cancelled --> [*]
    timed_out --> [*]

状态机仅为参考;实现可将 waiting_input 与 waiting_approval 合并为 waiting 加原因字段,或将暂停能力限定在支持检查点的执行器。终态一般不可逆,重试应新建 Attempt 或新 Run,并保留原始记录。

5.2 状态展示 ​

状态用户文案可用操作重要说明
queued等待执行取消、查看排队信息不是运行故障
running正在执行请求取消、交互、查看进度进度可能无法精确量化
waiting_input等待补充信息提交输入、取消需显示等待原因和截止时间
waiting_approval等待审批审批人批准/拒绝必须展示待批准动作详情
pause_requested正在尝试暂停查看状态不保证立即暂停
paused已暂停恢复、取消需要可恢复的状态快照
cancel_requested正在取消查看状态可能仍有正在完成的外部操作
succeeded执行完成查看结果、重新运行不等于质量审核通过
failed执行失败查看原因、重试说明可重试性
cancelled已取消查看部分产物、重新运行已发生副作用不能自动撤销
timed_out执行超时查看记录、按策略重试需区分平台超时与外部调用超时

5.3 进度与时间估计 ​

如果 Agent 任务没有确定步骤总数,不应展示虚假的百分比。可显示阶段标签、已完成步骤数、当前工具活动、最近事件时间及运行时长。预计剩余时间只有在具备可验证估计模型时才展示,并注明估算性质。

06 · 实时反馈、事件流与交互 ​

6.1 事件分类 ​

事件用户价值展示策略
run.accepted已受理显示 Run ID
run.started已开始更新时间线
agent.message.delta输出增量逐步显示,允许断线恢复
tool.call.started正在调用工具展示工具名称和安全摘要
tool.call.completed工具调用结束展示状态和可公开结果
run.waiting_input需要补充输入高优先级提醒
approval.requested需要审批展示审批操作与参数摘要
artifact.created产生中间成果提供预览入口
run.completed执行结束显示最终结果
run.failed执行失败显示错误类别与建议

6.2 SSE 与事件恢复 ​

Web 端可使用 SSE 接收单向运行事件,交互操作通过独立 HTTP API 提交。每个可恢复事件需要稳定的 event_id 与 Run 内序号;断线后用游标补取,避免遗漏和重复展示。服务端可以对高频 token 事件合并推送,不能假设网络连接永久可靠。

6.3 可见性边界 ​

平台可以展示状态、工具名称、经脱敏的输入输出、结构化步骤和证据链接;不应默认暴露密钥、其他租户数据或模型内部私有推理内容。调试视图需要更严格的权限与数据保留规则。用户看到的“思考中”只应表示可观察的处理状态,不应暗示平台拥有可公开的完整内部推理记录。

07 · 用户控制操作及其执行语义 ​

7.1 取消 Cancel ​

取消是一个请求:Control Plane 将 Run 标记为 cancel_requested,向执行器传播取消信号,执行器在安全检查点终止后报告 cancelled。如果执行已完成或外部操作已经提交,取消无法保证回滚。产品需显示“取消中”及最终结果,不得立即宣称取消成功。

7.2 暂停与恢复 Pause / Resume ​

暂停需要执行器支持状态持久化、检查点或明确的等待点。无检查点的长模型调用、不可中断外部工具和流式网络调用可能无法即时暂停。恢复前应检查版本、资源权限、凭证有效性、预算和外部依赖;恢复操作应记录操作者与时间。

7.3 重试 Retry ​

重试方式使用条件关键风险
同一 Run 新 Attempt可安全重新执行且语义允许需防止副作用重复
从检查点恢复已持久化执行状态检查点可能与环境不兼容
新建 Run 并复用输入需要独立历史和新的配置可能产生不同结果与成本
仅重试失败工具调用工具支持幂等或可验证结果外部系统可能已执行成功

用户界面必须区分“重试整个任务”与“恢复未完成步骤”。对发邮件、付款、数据库写入等操作,未经幂等或结果确认不得盲目重试。

7.4 补充输入与人工审批 ​

用户补充输入应绑定具体 Run 和等待请求,并带有请求版本、有效期和权限校验。审批动作需展示将执行的工具、目标、参数摘要、影响范围及成本,审批结果绑定参数摘要,防止审批后被替换为其他操作。拒绝审批后的行为可以是失败、跳过或走替代分支,需由 Agent/Workflow 契约定义。

7.5 接管与停止自动化 ​

对高风险任务可提供“转为人工处理”或“停止后续自动操作”。接管不等于撤销已执行动作;系统应明确展示哪些操作已发生、哪些仍待处理。

08 · 会话式执行与任务式执行 ​

会话式执行适合问答、持续迭代和多轮协作,核心对象是 Session 与消息历史;任务式执行适合明确目标、可异步完成、需要审核与交付的工作,核心对象是 Run 与 Artifact。两种模式可以共存:用户在会话中发起任务式 Run,执行结束后把结果回填会话。避免把所有会话消息都自动转化为独立长任务,造成成本和状态管理混乱。

在 Studio 中,用户与主管 Agent 的私聊可以是 Session;“生成本周 Agent 技术研究报告”是 Workflow Run;工作流内“调研 Agent 执行文献检索”是 Agent Run。产品应能在三个层级之间导航,而不混淆状态。

09 · 运行历史、结果与可追溯性 ​

9.1 Run 详情最小字段 ​

字段用途
run_id / tenant_id / project_id唯一身份与归属
agent_id / agent_version_id固定执行主体与版本
deployment_revision_id运行环境版本
input_asset_refs / input_digest输入来源与完整性
status / status_reason当前状态与原因
created_by / created_at发起者与时间
started_at / ended_at生命周期时间
attempt_count尝试次数
estimated_cost / actual_cost成本估计与实际计量
artifact_refs产物引用
trace_id / correlation_id诊断与关联
policy_snapshot_ref执行时适用治理策略的可追溯引用

9.2 结果页面 ​

最终结果至少区分:执行状态、内容结果、审核状态、交付状态。例如,run.status=succeeded、review.status=changes_requested、delivery.status=not_ready 可以同时成立。失败的 Run 也可能保留有价值的部分产物,但必须标注其未完成或未审核性质。

9.3 重跑与复现 ​

“使用相同输入再次运行”不等于确定性复现。模型版本别名、采样随机性、外部 API、检索索引、时间和凭证权限均可能变化。应记录固定版本与可追溯依赖,并明确复现保证的边界。

10 · 安全、授权、成本与风险治理 ​

  1. 启动授权:检查用户是否可使用 Agent、项目、Deployment 和输入资产。
  2. 执行授权:工具调用时再次检查主体身份、连接授权、作用域与策略;启动授权不等于工具全权授权。
  3. 预算预留:创建 Run 时检查并可预留预算;执行中计量、超限处理与结束结算应形成闭环。
  4. 租户隔离:事件订阅、运行查询、产物访问和取消操作都必须执行对象级授权。
  5. 风险操作审批:对外发送、写入、删除、资金相关操作应根据风险等级设置明确门禁。
  6. 审计:记录发起、取消、暂停、恢复、审批、权限拒绝和重试行为,不应在日志中明文记录凭证。
  7. 滥用与注入:来自文件、网页或工具的文本属于不可信输入,不能直接提升为系统级指令;工具执行应有独立权限约束。

成本显示应区分预估与实际,支持按 Run、Agent、项目归因。预算耗尽的处理应有明确策略:拒绝新 Run、请求追加预算、在安全点暂停或终止;不能隐式超支。

11 · 技术架构与跨组件协作 ​

mermaid
sequenceDiagram
    actor User
    participant UI as Run Workspace
    participant API as Platform API
    participant CP as Control Plane
    participant Gov as Governance
    participant Reg as Agent Registry
    participant Q as Durable Queue
    participant EP as Execution Plane
    participant Res as Resource Gateway
    participant A as Artifact Service
    User->>UI: 填写输入并启动
    UI->>API: POST /runs + Idempotency-Key
    API->>CP: 创建执行请求
    CP->>Gov: 授权、配额与预算检查
    CP->>Reg: 解析并固定 Agent Version
    CP->>Q: 提交执行任务
    CP-->>API: run_id / queued
    API-->>UI: 202 Accepted
    Q->>EP: 分派任务
    EP->>Res: 工具调用时重新授权
    Res-->>EP: 结果或错误
    EP->>A: 写入产物
    EP-->>CP: 状态、事件、成本
    CP-->>UI: SSE / 事件查询
    UI-->>User: 进度、结果与控制入口

Control Plane 是 Run 状态与执行准入的权威协调者;Execution Plane 实际运行;Governance 提供策略判断;Registry 提供版本;Asset Service 管理输入和输出;API/SDK 对外提供一致契约。真实系统可采用模块化单体部署,不必将图中的每个逻辑组件独立成微服务。

12 · 参考 API 与数据契约 ​

12.1 创建 Run ​

http
POST /v1/projects/{project_id}/runs
Authorization: Bearer <token>
Idempotency-Key: 0198d1f2-unique-request
Content-Type: application/json

{
  "agent_id": "agent_topic_001",
  "channel": "production",
  "input": {"research_topic": "Agent 平台产品功能研究", "language": "zh-CN"},
  "input_asset_refs": ["asset_version_123"],
  "budget": {"max_cost_usd": 2.50},
  "execution_mode": "async"
}
http
HTTP/1.1 202 Accepted
Location: /v1/runs/run_123

{
  "run_id": "run_123",
  "status": "queued",
  "agent_version_id": "agentver_2026_11_01_01",
  "created_at": "2026-11-01T08:00:00Z",
  "links": {"self": "/v1/runs/run_123", "events": "/v1/runs/run_123/events"}
}

12.2 查询与控制 ​

方法与路径目的关键约束
GET /v1/runs/{id}查询 Run对象级授权
GET /v1/runs/{id}/events?after=...补取事件游标、排序与脱敏
GET /v1/runs/{id}/streamSSE 订阅认证、断线恢复、租户隔离
POST /v1/runs/{id}:cancel请求取消幂等、状态冲突处理
POST /v1/runs/{id}:pause请求暂停检查执行器能力
POST /v1/runs/{id}:resume请求恢复权限、资源、检查点校验
POST /v1/runs/{id}:retry创建重试指明策略和副作用风险
POST /v1/runs/{id}/inputs补充输入绑定等待请求与版本
POST /v1/approvals/{id}:decide提交审批审批人授权与参数摘要校验
GET /v1/runs/{id}/artifacts查询产物资产访问权限

12.3 错误契约 ​

json
{
  "error": {
    "code": "RUN_NOT_PAUSABLE",
    "message": "当前执行器不支持在此步骤暂停",
    "retryable": false,
    "request_id": "req_456",
    "details": {"run_id": "run_123", "current_status": "running"}
  }
}

建议使用明确错误码:INPUT_VALIDATION_FAILED、AGENT_NOT_DEPLOYED、RESOURCE_ACCESS_DENIED、QUOTA_EXCEEDED、BUDGET_EXCEEDED、RUN_STATE_CONFLICT、RUN_NOT_PAUSABLE、APPROVAL_EXPIRED、RUN_ALREADY_TERMINAL。HTTP 状态码应与错误语义一致,例如权限拒绝 403、资源不存在 404、状态冲突 409、请求参数不合法 422、受限请求 429;具体映射需在 API 契约中固定。

13 · 参考持久化模型 ​

sql
-- PostgreSQL 参考草案;实际部署需补齐租户外键、RLS、迁移和索引策略。
CREATE TABLE agent_runs (
    tenant_id UUID NOT NULL,
    run_id UUID PRIMARY KEY,
    project_id UUID NOT NULL,
    agent_id UUID NOT NULL,
    agent_version_id UUID NOT NULL,
    deployment_revision_id UUID,
    requested_by UUID NOT NULL,
    status TEXT NOT NULL CHECK (status IN (
        'queued','running','waiting_input','waiting_approval',
        'pause_requested','paused','cancel_requested',
        'succeeded','failed','cancelled','timed_out')),
    input_ref TEXT NOT NULL,
    input_digest TEXT,
    budget_limit_usd NUMERIC(12,4),
    actual_cost_usd NUMERIC(12,4) DEFAULT 0,
    trace_id TEXT,
    created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
    started_at TIMESTAMPTZ,
    ended_at TIMESTAMPTZ,
    revision BIGINT NOT NULL DEFAULT 1
);
CREATE TABLE run_attempts (
    attempt_id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL,
    run_id UUID NOT NULL REFERENCES agent_runs(run_id),
    attempt_no INT NOT NULL,
    worker_id TEXT,
    status TEXT NOT NULL,
    error_code TEXT,
    started_at TIMESTAMPTZ,
    ended_at TIMESTAMPTZ,
    UNIQUE (run_id, attempt_no)
);
CREATE TABLE run_events (
    tenant_id UUID NOT NULL,
    run_id UUID NOT NULL REFERENCES agent_runs(run_id),
    sequence_no BIGINT NOT NULL,
    event_type TEXT NOT NULL,
    public_payload JSONB NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
    PRIMARY KEY (run_id, sequence_no)
);
CREATE INDEX idx_runs_project_created ON agent_runs (tenant_id, project_id, created_at DESC);
CREATE INDEX idx_runs_status ON agent_runs (tenant_id, status, created_at);

跨租户引用需通过复合外键、RLS 和服务端授权共同防护;上面仅示意字段,不构成完整安全 DDL。状态变更应使用数据库事务、乐观并发控制与 Outbox 事件,防止数据库状态与队列消息不一致。事件序号必须由权威写入方按 Run 分配,不能由多个 Worker 各自推测。

14 · Studio 贯穿案例:选题 Agent 的执行工作台 ​

14.1 任务背景 ​

用户在 huaAgentStudy 项目中希望研究“Agent Platform 的运行控制产品设计”,选择工作空间共享的选题 Agent,并提供研究主题、目标读者、输出数量、参考范围和质量要求。该 Agent 可能调用检索工具,但不具备直接公开发布或向外部发送邮件的权限。

14.2 用户旅程 ​

启动:项目首页点击“运行选题 Agent”,打开任务面板;默认选择已批准的 production 版本,填写研究目标、约束、输入资料并设置预算上限。预检:平台确认用户对项目、Agent、知识资源的使用权,检查检索连接和预算。执行:创建 Run 并进入工作台,显示“准备检索 → 检索资料 → 整理候选 → 生成结果”等可观察阶段;如果这些阶段由执行器实际报告,才展示其状态。干预:Agent 发现研究范围不明确,发出 waiting_input,用户补充“优先关注 Agent Platform”;运行继续。结果:Agent 输出五个候选选题及其理由,平台将结果登记为 Artifact;用户可在 F7 工作流中交给审核 Agent,或在 F10 产物中心查看。

14.3 异常路径 ​

  • 检索服务限流:展示“外部检索暂不可用”,按已声明策略等待、回退或失败,避免静默跳过证据要求。
  • 用户点击取消:显示“取消中”,完成安全终止后变为“已取消”;保留已生成的部分资料并标注状态。
  • 网络断开:Run 继续后台执行;页面恢复后通过事件游标补取,不重新创建任务。
  • 预算耗尽:在安全点停止或请求追加预算,记录已发生费用。
  • Agent 输出格式不符合 Schema:执行器可标记校验失败,或进入修复步骤;不能仅因模型返回文本就显示“成果合格”。

14.4 建议的页面布局 ​

text
┌───────────────────────────────────────────────────────────────┐
│ 选题 Agent / Run #123     运行中 · 2分18秒     [请求取消]       │
├───────────────────┬───────────────────────────────────────────┤
│ 任务信息          │ 活动时间线 / Agent 输出                    │
│ Agent 版本        │ 10:02 任务开始                             │
│ 输入资料          │ 10:03 检索完成(3 个来源)                  │
│ 预算与权限        │ 10:04 正在整理候选选题                     │
│ 关联 Workflow     │                                           │
├───────────────────┴───────────────────────────────────────────┤
│ 需要补充输入(仅等待时显示) / 结果预览 / 产物入口            │
└───────────────────────────────────────────────────────────────┘

这个布局是信息架构草案,仍需通过真实用户任务测试确认密度、导航、移动端表现和操作优先级。

15 · 产品指标、开发路线与验收标准 ​

15.1 产品指标 ​

指标定义解释边界
启动成功率合法请求最终创建 Run 的比例与任务完成率分开
启动耗时用户提交到返回 Run ID 的时间不等于排队等待时间
首次反馈延迟提交到首次有意义状态事件的时间排除空心跳
任务完成率达到 succeeded 的 Run 比例不代表业务质量
审核通过率通过业务审核的结果比例依赖审核标准一致性
取消响应时间请求取消到进入终态的时间受工具可中断性影响
恢复成功率可恢复 Run 成功继续的比例仅针对支持恢复的 Run
重复提交率重复创建意图的请求比例需区分重试与误操作
用户干预完成率待输入/审批请求得到有效处理的比例应考虑超时与拒绝
单 Run 成本实际模型、工具与计算成本需注明计量范围

15.2 分阶段开发 ​

阶段 A:可运行闭环。 创建 Run、查询状态、保存输入与版本、后台执行、结果展示、基础失败处理。验收重点是刷新页面后任务仍可追踪。

阶段 B:可观察与可控制。 SSE 事件、取消请求、Run 历史、Attempt、错误分类、预算显示和审计。验收重点是网络中断、取消竞态和重复提交不破坏状态。

阶段 C:可干预与可恢复。 等待用户输入、审批、检查点、暂停恢复、精细化重试。验收重点是外部副作用不会因恢复而无意重复。

阶段 D:规模化与多端。 租户公平性、移动端体验、运行队列优化、批量任务、成本分析与更复杂的协作入口。验收重点是隔离、性能和可用性。

16 · 参考测试矩阵(待执行) ​

编号场景预期结果
T01合法输入创建 Run返回稳定 Run ID 与 queued 状态
T02缺失必填字段字段级校验错误,不创建 Run
T03同一幂等键重复提交相同请求复用原 Run,不重复执行
T04同一幂等键提交不同请求返回冲突错误
T05未授权用户启动 Agent拒绝创建并记录审计
T06跨租户查询 Run不返回其他租户信息
T07Agent 版本渠道切换后启动新 Run 固定解析后的版本
T08运行中渠道切换已运行 Run 版本不变
T09资源连接失效运行时授权拒绝或安全降级
T10预算不足阻止启动或按策略提示
T11SSE 断线重连按游标补齐事件,不重复渲染
T12事件乱序或重复客户端按序去重处理
T13排队状态取消最终 cancelled 且未启动 Worker
T14运行中取消先显示 cancel_requested,再显示终态
T15取消与完成并发只产生一个一致终态
T16不支持暂停的执行器明确拒绝暂停请求
T17支持检查点的暂停与恢复状态恢复且保留执行上下文
T18恢复前权限被撤销禁止恢复或进入待处理状态
T19外部写操作超时后重试避免未确认的重复副作用
T20Worker 崩溃Run 可恢复或进入明确失败状态
T21用户补充输入过期拒绝过期请求且不推进 Run
T22非审批人提交审批拒绝操作
T23审批后参数被替换摘要校验失败,不执行工具
T24工具结果含恶意指令不提升为系统权限
T25失败 Run 保留部分产物标注未完成且权限受控
T26成功 Run 但业务审核失败显示独立的审核状态
T27日志包含密钥或敏感数据输出被脱敏或阻断
T28多个项目同时运行状态、事件与成本归属正确
T29刷新或切换设备通过 Run ID 恢复运行视图
T30重跑相同输入产生新 Run 并标注复现限制
T31API 返回 202 但队列暂不可用通过持久化事务/outbox 补偿,Run 不丢失
T32Run 已终态再次取消返回幂等结果或明确状态冲突
T33大型输入文件以资产引用处理,避免请求体过大
T34长任务无进度百分比展示真实阶段与最近活动,不伪造进度
T35实际成本超过预估明确展示估算误差并执行预算策略
T36用户只能访问 Run 而无产物权限产物下载仍被独立授权控制

测试优先级建议:T01 - T10、T13 - T15、T20、T26、T28、T31 为初期核心验收;其他项目按能力开放阶段逐步执行。所有项目目前均为待执行测试设计。

17 · 局限、开放问题与研究反思 ​

  1. Agent 的动态推理过程未必存在可精确量化的进度;产品不能为了视觉完整而伪造执行确定性。
  2. 任意时点暂停、取消与精确恢复依赖执行器、外部工具和检查点机制;不能承诺统一支持。
  3. 多模型与外部资源使重跑结果存在非确定性;版本固定只能改善追溯性,不能保证输出完全一致。
  4. 事件流的展示粒度与用户理解存在权衡:过多底层日志增加认知负担,过少信息又损害信任和可控性。
  5. 实时反馈中的敏感信息、模型内部推理内容与第三方数据需要严格分层授权。
  6. 长任务的通知、后台继续执行、移动端操作与跨设备状态一致性仍需实证研究。
  7. 不同 Agent 类型可能需要不同交互模式;对话式助手、批处理研究 Agent 与高风险操作 Agent 不应被强行套用同一套控制按钮。

跨章节契约修订说明(v1.3-r1,2026-11-01) ​

本节是第五轮审核后的规范对齐补充,不代表前文所有局部示例已经被自动改写为统一 schema,也不代表完成工程测试。统一契约详见 04-Agent-Platform-Canonical-Contracts-v1.3-r1.md;当本文的参考状态、字段或接口示例与统一契约不一致时,应以统一契约作为后续实现候选基线,并在真正部署前完成迁移与验证。

Run 产品状态与平台持久化状态映射: [平台设计决策] 本文原有 waiting_approval / waiting_input 是 UI 语义,对应 canonical waiting + status_reason=approval/human_input;pause_requested / cancel_requested 属于命令意图 desired_action,并非持久化主状态;取消进入执行收敛时使用 cancelling。timed_out 暂作为独立终态。本文原状态图保留作产品交互说明,不能直接生成数据库枚举。

状态转移与副作用: 统一使用 status_version 原子裁决取消与完成竞争;succeeded 不代表审核通过或交付完成;重试整个任务创建新 Run,步骤重试追加 Attempt。对邮件发送、付款或其他外部写操作,恢复前先核对结果,不能把 checkpoint 或 Worker 重试当成 exactly-once 保证。

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

以下优先列出规范、标准与官方工程文档。它们支持特定技术原则,但不构成一套统一的 Agent Execution 产品标准;本文的产品分层与 Studio 方案是综合推导的参考设计。

  1. OpenAI, Agents SDK Documentation. openai.github.io/openai-agents-python - Agent 执行、工具、会话与追踪的工程参考。
  2. LangChain, LangGraph Documentation. docs.langchain.com/oss/python/langgraph/overview - 有状态 Agent 编排、持久化与 human-in-the-loop 的工程参考。
  3. Temporal, Documentation. docs.temporal.io - 持久执行、重试与工作流恢复的工程参考。
  4. MDN, Using server-sent events. developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events - SSE 事件流及浏览器行为。
  5. IETF, RFC 9110: HTTP Semantics. www.rfc-editor.org/rfc/rfc9110 - HTTP 方法与状态码语义。
  6. IETF, RFC 9457: Problem Details for HTTP APIs. www.rfc-editor.org/rfc/rfc9457 - 统一 API 错误表达的标准参考。
  7. OpenAPI Initiative, OpenAPI Specification. spec.openapis.org/oas/latest.html - HTTP API 契约规范。
  8. PostgreSQL, Documentation: Transaction Isolation. www.postgresql.org/docs/current/transaction-iso.html - 并发与事务一致性参考。
  9. PostgreSQL, Documentation: Row Security Policies. www.postgresql.org/docs/current/ddl-rowsecurity.html - 行级隔离机制。
  10. OWASP, Top 10 for Large Language Model Applications. genai.owasp.org/llm-top-10 - Prompt Injection、敏感信息与工具风险参考。
  11. NIST, AI Risk Management Framework. www.nist.gov/itl/ai-risk-management-framework - 风险识别、治理与评估参考。
  12. Kubernetes, Jobs. kubernetes.io/docs/concepts/workloads/controllers/job - 后台任务与重试语义的对照参考;不意味着 Agent Run 等同 Kubernetes Job。

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

证据类型:本文对 HTTP、SSE、数据库事务、RLS 和部分持久执行机制的描述以对应标准或官方文档为依据;Run 产品模型、状态机、页面布局、接口命名、Studio 实现路线及测试矩阵为研究综合与工程设计建议,尚未获得真实部署或用户实验验证。

已核验与未核验的区分:本篇未执行外部文献的逐页在线核验,也未运行所列 SQL、API 或测试用例。参考链接为可供后续复核的官方资料入口;不应把参考设计视为现有平台的实际能力。

适用范围:适用于需要异步任务、运行追踪、用户控制与产物交付的 Agent Platform,尤其是研究报告 Studio 一类项目。对纯同步问答、实时机器人控制、受严格行业监管的高风险自动化,应按具体实时性、安全和合规要求重新设计。

后续研究接口:F7 研究多个 Agent 的协作产品;F8 研究运行监控、Trace 与指标;F9 研究 Agent 管理;F10 研究产物交付。后续应将本文的 Run 操作模型与实际 Studio 原型逐项对照,开展用户任务测试和故障注入验证。