diff --git a/.agents/skills/unidesk-oa/SKILL.md b/.agents/skills/unidesk-oa/SKILL.md index 8fd1742c..bfbda6aa 100644 --- a/.agents/skills/unidesk-oa/SKILL.md +++ b/.agents/skills/unidesk-oa/SKILL.md @@ -30,6 +30,7 @@ description: UniDesk 项目管理运行技能。用户提到 UniDesk 项目管 - 需求规格是对外系统能力、边界和职责说明,不写内部治理、issue 关闭规则、长期面板、阶段报告、执行控制面、单次验证流水、PR 过程或证据堆叠。 - 文档控制表只保留规格自身必要字段;状态只能写 `已生效`、`已废弃` 或 `未生效`。不要在文档控制表里写长期面板、阶段规格、L1 划分、规格来源或迁移来源。 - 修改历史只记录已经定稿的版本。用户未明确说“可以定稿”前,不新增 `待提交` 版本号,也不把每次小编辑拆成一个版本。 +- L0、L1、L2 需求规格正文固定使用裁剪后的 1-6 章结构:文档控制、目的和范围、术语表、系统边界和接口、内部分工与规格索引、原子需求。不要在 SPEC 正文追加假设和风险、变更控制、回写规则、开放缺口、验收标准或执行过程章节。 - L0 系统边界必须把 HWLAB 作为完整系统看待,描述外部使用者、外部输入、受控资源、外部输出、用户接口和系统责任边界,不写内部治理材料。 - 稳定概念用术语表表达;不要写没有判定价值的“运行概念”流水。 - L0 的 L1 方向树和项目规格索引合并为内部模块分工与规格索引,用相对路径索引到每个内部模块规格文档。 diff --git a/project-management/PJ2026-01/specs/PJ2026-01-HWLAB.md b/project-management/PJ2026-01/specs/PJ2026-01-HWLAB.md index 9016ee47..12cd0666 100644 --- a/project-management/PJ2026-01/specs/PJ2026-01-HWLAB.md +++ b/project-management/PJ2026-01/specs/PJ2026-01-HWLAB.md @@ -32,13 +32,13 @@ ### 2.1 项目使命 -HWLAB 的中心目标是把真实硬件资源、Agent 执行、Harness/RL 验收反馈、多客户端入口、多用户运营和平台自动化运维收敛为一个云端硬件研发平台。平台必须服务真实硬件研发闭环:用户或训练任务通过客户端/API 提出需求,Agent 在受控 workspace 中执行,通过硬件池触达真实设备,由 HarnessRL 收集可审计 evidence,并把成功路径、失败分类和训练反馈回流为可复用能力。 +HWLAB 的中心目标是把真实硬件资源、Agent 执行、Harness/RL 验收反馈、多客户端入口、多用户运营和平台自动化运维收敛为一个云端硬件研发平台。平台必须服务真实硬件研发闭环:用户或训练任务通过客户端/API 提出需求,Agent 在受控 workspace 中执行,通过硬件池触达真实设备,由 HarnessRL 形成可审计执行事实,并把成功路径、失败分类和训练反馈回流为可复用能力。 ### 2.2 范围内 - 真实硬件资源池:板卡、probe、HWPOD 节点、设备注册、占用、健康、可用性和原始硬件事实。 - Agent 执行编排:Code Agent、AgentRun、workspace、session、provider profile、任务生命周期和任务恢复。 -- Harness/RL 验收闭环:harness、CaseRun、ioProbe、evidence、评估、回放、训练反馈和 RL 闭环。 +- Harness/RL 验收闭环:harness、CaseRun、ioProbe、执行事实、评估、回放、训练反馈和 RL 闭环。 - 用户入口:Web、CLI、HTTP API、SDK/IDE 插件、webhook、公开文档、兼容性、任务入口和结果获取。 - 用户与运营管理:用户、注册登录、权限、API key、credit、usage、billing、admin 和租户隔离。 - 系统可用性与服务保障:入口可访问、任务可恢复、资源使用可控、运行状态可观察和故障可处理。 @@ -59,11 +59,11 @@ HWLAB 的中心目标是把真实硬件资源、Agent 执行、Harness/RL 验收 | HWPOD | 对真实硬件研发资源的标准化抽象,至少关联目标设备、workspace、debug probe 和 io probe,并提供可被服务端和工具引用的资源身份。 | | 硬件池 | 管理真实硬件资源身份、能力声明、占用释放、健康状态和原始硬件事实的内部模块。 | | Agent编排 | 管理 Code Agent、AgentRun、workspace、session、provider profile、任务生命周期和任务恢复的内部模块。 | -| HarnessRL | 将硬件执行结果转化为 evidence、aggregate、评估、回放和训练反馈的内部模块。 | +| HarnessRL | 将硬件执行结果转化为执行事实、aggregate、评估、回放和训练反馈的内部模块。 | | 客户端 | 面向用户或外部系统的 Web、CLI、HTTP API、SDK/IDE 插件、webhook 和公开文档入口。 | | 用户管理 | 管理用户身份、权限、API key、credit、usage、billing、admin 和租户隔离的内部模块。 | | 平台运维 | 管理 CI/CD、git mirror、YAML-first 配置、Secret 下发、rollout、observability、GC 和平台发布的内部模块。 | -| evidence | 可审计、可复验的执行证据,包括硬件事实、执行 trace、ioProbe 数据、case registry、评估结果和必要日志摘要。 | +| 执行事实 | 可审计、可复验的硬件执行材料,包括硬件事实、执行 trace、ioProbe 数据、case registry、评估结果和必要日志摘要。 | | 原入口验收 | 通过用户真实使用入口或该能力的原始执行入口完成验收,例如 Web、CLI、API、CaseRun、AgentRun 或 HWPOD 工具。 | | 运行面 | 承载任务执行或服务运行的实际环境,例如目标 lane、namespace、workspace、node、pod 或外部硬件节点。 | @@ -76,7 +76,7 @@ HWLAB 的中心目标是把真实硬件资源、Agent 执行、Harness/RL 验收 | 外部使用者 | 硬件研发用户、训练任务、外部自动化系统、平台管理员。 | | 外部输入 | 硬件研发任务、源码或工程 workspace、目标设备或 HWPOD 选择、构建/下载/调试/采样指令、用户身份凭据、API key、额度和资源约束。 | | 受控资源 | 真实板卡、debug probe、io probe、HWPOD node、Agent 执行环境、provider profile、用户账号、额度和任务产物存储。 | -| 外部输出 | 任务状态、执行结果、构建/下载/调试产物、硬件采样数据、evidence 摘要、失败诊断、usage/credit 记录、可复现结果包。 | +| 外部输出 | 任务状态、执行结果、构建/下载/调试产物、硬件采样数据、评估摘要、错误语义、usage/credit 记录和可复验运行记录。 | | 用户接口 | Web、CLI、HTTP API、SDK/IDE 插件、webhook。 | | 硬件接口 | HWPOD spec、HWPOD 工具、HWPOD 服务、AI 网关、debug probe、UART、board-comm、ioProbe。 | | 系统边界 | HWLAB 负责把用户任务连接到受控 Agent 和真实硬件,并返回可理解、可审计、可复用的结果;不替代用户对硬件设计目标、工程代码正确性和业务取舍的判断。 | @@ -89,7 +89,7 @@ L1 划分保持现有六个内部能力模块;本章同时作为内部模块 | --- | --- | --- | --- | --- | --- | | PJ2026-0101 | 硬件池 | [PJ2026-0101 硬件池](PJ2026-0101-hardware-pool.md) | 板卡、探针、HWPOD node、设备注册、资源占用、设备健康、可用性 | [平台运维](PJ2026-0106-platform-ops.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md) | | PJ2026-0102 | Agent编排 | [PJ2026-0102 Agent编排](PJ2026-0102-agent-orchestration.md) | Code Agent、AgentRun、workspace、session、provider profile、任务生命周期、任务恢复 | [硬件池](PJ2026-0101-hardware-pool.md)、[平台运维](PJ2026-0106-platform-ops.md)、[用户管理](PJ2026-0105-user-management.md) | [HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md) | -| PJ2026-0103 | HarnessRL | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | harness、CaseRun、ioProbe、evidence、评估、回放、训练反馈、RL 闭环 | [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[平台运维](PJ2026-0106-platform-ops.md) | [客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md) | +| PJ2026-0103 | HarnessRL | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | harness、CaseRun、ioProbe、执行事实、评估、回放、训练反馈、RL 闭环 | [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[平台运维](PJ2026-0106-platform-ops.md) | [客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md) | | PJ2026-0104 | 客户端 | [PJ2026-0104 客户端](PJ2026-0104-client.md) | Web、CLI、HTTP API、SDK/IDE 插件、webhook、公开文档、兼容性、用户任务入口与结果获取 | [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md) | 用户入口和集成调用 | | PJ2026-0105 | 用户管理 | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | 用户、注册登录、权限、API key、credit、usage、billing、admin、租户隔离 | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md) | | PJ2026-0106 | 平台运维 | [PJ2026-0106 平台运维](PJ2026-0106-platform-ops.md) | CI/CD、git mirror、YAML-first、Secret 下发、rollout、observability、GC、平台发布 | 全部 L1 的发布/配置/观测需求 | [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md) | @@ -126,11 +126,11 @@ Agent编排负责任务生命周期、workspace、session、provider profile、 | --- | --- | --- | --- | | HWLAB-L0-REQ-003 | HarnessRL 验收闭环 | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[平台运维](PJ2026-0106-platform-ops.md)、[客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md) | -HWLAB 应提供 Harness/RL 验收闭环,使真实硬件任务产出可审计 evidence、aggregate、评估、回放和训练反馈。 +HWLAB 应提供 Harness/RL 验收闭环,使真实硬件任务产出可审计执行事实、aggregate、评估、回放和训练反馈。 HarnessRL 把一次硬件执行转化为可复验的验证与训练材料。它不得只记录 pass/fail,而要保留可解释的硬件输入、执行过程、采样数据、评估结论和回放入口,使失败分类和成功路径能够进入后续改进闭环。 -HarnessRL 负责 evidence、aggregate、评估、回放和训练反馈。硬件池提供原始硬件事实,Agent编排提供执行上下文,平台运维提供可观测和归档支撑,客户端和用户管理消费验收结果与统计信息。 +HarnessRL 负责执行事实、aggregate、评估、回放和训练反馈。硬件池提供原始硬件事实,Agent编排提供执行上下文,平台运维提供运行支撑,客户端和用户管理消费验收结果与统计信息。 ### 6.4 HWLAB-L0-REQ-004 统一客户端入口 diff --git a/project-management/PJ2026-01/specs/PJ2026-0101-hardware-pool.md b/project-management/PJ2026-01/specs/PJ2026-0101-hardware-pool.md index 4f267c8c..215806b8 100644 --- a/project-management/PJ2026-01/specs/PJ2026-0101-hardware-pool.md +++ b/project-management/PJ2026-01/specs/PJ2026-0101-hardware-pool.md @@ -8,6 +8,8 @@ | v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL,避免 Markdown 渲染时裸 # 编号失效。 | | v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1203 迁移到 UniDesk 项目管理目录。 | +当前正文仍在规格治理草稿中;未定稿前不新增版本号,不为单次编辑追加 `待提交` 版本。 + ## 正文 ## PJ2026-0101 硬件池需求规格 @@ -19,132 +21,106 @@ | 编号 | PJ2026-0101 | | 短名 | 硬件池 | | 层级 | L1 方向 | -| 上级总项目 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | -| 关联方向 | [Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md)、[平台运维](PJ2026-0106-platform-ops.md) | -| 证据索引 | 长证据保留在硬件池证据 issue;本文档只保留规格要求和证据归属 | -| 规格状态 | 已生效 | -| 核对时间 | 2026-06-14 北京时间 | -| 主要运行面 | HWLAB v0.2,G14 runtime,D601/外部硬件节点 | +| 状态 | 已生效 | +| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) | +| 上级规格 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | +| 规格治理索引 | [规格治理](spec-governance.md) | -本文采用中文 L1 需求规格模板:正文只保留稳定需求、边界、原定 L2 分配、验证矩阵和追踪关系;CaseRun 流水、阶段报告、具体 bug 排查和单次证据不在本文展开,长证据统一迁入硬件池证据 issue 或下级 L2/L3 issue。 +本文采用 ISO/IEC/IEEE 29148 需求规格模板的项目裁剪版:正文只保留硬件池的稳定使命、范围、术语、系统边界、内部分工和原子需求。 ## 2. 目的和范围 ### 2.1 目的 -硬件池方向负责把真实硬件资源抽象成可被 Agent、CaseRun、Harness 和客户端稳定引用的资源池。它必须保证 HWPOD 标准、工具入口、服务端资源管理和 AI 网关真实硬件执行链路可审计、可分配、可验证。 +硬件池负责把真实板卡、debug probe、io probe、HWPOD node 和设备健康状态组织成可引用、可占用、可释放、可审计的硬件资源池。它是 HWLAB 的物理事实源,必须让上层 Agent、Harness 和客户端拿到真实硬件事实,而不是临时脚本输出或不可复验的运行副本。 ### 2.2 范围内 -- HWPOD-SPEC、硬件资源身份、能力模型、AI 网关接入标准、操作能力标准、状态/错误语义和验收基线。 -- `hwpod-ctl`、HWPOD-SPEC 新建/修改/校验,以及 compile、download、filesystem、UART、board-comm、ioProbe 等工具侧操作入口。 -- 服务端 HWPOD 注册、管理、状态、权限/租约、请求接收、路由、结果归档和工具请求转发。 -- AI 网关节点侧能力:PC 客户端形态、硬件网关盒子形态、心跳、命令执行、日志/artifact/IO 回传和适配器执行。 +- HWPOD 资源身份、四要素模型、能力声明、状态和错误语义。 +- `hwpod-id`、HWPOD spec、资源 registry、authority 和版本来源。 +- HWPOD 工具入口,包括 spec validate、inspect、build、download、UART、board-comm 和 ioProbe 操作。 +- HWPOD 服务端注册、健康、inventory、租约、占用释放、冲突处理、路由和结果归属。 +- HWPOD node / AI 网关的心跳、能力上报、受控命令执行、probe 校验和原始硬件事实回传。 ### 2.3 范围外 -- Agent 任务生命周期、session/resume、provider profile 和调度策略,归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 -- CaseRun pass/fail、aggregate、评估、回放和训练反馈,归 [HarnessRL](PJ2026-0103-harness-rl.md)。 -- Web/CLI/API/SDK 的通用用户入口体验和展示契约,归 [客户端](PJ2026-0104-client.md)。 -- 用户账号、API key、credit、usage、billing 和租户策略,归 [用户管理](PJ2026-0105-user-management.md)。 -- CI/CD、GitOps、Secret、public exposure 和 runtime 运维发布,归 [平台运维](PJ2026-0106-platform-ops.md)。 +- Agent run、command、session、provider profile 和 workspace 生命周期归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 +- CaseRun 评价、pass/fail、回放和训练反馈归 [HarnessRL](PJ2026-0103-harness-rl.md)。 +- Web、CLI、API、SDK 和 Webhook 的通用用户入口体验归 [客户端](PJ2026-0104-client.md)。 +- 用户身份、API key、额度、账本和租户策略归 [用户管理](PJ2026-0105-user-management.md)。 +- CI/CD、Git mirror、Secret、发布、公开入口和运行保障归 [平台运维](PJ2026-0106-platform-ops.md)。 -## 3. 运行概念 +## 3. 术语表 -1. 用户、Agent 或 CaseRun 以 `hwpod-id` 请求硬件能力。 -2. `HWPOD标准` 定义资源身份、能力声明、网关接入和状态/错误语义。 -3. `HWPOD工具` 在用户/Agent workspace 内提供 spec validate、inspect、build、download、filesystem、UART、board-comm 和 ioProbe 等操作入口。 -4. `HWPOD服务` 接收工具侧请求,完成注册状态、权限/租约、路由、请求转发和结果归档。 -5. `AI网关` 靠近真实硬件执行命令,回传日志、artifact、probe、UART、board-comm 和 ioProbe 原始证据。 -6. HarnessRL 消费这些原始硬件证据形成 aggregate、pass/fail、回放和训练反馈;硬件池不替代 HarnessRL 做评分。 +| 术语 | 定义 | +| --- | --- | +| HWPOD | 由目标设备、workspace、debug probe 和 io probe 组成的硬件研发执行上下文。 | +| HWPOD spec | 描述 HWPOD 身份、硬件能力、node 绑定、probe 约束和操作能力的规格声明。 | +| HWPOD node | 靠近真实硬件的执行节点,负责按受控协议执行硬件操作并回传结构化结果。 | +| debug probe | 用于下载、调试或访问目标设备的调试探针。 | +| io probe | 用于采集板外输入输出、电压、电流、频率或其他外部物理状态的观测探针。 | +| 租约 | 对真实硬件资源的一次占用关系,用于避免多任务冲突并支持超时释放。 | ## 4. 系统边界和接口 -| 类别 | 内容 | +本规格把硬件池作为 HWLAB 内部的硬件资源子系统看待;本章只描述该子系统的输入、输出和责任边界。 + +| 边界项 | 内容 | | --- | --- | -| 输入 | HWPOD spec、workspace、node registry、probe UID、ioProbe endpoint、操作请求、可选资源租约 | -| 输出 | 设备可用性、node health/inventory、resolved authority、operation result、raw evidence、占用/释放状态 | -| 用户/Agent 入口 | `hwpod-ctl spec validate`、`hwpod inspect`、`hwpod build/download/uart/io-probe`、`hwlab-cli case run ...` | -| 服务入口 | HWLAB runtime API、`/v1/hwpod-node-ops`、case registry | -| 原始证据 | HWPOD spec、nodeId、probe UID、job id、return code、ioProbe samples/stats、traceId、runId、registry commit;长证据索引保留在硬件池证据 issue | +| 外部使用者 | Agent编排、HarnessRL、客户端、平台管理员和需要真实硬件的训练任务。 | +| 外部输入 | HWPOD spec、`hwpod-id`、workspace、目标设备选择、probe 约束、HWPOD node 状态、硬件操作请求和租约上下文。 | +| 受控资源 | 真实板卡、debug probe、io probe、HWPOD node、资源 registry、租约和硬件操作记录。 | +| 外部输出 | 资源身份、能力声明、可用性、健康状态、占用释放状态、operation result、原始硬件事实和硬件错误语义。 | +| 用户接口 | HWPOD 工具、HWLAB runtime API、HWPOD 服务端接口、HWPOD node / AI 网关协议。 | +| 系统边界 | 硬件池负责硬件事实和资源占用正确性;不定义 Agent 执行策略、Harness 评分、用户账本、客户端展示或平台发布流程。 | -## 5. 原子需求 +## 5. 内部分工与规格索引 -| ID | 需求 | 类型 | 来源 | 分配 L2 | 验证方法 | +| 编号 | 模块或课题 | 规格文档 | 主责边界 | 上游依赖 | 下游支撑 | | --- | --- | --- | --- | --- | --- | -| HWPOD-L1-REQ-001 | 硬件池应定义 HWPOD-SPEC,用于描述硬件资源身份、能力模型、AI 网关接入、操作能力和状态/错误语义。 | 功能 | [L0 总规格](PJ2026-01-HWLAB.md) / 本规格 | PJ2026-010101 HWPOD标准 | 检查 | -| HWPOD-L1-REQ-002 | 硬件池应为每个可用硬件资源维护稳定的 `hwpod-id`、HWPOD spec 和 source-of-truth 路径。 | 功能 | 本规格 | PJ2026-010101 HWPOD标准 | 检查、测试 | -| HWPOD-L1-REQ-003 | HWPOD 工具应支持 HWPOD-SPEC 新建、修改、校验、inspect,以及 compile、download、filesystem、UART、board-comm、ioProbe 等操作入口。 | 功能 | 本规格 | PJ2026-010102 HWPOD工具 | 测试 | -| HWPOD-L1-REQ-004 | HWPOD 工具应优先使用 HWLAB runtime API authority,并在存在 override 时暴露来源,避免遗留环境变量误路由。 | 约束 | 遗留 node ops URL 误路由风险 | PJ2026-010102 HWPOD工具 | 测试、检查 | -| HWPOD-L1-REQ-005 | HWPOD 服务应支持服务端资源注册、管理、状态查询、必要权限/租约、请求接收、路由和结果归档。 | 功能 | 本规格 | PJ2026-010103 HWPOD服务 | 测试、检查 | -| HWPOD-L1-REQ-006 | 当存在并发或多用户使用时,HWPOD 服务应在执行前完成占用、冲突检测、租约释放和超时安全收口。 | 功能/安全 | [L0 总规格](PJ2026-01-HWLAB.md) | PJ2026-010103 HWPOD服务 | 测试、演示 | -| HWPOD-L1-REQ-007 | AI 网关应暴露节点心跳、健康、inventory、命令执行、日志/artifact/IO 回传和适配器执行能力。 | 功能 | 本规格 | PJ2026-010104 AI网关 | 演示、检查 | -| HWPOD-L1-REQ-008 | 当 download/debug 请求包含 probe 约束时,AI 网关或其适配器应验证请求 probe 与项目绑定一致;不一致时不得返回成功。 | 功能/约束 | probe mismatch 误报成功风险 | PJ2026-010104 AI网关 | 测试 | -| HWPOD-L1-REQ-009 | 当采集板外状态时,AI 网关应区分板内 echo 和外部 ioProbe 读数,并记录单位、samples、stats 和 raw evidence。 | 功能 | PLC 71-FREQ ioProbe 造模 | PJ2026-010104 AI网关 | 测试 | -| HWPOD-L1-REQ-010 | 硬件池应输出原始硬件事实和错误语义,但不得定义 HarnessRL pass/fail、训练奖励或业务评分。 | 边界 | [HarnessRL](PJ2026-0103-harness-rl.md) | 全部 L2 | 检查 | +| PJ2026-010101 | HWPOD标准 | 本规格 6.1 | HWPOD 身份、四要素、能力声明、状态和错误语义 | L0 总规格、阶段 HWPOD 口径 | HWPOD工具、HWPOD服务、AI网关、客户端 | +| PJ2026-010102 | HWPOD工具 | 本规格 6.2 | 用户和 Agent workspace 内的硬件池操作入口 | HWPOD标准、平台运行入口 | Agent编排、HarnessRL、客户端 | +| PJ2026-010103 | HWPOD服务 | 本规格 6.3 | 服务端资源注册、健康、租约、占用释放和路由 | HWPOD标准、用户权限、平台运行面 | Agent编排、HarnessRL、客户端 | +| PJ2026-010104 | AI网关 | 本规格 6.4 | HWPOD node / 网关侧真实硬件动作执行和原始事实回传 | HWPOD标准、平台连接能力 | HWPOD服务、HarnessRL、Agent编排 | -## 6. L2 分配 +## 6. 原子需求 -| 编号 | 短名 | 主责 | 关联 L1 | 证据引用 | 边界 | -| --- | --- | --- | --- | --- | --- | -| PJ2026-010101 | HWPOD标准 | 定义 HWPOD-SPEC、硬件资源身份、能力模型、AI 网关接入标准、操作能力标准、状态/错误语义和验收基线。 | 客户端、HarnessRL、Agent编排 | 硬件池证据 issue 中的 D601-F103 compile-only、ConStart 71-FREQ build | 这是标准/协议型交付,不是单纯文档。它定义 HWPOD 资源和 AI 网关能力声明的正确性规则。 | -| PJ2026-010102 | HWPOD工具 | 实现硬件池领域工具侧,包括 `hwpod-ctl`、HWPOD-SPEC 新建/修改/校验,以及 compile、download、filesystem、IO 等操作入口。 | 客户端 | 硬件池证据 issue 中的 HWPOD build/download/UART/ioProbe 原入口证据;遗留 node ops URL 误路由风险 | 这不是通用客户端 L1。只要完成标准由 HWPOD 语义或真实硬件执行定义,就主归属硬件池。 | -| PJ2026-010103 | HWPOD服务 | 实现服务端 HWPOD 注册、管理、状态、必要权限/租约、请求接收、路由、结果归档,并把工具侧请求转发到 AI 网关节点。 | 用户管理、Agent编排、平台运维 | 硬件池证据 issue 中的全部 CaseRun registry 证据;工具包同步差异和 timeout 状态不一致风险 | 它负责 HWPOD 服务端语义,不负责全局部署机制、用户策略或 Agent 任务调度。 | -| PJ2026-010104 | AI网关 | 实现连接真实硬件到服务端的节点侧能力,包括 PC 客户端形态、硬件网关盒子形态、心跳、命令执行、日志/artifact/IO 结果回传和适配器执行。 | HarnessRL、Agent编排、平台运维 | 硬件池证据 issue 中的 probe、UART、board-comm、ioProbe、电流回采、频率源扩展证据;probe mismatch、D601 节点稳定性和频率源扩展风险 | debug probe、UART、board-comm、ioProbe、电压/电流/频率/CANopen 等适配器是网关侧能力切片,通常作为本 L2 下的 L3。 | +### 6.1 HWPOD-L1-REQ-001 HWPOD 标准与资源身份 -## 7. 吸收概念和归属规则 - -| 概念 | 归属 | -| --- | --- | -| 资源模型 | 并入 PJ2026-010101 HWPOD标准;标准同时定义资源模型和网关能力模型。 | -| 资源占用 | 通常并入 PJ2026-010103 HWPOD服务;涉及用户可见操作请求时也关联 PJ2026-010102 HWPOD工具。 | -| 安全状态 | 是 PJ2026-010103 HWPOD服务 和 PJ2026-010104 AI网关 的横向验收要求;除非安全态恢复本身成为中心课题,否则不单列 L2。 | -| 运行诊断 | 规格不一致归 HWPOD标准;命令/API 诊断归 HWPOD工具;路由/状态诊断归 HWPOD服务;node/probe/IO 执行诊断归 AI网关。 | -| debug/download/IO/观测通道 | 默认不单列 L2,作为 AI网关 下的能力切片,以及 HWPOD工具 侧的操作入口。 | - -## 8. 验证矩阵 - -| 需求 ID | 方法 | 原入口 | 必需证据 | 接受标准 | -| --- | --- | --- | --- | --- | -| HWPOD-L1-REQ-001 | 检查 | HWPOD-SPEC / spec reference | spec 字段、能力模型、错误语义 | 资源、工具、服务和网关能力能被同一标准解释。 | -| HWPOD-L1-REQ-002 | 检查/测试 | `hwpod-ctl spec validate`、HWPOD registry | spec 文件、registry 路径、`hwpod-id` | 每个资源能追溯到唯一 spec 和 registry 来源。 | -| HWPOD-L1-REQ-003 | 测试 | `hwpod inspect`、`hwpod build/download/uart/io-probe` | 命令输出、return code、raw evidence | 工具入口能按 HWPOD 语义执行或明确失败。 | -| HWPOD-L1-REQ-004 | 测试/检查 | HWPOD 工具 route 输出 | runtime API authority、override source | 不再因遗留 `HWLAB_HWPOD_NODE_OPS_URL` 静默误路由。 | -| HWPOD-L1-REQ-005 | 测试/检查 | HWLAB runtime API / case registry | registered resource、route、result/archive | 服务端可注册、路由、归档硬件操作结果。 | -| HWPOD-L1-REQ-006 | 测试/演示 | 后续并发资源请求 | lease、holder、release、timeout 记录 | 冲突请求被阻止或排队,异常后能释放或安全收口。 | -| HWPOD-L1-REQ-007 | 演示/检查 | node health/inventory、node logs | nodeId、连接状态、inventory、artifact/log | 网关节点能力和健康可被服务端与下游追踪。 | -| HWPOD-L1-REQ-008 | 测试 | Keil download/debug 场景 | probe UID、uvoptx 绑定、return code | probe mismatch 不得被报告为成功。 | -| HWPOD-L1-REQ-009 | 测试 | `hwpod io-probe read` | samples、stats、unit、raw evidence | 外部读数可独立于板内 echo 被审计。 | -| HWPOD-L1-REQ-010 | 检查 | raw evidence / HarnessRL aggregate 对照 | raw evidence、HarnessRL 输出链接 | 硬件池只给事实,不写业务 pass/fail。 | - -## 9. 开放风险和跟踪项 - -| 主题 | 归属 L2 | 风险 | -| --- | --- | --- | -| 遗留 node ops URL | PJ2026-010102 HWPOD工具 | 遗留 node ops URL 可能导致误路由。 | -| probe mismatch | PJ2026-010104 AI网关 | probe mismatch 可能被顶层误报成功。 | -| D601 hwpod-node 稳定性 | PJ2026-010104 AI网关 | D601 hwpod-node 不稳定影响长任务。 | -| 工具包同步差异 | PJ2026-010103 HWPOD服务 | CaseRun 与 Web runner 工具包可能不同步,涉及服务端/运行面工具分发。 | -| PLC 真实频率源 | PJ2026-010104 AI网关 | PLC 真实频率源端到端扩展未完成。 | -| trace wrapper 噪声 | PJ2026-010103 HWPOD服务 | commandExecution trace 主阅读区仍有 wrapper JSON 噪声。 | -| timeout 状态不一致 | PJ2026-010103 HWPOD服务 | timeout 后 AgentRun/trace/rendered 状态不一致,影响服务端安全收口。 | -| final response 截断 | 关联 [HarnessRL](PJ2026-0103-harness-rl.md) | final response 截断问题不改变硬件事实,但影响结果阅读。 | - -## 10. 追踪关系 - -| 上级 | 本层需求 | 下级/关联 | 验证入口 | +| 编号 | 短名 | 主责模块 | 关联模块 | | --- | --- | --- | --- | -| [L0 总规格](PJ2026-01-HWLAB.md) 硬件真实可用 | HWPOD-L1-REQ-001/002 | PJ2026-010101 HWPOD标准 | spec validate、registry | -| [L0 总规格](PJ2026-01-HWLAB.md) 原入口可执行 | HWPOD-L1-REQ-003/004 | PJ2026-010102 HWPOD工具 | hwpod inspect/build/download/io-probe | -| [Agent编排](PJ2026-0102-agent-orchestration.md) | HWPOD-L1-REQ-005/006 | PJ2026-010103 HWPOD服务 | runtime API、case run result、trace | -| [HarnessRL](PJ2026-0103-harness-rl.md) | HWPOD-L1-REQ-008/009/010 | PJ2026-010104 AI网关 | raw evidence、ioProbe、aggregate 链接 | -| [客户端](PJ2026-0104-client.md) | HWPOD-L1-REQ-001/003 | HWPOD标准、HWPOD工具 | Web/CLI/API smoke | -| [平台运维](PJ2026-0106-platform-ops.md) | HWPOD-L1-REQ-005/007 | HWPOD服务、AI网关 | status/logs/route diagnostics | +| HWPOD-L1-REQ-001 | HWPOD 标准 | [PJ2026-0101 硬件池](PJ2026-0101-hardware-pool.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md) | -## 11. 回写和变更规则 +硬件池应定义并维护 HWPOD 标准,使每个真实硬件资源都有稳定的身份、四要素组成、能力声明、状态语义和错误语义。 -- 下级 L2/L3 完成后回写对应历史 issue,并在需要时更新本文档,并引用 runId、traceId、registry commit 或原入口命令。 -- 新增长证据时写入硬件池证据 issue 或对应 L2/L3 issue,本文档只保留 L2 引用。 -- 稳定需求、原定 L2 分配、验收矩阵或边界变化时,更新本文档,并在必要时回写 L0 规格。 -- 单次 CaseRun 日志、阶段报告、debug 过程和 PR 流水不得直接堆进本规格正文;应放在硬件池证据 issue、对应 L2/L3 issue、case registry 或阶段报告中。 -- 若某项工作无法映射到本文档 的需求 ID 或原定 L2 编号,应先重新归类,不直接作为硬件池实现任务推进。 +该标准必须让设备、workspace、debug probe、io probe 和 HWPOD node 的关系可以被服务端、工具和上层任务一致解释。客户端可以展示这些事实,Agent编排和 HarnessRL 可以消费这些事实,但不得在各自模块重新发明硬件身份或能力模型。 + +### 6.2 HWPOD-L1-REQ-002 HWPOD 工具入口 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HWPOD-L1-REQ-002 | HWPOD 工具 | [PJ2026-0101 硬件池](PJ2026-0101-hardware-pool.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md) | + +硬件池应提供 HWPOD 工具入口,使用户、Agent 或 CaseRun 能按同一 HWPOD 语义执行 spec validate、inspect、build、download、UART、board-comm 和 ioProbe 操作。 + +工具入口必须以 HWLAB runtime API 和 HWPOD authority 为准解析资源,不能依赖遗留环境变量或一次性脚本静默改写目标。客户端负责命令呈现和多端一致性,硬件池负责命令背后的硬件语义和资源事实。 + +### 6.3 HWPOD-L1-REQ-003 HWPOD 服务与租约 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HWPOD-L1-REQ-003 | HWPOD 服务 | [PJ2026-0101 硬件池](PJ2026-0101-hardware-pool.md) | [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +硬件池应提供服务端资源管理能力,使真实设备能被注册、发现、查询健康、占用、释放、冲突处理并路由到正确的 HWPOD node。 + +服务端必须把租约、权限约束和资源状态统一到同一硬件池事实中。用户管理提供身份和额度约束,Agent编排消费分配结果,平台运维提供运行支撑;这些关联模块不接管硬件资源真相。 + +### 6.4 HWPOD-L1-REQ-004 HWPOD node 与 AI 网关 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HWPOD-L1-REQ-004 | HWPOD node | [PJ2026-0101 硬件池](PJ2026-0101-hardware-pool.md) | [HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md)、[Agent编排](PJ2026-0102-agent-orchestration.md) | + +硬件池应通过 HWPOD node 或 AI 网关触达真实硬件,使下载、调试、UART、board-comm、ioProbe 和其他硬件动作在靠近设备的执行节点上受控执行。 + +HWPOD node 必须上报心跳、能力和健康状态,并在执行动作时返回结构化原始硬件事实。涉及 probe 绑定、外部 ioProbe 读数和板内 echo 的场景必须能区分物理事实来源,避免把错误设备、错误探针或不可复验输出当作成功硬件结果。 diff --git a/project-management/PJ2026-01/specs/PJ2026-0102-agent-orchestration.md b/project-management/PJ2026-01/specs/PJ2026-0102-agent-orchestration.md index 00edef34..b1fbe57c 100644 --- a/project-management/PJ2026-01/specs/PJ2026-0102-agent-orchestration.md +++ b/project-management/PJ2026-01/specs/PJ2026-0102-agent-orchestration.md @@ -8,6 +8,8 @@ | v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL,避免 Markdown 渲染时裸 # 编号失效。 | | v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1204 迁移到 UniDesk 项目管理目录。 | +当前正文仍在规格治理草稿中;未定稿前不新增版本号,不为单次编辑追加 `待提交` 版本。 + ## 正文 ## PJ2026-0102 Agent编排需求规格 @@ -19,140 +21,105 @@ | 编号 | PJ2026-0102 | | 短名 | Agent编排 | | 层级 | L1 方向 | -| 上级总项目 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | -| 关联方向 | [硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md)、[平台运维](PJ2026-0106-platform-ops.md) | -| 证据索引 | 长证据保留在 Agent编排证据 issue;本文档只保留规格要求和证据归属 | -| 规格状态 | 已生效 | -| 核对时间 | 2026-06-14 北京时间 | -| L2 调整口径 | 按用户最新要求收敛为任务生命周期、资源装配两个 active L2;不改变 HWLAB 六个 L1 方向 | -| 主要运行面 | HWLAB v0.2/v0.3,AgentRun v0.1/v0.2,G14/D601 runtime lane | -| 主要规格来源 | 迁移前 HWLabOA `SPEC-CLOUDE-M1.md`、AgentRun `docs/reference/spec-v01-*.md`、HWLAB/AgentRun issue 历史 | +| 状态 | 已生效 | +| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) | +| 上级规格 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | +| 规格治理索引 | [规格治理](spec-governance.md) | -本文采用中文 L1 需求规格模板:正文只保留稳定目标、边界、L2 分配、原子需求、验证矩阵和追踪关系。AgentRun SPEC 摘要、历史 issue、单次 trace、PR/PipelineRun 和运行面长证据统一迁入 Agent编排证据 issue 或对应下级 issue。 +本文采用 ISO/IEC/IEEE 29148 需求规格模板的项目裁剪版:正文只保留 Agent编排 的稳定使命、范围、术语、系统边界、内部分工和原子需求。 ## 2. 目的和范围 ### 2.1 目的 -Agent编排方向负责把用户、训练任务或系统任务从 HWLAB 入口稳定送入受控 Agent 执行生命周期,并把执行状态、会话续跑、资源装配、运行证据指针和失败分类交给客户端、HarnessRL、用户管理和平台运维。它必须保证 Code Agent/HWLAB adapter 与 AgentRun 的边界清晰:HWLAB 负责业务入口、用户/HWPOD 授权和对外 result/trace 合同;AgentRun 负责 run、command、runner job、session、backend profile、event、terminal status 和 failureKind 的执行事实。 +Agent编排负责把用户、训练任务或系统任务送入受控 Agent 执行生命周期,并把运行上下文、资源装配、会话连续性和执行事实以稳定合同暴露给 HWLAB 其他模块。 ### 2.2 范围内 -- 从 HWLAB `/v1/agent/chat`、CLI/Web/API 等入口到 AgentRun `run + command + runner-job` 的短返回、幂等、可轮询执行生命周期。 -- SessionRef、thread、conversation、continuation、session send、同 run 多 command、runner replacement、timeout/cancel 和恢复动作;这些全部归入任务生命周期,不单列会话恢复 L2。 -- RuntimeAssembly 装配:BackendImageRef、ProfileRef、SessionRef、ResourceBundleRef、gitbundle、promptRefs、requiredSkills、tools、workspaceFiles、SecretRef、provider profile 和模型配置;这些全部归入资源装配,不单列模型配置 L2。 -- Agent 执行面 workspace 的 prepare/materialize、source commit、seed file、env/Secret 投影和 runner 可复现输入;这些作为资源装配的一部分管理,不单列工作区 L2。 -- result/trace/artifact pointer、tool call summary、liveness、failureKind 和 recoveryActions;这些作为任务生命周期的输出证据,不单列结果归档 L2。 -- 与硬件池、HarnessRL、客户端、用户管理、平台运维的证据和主责交接。 +- HWLAB 入口到 AgentRun run、command、runner job 的提交、短返回、轮询和终态管理。 +- task、run、command、runner job、session、thread、conversation、cancel、timeout 和恢复语义。 +- RuntimeAssembly 装配,包括 BackendImageRef、ProfileRef、SessionRef、ResourceBundleRef、gitbundle、promptRefs、skills、tools、workspaceFiles、SecretRef、provider profile 和模型配置。 +- workspace 物化、source commit、bundle 摘要、运行输入证明和下游可消费的执行事实指针。 +- HWLAB 与 AgentRun 的职责边界、错误语义消费和跨模块交接。 ### 2.3 范围外 -- 硬件 inventory、硬件资源状态、HWPOD 标准、HWPOD 服务端状态和 AI 网关能力定义归 [硬件池](PJ2026-0101-hardware-pool.md)。 -- WebUI/CLI/API/SDK 的用户交互、页面布局、公开 API/SDK 兼容性、结果展示体验归 [客户端](PJ2026-0104-client.md)。 -- Harness pass/fail、CaseRun 评价、artifact 训练样本、RL 反馈和 evidence replay 归 [HarnessRL](PJ2026-0103-harness-rl.md)。 -- 用户账户、权限、credit、usage、billing、admin 策略归 [用户管理](PJ2026-0105-user-management.md)。 -- Git mirror、Secret sync、YAML/GitOps、rollout、namespace、平台数据库、日志/指标基础设施归 [平台运维](PJ2026-0106-platform-ops.md)。 -- 本方向不定义新的 AgentRun 产品路线;AgentRun 自身能力变更由 pikasTech/agentrun issue/PR 承载,本方向只定义 HWLAB 对 AgentRun 的使用合同和验收需求。 +- HWPOD 资源身份、inventory、租约、健康和硬件事实归 [硬件池](PJ2026-0101-hardware-pool.md)。 +- CaseRun 评价、pass/fail、回放和训练反馈归 [HarnessRL](PJ2026-0103-harness-rl.md)。 +- Web、CLI、API、SDK 和 Webhook 的用户体验归 [客户端](PJ2026-0104-client.md)。 +- 用户身份、API key、额度、账本和租户策略归 [用户管理](PJ2026-0105-user-management.md)。 +- Git mirror、Secret sync、rollout、namespace、数据库和日志指标基础设施归 [平台运维](PJ2026-0106-platform-ops.md)。 +- AgentRun 自身产品路线和内部执行基础设施归 `pikasTech/agentrun`。 -## 3. 运行概念 +## 3. 术语表 -1. 用户、训练任务或系统任务通过 HWLAB 客户端/API 提交 Agent 请求。 -2. HWLAB 做用户、项目、HWPOD 和业务策略校验,并构造 AgentRun RuntimeAssembly。 -3. AgentRun manager 创建 run、command 和 runner job,短返回可轮询 ID。 -4. runner 按资源装配结果物化 workspace、profile、session、bundle、prompt、skill、tool 和 env,执行后持续上报 events。 -5. HWLAB 通过 result/trace/status 入口暴露执行生命周期事实,客户端、HarnessRL 和用户管理只消费指针和摘要,不反向定义 AgentRun 执行事实。 -6. cancel、timeout、provider failure、runner replacement、session continuation 等恢复语义由任务生命周期统一管理。 +| 术语 | 定义 | +| --- | --- | +| run | AgentRun 中承载一次 Agent 执行生命周期的顶层资源。 | +| command | run 内的一次用户或系统指令,具备独立终态和结果语义。 | +| runner job | 实际执行 Agent command 的运行单元。 | +| SessionRef | 指向可续跑 Agent session/thread 的引用。 | +| RuntimeAssembly | HWLAB 为 runner 准备镜像、profile、资源包、workspace、工具、Secret 和执行参数的装配结果。 | +| ResourceBundleRef | 指向 gitbundle、工具、prompt、skill 和 workspaceFiles 的资源装配引用。 | -## 4. 系统边界和权威 +## 4. 系统边界和接口 -| 对象 | Authority | Agent编排职责 | 非主责交接 | -| --- | --- | --- | --- | -| 用户入口 | HWLAB 客户端/API | 接收并规范化 Agent 请求,返回 task/run/session/trace 指针 | UX、公开 API/SDK 体验归 [客户端](PJ2026-0104-client.md) | -| 用户/账本 | HWLAB 用户管理 | 在提交前后消费 auth、quota、usage/billing 结果 | 策略、账本和 admin 归 [用户管理](PJ2026-0105-user-management.md) | -| 硬件资源 | HWLAB 硬件池 | 引用 HWPOD hint/context 和分配结果 | inventory、租约、健康、状态归 [硬件池](PJ2026-0101-hardware-pool.md) | -| 执行事实 | AgentRun manager | 使用 run/command/runner-job/session/result/event 合同 | AgentRun 内部能力归 pikasTech/agentrun | -| 资源装配 | HWLAB + AgentRun | 构造并证明 RuntimeAssembly、ResourceBundleRef、ProfileRef、SessionRef、workspace materialization | git mirror/Secret/GitOps 运维归 [平台运维](PJ2026-0106-platform-ops.md) | -| 执行证据 | AgentRun events/result + HWLAB trace | 暴露生命周期状态、失败分类、结果指针和恢复建议 | Harness 评价归 [HarnessRL](PJ2026-0103-harness-rl.md),展示归 [客户端](PJ2026-0104-client.md) | +本规格把 Agent编排作为 HWLAB 内部的 Agent 执行子系统看待;本章只描述该子系统的输入、输出和责任边界。 -## 5. L2 课题分配 +| 边界项 | 内容 | +| --- | --- | +| 外部使用者 | 客户端、HarnessRL、用户管理、硬件池、平台运维和训练任务。 | +| 外部输入 | 用户任务、conversation、session/thread、project/workspace/ref、HWPOD hint 或分配结果、provider profile、ResourceBundleRef、prompt、skills、tools 和 SecretRef。 | +| 受控资源 | HWLAB Agent task、AgentRun run/command/runner job、session、RuntimeAssembly、workspace materialization 和执行事实指针。 | +| 外部输出 | runId、commandId、runnerJobId、sessionId、trace pointer、terminal status、liveness、failure kind、materialized commit 摘要和 artifact/tool 摘要。 | +| 用户接口 | HWLAB Agent API、Cloud Web/CLI Agent 入口、AgentRun 资源原语、provider profile 管理入口。 | +| 系统边界 | Agent编排负责执行生命周期和资源装配正确性;不定义硬件事实、Harness 评分、用户账本、客户端布局或平台发布流程。 | -本次按最新口径重划 Agent编排 的 L2:保留 HWLAB 六个 L1 方向不变;Agent编排下只保留两个 active L2,编号采用连续编号:PJ2026-010201 任务生命周期、PJ2026-010202 资源装配。 +## 5. 内部分工与规格索引 -### 5.1 Active L2 - -| 编号 | 短名 | 主责 | 关联 L1 | 边界 | -| --- | --- | --- | --- | --- | -| PJ2026-010201 | 任务生命周期 | 定义 submit、run、command、runner-job、queued/claimed/running/terminal、cancel、timeout、failureKind、liveness、recoveryActions、session continuation、session send、同 run 多 command 和结果指针。 | 客户端、HarnessRL、用户管理、平台运维 | 完成标准是 Agent 任务从提交到终态、恢复或安全失败的生命周期正确;不负责 Web 展示、Harness 评分、用户账本、硬件资源状态或平台发布。 | -| PJ2026-010202 | 资源装配 | 定义 RuntimeAssembly、ResourceBundleRef/gitbundle、BackendImageRef、ProfileRef、SessionRef、promptRefs、requiredSkills、tools、workspaceFiles、provider profile、模型配置、SecretRef、source commit 和 workspace materialization。 | 硬件池、HarnessRL、客户端、用户管理、平台运维 | 完成标准是 runner 得到正确、可证明、可复现的执行输入;WebUI 工作区体验归 [客户端](PJ2026-0104-client.md),硬件资源状态归 [硬件池](PJ2026-0101-hardware-pool.md),Secret/GitOps 运维归 [平台运维](PJ2026-0106-platform-ops.md)。 | - -### 5.2 概念合并说明 - -| 原切片 | 处理 | 理由 | -| --- | --- | --- | -| 会话恢复 | 并入 PJ2026-010201 任务生命周期 | 会话 continuation、resume、session send 和 runner replacement 是任务生命周期的一部分,不应单列。 | -| 工作区 | 并入 PJ2026-010202 资源装配 | Agent workspace materialization 是资源装配输入证明;WebUI 工作区体验归 [客户端](PJ2026-0104-client.md),硬件/资源状态归 [硬件池](PJ2026-0101-hardware-pool.md) 或 [平台运维](PJ2026-0106-platform-ops.md)。 | -| 模型配置 | 并入 PJ2026-010202 资源装配 | provider profile、backendProfile、model、auth/config SecretRef 是 RuntimeAssembly/ProfileRef 装配项,不应单列。 | -| 结果归档 | 删除 standalone L2 | Agent编排只负责生命周期内的 result/trace/artifact pointer;长期归档、评价和展示分别归 [HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md)、[平台运维](PJ2026-0106-platform-ops.md)。 | +| 编号 | 模块或课题 | 规格文档 | 主责边界 | 上游依赖 | 下游支撑 | +| --- | --- | --- | --- | --- | --- | +| PJ2026-010201 | 任务生命周期 | 本规格 6.1、6.3 | 提交、run/command/runner job、session、cancel、timeout、恢复和终态 | 客户端入口、用户权限、硬件资源提示、平台运行面 | 客户端、HarnessRL、用户管理 | +| PJ2026-010202 | 资源装配 | 本规格 6.2、6.4 | RuntimeAssembly、ResourceBundleRef、provider profile、workspace materialization 和 SecretRef | 硬件池、平台运维、用户管理 | AgentRun runner、HarnessRL、客户端 | ## 6. 原子需求 -| ID | 需求 | 类型 | 主责 L2 | 验证类型 | -| --- | --- | --- | --- | --- | -| AGENT-L1-REQ-001 | HWLAB 应通过 AgentRun durable resource 模型创建和跟踪 Agent 执行;run、command、runner job 创建必须短返回 JSON,并提供后续轮询入口。 | 功能 | 任务生命周期 | 测试、演示 | -| AGENT-L1-REQ-002 | Agent 执行生命周期应区分 command terminal 与 run terminal;只有 terminal completed 且具备可用 reply/final evidence 时才可判定完成。 | 功能/正确性 | 任务生命周期 | 测试、检查 | -| AGENT-L1-REQ-003 | Agent 编排应提供幂等 cancel、timeout、provider unavailable、runner lease conflict、FailedToOpenSocket 等失败分类和可操作恢复动作。 | 功能/诊断 | 任务生命周期 | 测试、检查 | -| AGENT-L1-REQ-004 | Agent 编排应支持 SessionRef/thread 恢复、同 session 续跑、同 run 多 command 和 runner replacement;恢复失败必须显式分类,不得拼接历史或 fake resume。 | 功能 | 任务生命周期 | 测试、演示 | -| AGENT-L1-REQ-005 | Agent 编排应按 RuntimeAssembly 装配 BackendImageRef、ProfileRef、SessionRef、ResourceBundleRef;缺失或非法要素必须结构化失败,不得静默 fallback。 | 约束/功能 | 资源装配 | 检查、测试 | -| AGENT-L1-REQ-006 | ResourceBundleRef 应能证明 repo/ref、requested commit、actual materialized commit、bundles、promptRefs、skills、tools 和 workspaceFiles 摘要。 | 功能/可追踪 | 资源装配 | 测试、检查 | -| AGENT-L1-REQ-007 | Provider profile、模型选择和 backendProfile 应作为 ProfileRef/SecretRef 装配项管理,并能以 validate canary 证明可用;输出不得泄露 API key、auth.json、config.toml、token 或 DSN。 | 安全/功能 | 资源装配 | 测试、检查 | -| AGENT-L1-REQ-008 | Agent 编排应输出可被 HWLAB 客户端和 HarnessRL 消费的生命周期证据指针,包括 runId、commandId、runnerJobId、sessionId、traceId、failureKind、lastSeq、result pointer 和 artifact/tool 摘要。 | 功能/证据 | 任务生命周期 | 测试、检查 | -| AGENT-L1-REQ-009 | Agent 编排应保持与硬件池、HarnessRL、客户端、用户管理和平台运维的主责边界;规格文件跨方向引用对应规格路径,执行 issue 跨方向引用对应 issue,不得在本方向重定义对方完成标准。 | 追踪/治理 | 全部 L2 | 检查 | -| AGENT-L1-REQ-010 | Agent 编排相关运行面证据必须来自真实 HWLAB/AgentRun 原入口;mock、自测试、dry-run、source-only smoke 或只读日志解释不得作为用户可见能力关闭依据。 | 验收 | 全部 L2 | 检查、演示 | +### 6.1 AGENT-L1-REQ-001 Agent 执行生命周期 -## 7. 验证矩阵 - -| 需求 | 验证类型 | 原入口 | 必需证据 | 通过标准 | -| --- | --- | --- | --- | --- | -| AGENT-L1-REQ-001 | 测试 | HWLAB `/v1/agent/chat`、`hwlab-cli client agent ...`、AgentRun run/command/runner-job API | traceId、runId、commandId、runnerJobId、jobName、namespace、短返回 JSON | 创建和轮询不依赖长同步请求。 | -| AGENT-L1-REQ-002 | 测试/检查 | AgentRun result envelope、HWLAB result/trace | terminalStatus、completed、terminalSource、finalResponseAuthority、scoped event cursor | 不把 partial/stdout/idle timeout 误判为 completed。 | -| AGENT-L1-REQ-003 | 测试/检查 | cancel、timeout、provider failure、runner lease、socket failure 场景 | failureKind、liveness、recoveryActions、cancel result、redacted error | 失败可分类、可恢复或可安全收口。 | -| AGENT-L1-REQ-004 | 测试 | session send、thread resume、runner pod 删除后续跑 | sessionId、threadId、PVC/storage 摘要、same-session evidence、initialPromptInjected=false | 同 session 可继续;不可继续时显式 evicted/failed。 | -| AGENT-L1-REQ-005 | 检查/测试 | RuntimeAssembly render、runner job response、events | image/profile/session/resource 四要素摘要、SecretRef 名称/key、valuesPrinted=false | 所有运行时输入可追踪且不绕过装配模型。 | -| AGENT-L1-REQ-006 | 测试/检查 | resource-bundle-materialized event、workspace summary | repoUrl、fetchRepoUrl、mirrorUsed、actual commit、bundles、tools、skills、workspaceFiles 摘要 | runner 使用正确版本资源,Web/CaseRun 不漂移。 | -| AGENT-L1-REQ-007 | 测试/检查 | provider-profiles list/show/config/validate、HWLAB admin 委托 API | configured、SecretRef、hash suffix、validationId、runId、commandId、jobName | profile 可配置、可验证、输出脱敏。 | -| AGENT-L1-REQ-008 | 测试/检查 | HWLAB trace/result、AgentRun events/result | lastSeq、eventCount、eventsCapped、artifactSummary、toolCallSummary、final assistant seq | 下游可审计执行事实和 artifact 指针。 | -| AGENT-L1-REQ-009 | 检查 | L2/L3 issue 和收口评论 | 主责 L1、关联 L1、回写对象、证据索引链接 | 不抢硬件池/Harness/客户端/用户/运维主责。 | -| AGENT-L1-REQ-010 | 检查/演示 | 真实 HWLAB/AgentRun runtime | 原入口命令、lane/node、trace/session/job/run、结果摘要 | 关闭证据来自真实入口。 | - -## 8. 当前开放风险 - -| 来源 | 归属 | 风险 | -| --- | --- | --- | -| provider profile 默认配置 | PJ2026-010202 资源装配 | v0.3 AgentRun v02 内建 provider profile 缺默认配置,需明确 YAML/SecretRef 预置或管理员首次写入策略。 | -| trace 卡在 runner-job-created | PJ2026-010201 任务生命周期 | v0.3 trace 卡在 runner-job-created 且工具调用不可见,影响执行事实和生命周期证据可信度。 | -| 计费成功但执行失败 | PJ2026-010201 / PJ2026-010202 | Code Agent 计费成功但 AgentRun FailedToOpenSocket,要求执行层失败与用户账本分离,并检查 provider/profile 装配。 | -| timeout 状态不一致 | PJ2026-010201 | CaseRun timeout 后 AgentRun claimed 与 trace raw/rendered 状态不一致,影响安全 cancel 和生命周期证据阅读。 | -| source commit 漂移 | PJ2026-010202 | Web v0.2 与 CaseRun 使用同类 gitbundle 但 live source commit 可能落后,需暴露 materialized commit 和刷新语义。 | -| AgentRun runnerjob 身份 | PJ2026-010201 | runnerjob phase/pod identity 与 run events/liveness 可能不一致,需统一 describe run/session/runnerjob 语义。 | -| AgentRun external DB/stateless | PJ2026-010202 / [平台运维](PJ2026-0106-platform-ops.md) | AgentRun v0.2 external DB/stateless 计划影响 D601 HWLAB v0.3 Agent 编排 durable state 和资源装配可复现性。 | - -## 9. 追踪关系 - -| 上级 | 本层需求 | 下级/关联 | 验证入口 | +| 编号 | 短名 | 主责模块 | 关联模块 | | --- | --- | --- | --- | -| [L0 总规格](PJ2026-01-HWLAB.md) Agent 执行编排 | AGENT-L1-REQ-001/002/003/004/008 | PJ2026-010201 任务生命周期 | HWLAB agent chat、AgentRun run/command/runner-job、session send、trace/result | -| [L0 总规格](PJ2026-01-HWLAB.md) workspace/provider/runtime | AGENT-L1-REQ-005/006/007 | PJ2026-010202 资源装配 | RuntimeAssembly、resource materialization、provider validate | -| [硬件池](PJ2026-0101-hardware-pool.md) | AGENT-L1-REQ-006/009 | PJ2026-010202 资源装配 | HWPOD hint/context、硬件事实引用;硬件资源状态归 [硬件池](PJ2026-0101-hardware-pool.md) | -| [HarnessRL](PJ2026-0103-harness-rl.md) | AGENT-L1-REQ-008/009 | PJ2026-010201 任务生命周期 | trace/result/artifact pointer、toolCallSummary;pass/fail 归 [HarnessRL](PJ2026-0103-harness-rl.md) | -| [客户端](PJ2026-0104-client.md) | AGENT-L1-REQ-001/004/008/009 | 任务生命周期、资源装配 | Web/CLI/API smoke、trace/result UI;WebUI 工作区体验归 [客户端](PJ2026-0104-client.md) | -| [用户管理](PJ2026-0105-user-management.md) | AGENT-L1-REQ-003/007/009 | 任务生命周期、资源装配 | billing preflight/record、provider admin delegation | -| [平台运维](PJ2026-0106-platform-ops.md) | AGENT-L1-REQ-005/006/007/010 | 资源装配 | lane/namespace/Secret/GitOps/runtime health | -| Agent编排证据 issue | 全部需求 | AgentRun SPEC 与历史 issue | 证据链接、开放风险、回写记录 | +| AGENT-L1-REQ-001 | 执行生命周期 | [PJ2026-0102 Agent编排](PJ2026-0102-agent-orchestration.md) | [客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md)、[平台运维](PJ2026-0106-platform-ops.md) | -## 10. 回写和变更规则 +Agent编排应通过 AgentRun durable resource 模型创建和跟踪 Agent 执行,使 run、command 和 runner job 能短返回、可轮询、可取消、可超时收口并进入明确终态。 -- 下级 L2/L3 完成后回写对应历史 issue,并在需要时更新本文档,并引用 runId、commandId、runnerJobId、sessionId、traceId、result pointer、artifact pointer 或原入口命令。 -- 新增长证据、AgentRun SPEC 摘要或历史 issue 证据时写入 Agent编排证据 issue;本文档只保留规格要求和证据归属。 -- 稳定需求、L2 分配、验收矩阵或 authority 边界变化时,更新本文档,并在必要时回写 L0 规格。 -- 单次 trace、PR 流水、PipelineRun、runtime debug、provider 事故和 CaseRun 日志不得直接堆入本规格正文;应放在 Agent编排证据 issue、对应 L2/L3 issue、AgentRun issue 或阶段报告中。 -- 若某项工作无法映射到任务生命周期或资源装配,应先判断主责是否属于硬件池、HarnessRL、客户端、用户管理或平台运维,不直接作为 Agent编排实现任务推进。 +该能力定义任务从 HWLAB 入口进入执行面后的生命周期事实。客户端展示生命周期,用户管理提供提交前后的权限与额度约束,平台运维提供运行支撑;这些模块不重写 run/command/runner job 的执行事实。 + +### 6.2 AGENT-L1-REQ-002 资源装配 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| AGENT-L1-REQ-002 | 资源装配 | [PJ2026-0102 Agent编排](PJ2026-0102-agent-orchestration.md) | [硬件池](PJ2026-0101-hardware-pool.md)、[平台运维](PJ2026-0106-platform-ops.md)、[HarnessRL](PJ2026-0103-harness-rl.md) | + +Agent编排应按 RuntimeAssembly 装配 BackendImageRef、ProfileRef、SessionRef、ResourceBundleRef、workspace、tools、skills、promptRefs、provider profile 和 SecretRef。 + +资源装配必须能说明 runner 实际使用了哪个 repo/ref、actual commit、bundle、profile、session 和工具输入。硬件池提供 HWPOD hint 或分配结果,平台运维提供 Git mirror、Secret 和运行面支撑,HarnessRL 消费执行上下文。 + +### 6.3 AGENT-L1-REQ-003 会话连续性 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| AGENT-L1-REQ-003 | 会话连续性 | [PJ2026-0102 Agent编排](PJ2026-0102-agent-orchestration.md) | [客户端](PJ2026-0104-client.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +Agent编排应支持 SessionRef、thread continuation、session send、同 run 多 command 和 runner replacement,使用户任务可以在受控上下文中续跑。 + +会话连续性不得通过拼接历史 prompt 或伪造 resume 实现。无法续接时,Agent编排必须给出属于执行生命周期的明确失败事实;客户端只负责把该事实暴露给用户。 + +### 6.4 AGENT-L1-REQ-004 HWLAB 与 AgentRun 合同边界 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| AGENT-L1-REQ-004 | AgentRun 合同 | [PJ2026-0102 Agent编排](PJ2026-0102-agent-orchestration.md) | [平台运维](PJ2026-0106-platform-ops.md)、[客户端](PJ2026-0104-client.md)、[HarnessRL](PJ2026-0103-harness-rl.md) | + +Agent编排应原样消费 AgentRun 的 run、command、runner job、event、terminal status、liveness 和 failure kind 合同,并把这些事实映射为 HWLAB 可消费的执行语义。 + +HWLAB 不应在客户端、adapter 或 prompt 中推断或补造 AgentRun 没有发出的事实。AgentRun 已正确输出时,HWLAB 负责消费和业务映射;AgentRun 合同缺失或行为错误时,应回到 AgentRun 仓库修复。 diff --git a/project-management/PJ2026-01/specs/PJ2026-0103-harness-rl.md b/project-management/PJ2026-01/specs/PJ2026-0103-harness-rl.md index d1cbab09..afc7f110 100644 --- a/project-management/PJ2026-01/specs/PJ2026-0103-harness-rl.md +++ b/project-management/PJ2026-01/specs/PJ2026-0103-harness-rl.md @@ -8,65 +8,119 @@ | v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL,避免 Markdown 渲染时裸 # 编号失效。 | | v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1205 迁移到 UniDesk 项目管理目录。 | +当前正文仍在规格治理草稿中;未定稿前不新增版本号,不为单次编辑追加 `待提交` 版本。 + ## 正文 -编号: PJ2026-0103 -短名: HarnessRL -上级总项目: [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) -总规格文件: [PJ2026-01-HWLAB.md](PJ2026-01-HWLAB.md) -核对时间: 2026-06-14(北京时间) -核对口径: 以 HWLAB v0.2 CaseRun、HWPOD evidence、PLC/ARM2D 已归档 registry、Harness RL 规划和开放 issue 为准;本文档 定义证据、评估、回放和训练反馈,不接管硬件资源、Agent 调度或客户端展示。 +## PJ2026-0103 HarnessRL 需求规格 -## 主责边界 +## 1. 文档控制 -- 主责对象: harness、CaseRun、case registry、ioProbe evidence、artifact/diff/final 证据、aggregate、评估、回放、训练反馈和 RL 闭环。 -- 不负责: 硬件容量与占用、Agent 执行生命周期、用户账号与计费、CI/CD 发布、Web/CLI 展示细节。 -- 交接方向: [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md)、[平台运维](PJ2026-0106-platform-ops.md)。 +| 字段 | 内容 | +| --- | --- | +| 编号 | PJ2026-0103 | +| 短名 | HarnessRL | +| 层级 | L1 方向 | +| 状态 | 已生效 | +| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) | +| 上级规格 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | +| 规格治理索引 | [规格治理](spec-governance.md) | -## 交叉引用 +本文采用 ISO/IEC/IEEE 29148 需求规格模板的项目裁剪版:正文只保留 HarnessRL 的稳定使命、范围、术语、系统边界、内部分工和原子需求。 -- 上游依赖: [硬件池](PJ2026-0101-hardware-pool.md) 提供真实设备、probe 和原始硬件读数;[Agent编排](PJ2026-0102-agent-orchestration.md) 提供任务生命周期、workspace 和 artifact 指针;[平台运维](PJ2026-0106-platform-ops.md) 提供 runtime 与 registry/日志保留能力。 -- 下游支撑: [客户端](PJ2026-0104-client.md) 展示 aggregate/evidence;[用户管理](PJ2026-0105-user-management.md) 可消费 usage/evidence 统计;[Agent编排](PJ2026-0102-agent-orchestration.md) 可消费评估反馈改善执行策略。 -- 接口/证据边界: 本方向输出 CaseRun 状态、证据包、低噪声 aggregate、ioProbe evidence、评估/回放结果和训练反馈;不输出硬件可用性、Agent 调度状态、用户账本或前端布局。 -- 需同步回写: evidence 标准、aggregate 口径、pass/fail 判定、回放格式或训练反馈格式变化时,回写 [L0 总规格](PJ2026-01-HWLAB.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[客户端](PJ2026-0104-client.md) 和 [用户管理](PJ2026-0105-user-management.md)。 +## 2. 目的和范围 -## 方向目标 +### 2.1 目的 -把真实硬件运行过程转化为可审计、可回放、可训练的 Harness/RL 证据闭环,支撑 HWLAB 的研发验收和能力提升。当前重点是让 CaseRun 从“跑过一次”升级为“证据结构稳定、人工可读、失败可分类、后续可训练”。 +HarnessRL 负责把真实硬件执行组织成可审计、可复验、可比较、可回流改进的 Harness/RL 闭环。它定义 CaseRun 语义、外部观测模型、评价回放和训练反馈,使 HWLAB 不只知道一次任务是否执行过,还能解释执行结果如何被判定和如何改进。 -## L2 课题 +### 2.2 范围内 -| 编号 | 短名 | 主责 | 关联 L1 | 边界 | -| --- | --- | --- | --- | --- | -| PJ2026-010301 | CaseRun规格 | 定义 case definition、stage model、start/status/result/logs、case registry、postValidation 和 run-local workspace 约束。 | Agent编排、硬件池、平台运维 | 完成标准是 CaseRun 编排与 registry 语义正确;硬件实体绑定归 [硬件池](PJ2026-0101-hardware-pool.md),Agent 生命周期归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 | -| PJ2026-010302 | 证据采集 | 定义 trace、diff、artifact、log、final response、HWPOD raw output、agent transcript 和 evidence 分层收集。 | Agent编排、客户端、平台运维 | 完成标准是证据不丢、不混、不伪造;低噪声摘要归 PJ2026-010304。 | -| PJ2026-010303 | ioProbe建模 | 定义外部观测数据的 evidence 模型、采样、单位、stats、board-comm 关联和真实仪器/外部回采口径。 | 硬件池、客户端 | 硬件池负责 probe 能力和物理接入;本课题负责把观测转成 Harness 可评价证据。 | -| PJ2026-010304 | Aggregate摘要 | 定义 aggregate.md、状态摘要、关键证据摘录、失败分类和 final-response 截断时的主阅读入口。 | 客户端、Agent编排 | 完成标准是人工和客户端能读懂结果;不替代 raw evidence 或 pass/fail 判定。 | -| PJ2026-010305 | 评估回放 | 定义 pass/fail、judge、baseline、replay、regression 和对抗审查入口。 | Agent编排、客户端、用户管理 | 完成标准是同一证据可被复验和比较;不定义硬件资源或用户权限。 | -| PJ2026-010306 | 训练反馈 | 定义 RL/reward、训练样本、失败标签、prompt/skill 反馈和可复用改进数据。 | Agent编排、用户管理 | 完成标准是评估结果能回流为训练/改进材料;不承诺具体模型训练发布。 | +- CaseRun case definition、stage model、postValidation、run-local workspace 和 case registry 语义。 +- HWPOD raw output、Agent trace、artifact、diff、final response 和硬件观测之间的验证事实关系。 +- ioProbe 外部观测模型,包括 probeId、单位、采样、统计和与硬件动作的关联。 +- aggregate、评价、baseline、replay、失败分类和可复验比较。 +- 训练反馈、失败标签、reward、prompt/skill/case 改进数据和 RL 闭环。 -## 当前开放缺口映射 +### 2.3 范围外 -- HWPOD 强化学习 Harness 总规划:主归 PJ2026-010306 训练反馈,并关联 PJ2026-010305 评估回放。 -- CaseRun + Web UI 统一 Agent Review 架构:主归 PJ2026-010305 评估回放,客户端展示归 [客户端](PJ2026-0104-client.md)。 -- PLC 71-FREQ ioProbe 造模和真实频率源扩展:Harness 侧归 PJ2026-010303 ioProbe建模,硬件接入归 [硬件池](PJ2026-0101-hardware-pool.md)。 -- timeout 收口状态不一致:Harness 侧归 PJ2026-010301 CaseRun规格,Agent 生命周期归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 -- final-response 截断但 present=true:主归 PJ2026-010304 Aggregate摘要,并关联 PJ2026-010302 证据采集。 +- 真实硬件资源、probe 能力、HWPOD node 和原始硬件事实归 [硬件池](PJ2026-0101-hardware-pool.md)。 +- Agent run、command、session、workspace 和 provider profile 生命周期归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 +- Web、CLI、API、SDK 和 Webhook 的用户入口体验归 [客户端](PJ2026-0104-client.md)。 +- 用户身份、额度、账本和租户策略归 [用户管理](PJ2026-0105-user-management.md)。 +- CI/CD、registry 保留、日志基础设施和平台发布归 [平台运维](PJ2026-0106-platform-ops.md)。 -## 验收标准 +## 3. 术语表 -- 原入口: `hwlab-cli case run start/status/result/logs`、case registry、aggregate.md、trace、artifact/diff/evidence 目录和 replay/评估入口。 -- Runtime/lane: HWLAB v0.2/v0.3;具体目标由下级 L2/L3 issue 指定。 -- Evidence: caseId、runId、traceId、registry commit、stage 状态、postValidation、ioProbe samples/stats、artifact 列表、diff、aggregate、评估/回放报告和训练反馈样本。 -- 完成口径: HarnessRL 只确认“证据和评价闭环可审计、可复验、可回流”;硬件可用性由 [硬件池](PJ2026-0101-hardware-pool.md) 验收,任务生命周期由 [Agent编排](PJ2026-0102-agent-orchestration.md) 验收,用户入口由 [客户端](PJ2026-0104-client.md) 验收,账本由 [用户管理](PJ2026-0105-user-management.md) 验收,运行面保留由 [平台运维](PJ2026-0106-platform-ops.md) 验收。 +| 术语 | 定义 | +| --- | --- | +| CaseRun | 按 case definition 执行硬件研发任务并形成 registry 记录的 Harness 运行。 | +| case registry | CaseRun 的结构化结果登记,用于保存 case、run、stage、artifact 和评价关系。 | +| aggregate | 面向人工和客户端的低噪声结果摘要,不替代原始执行事实。 | +| ioProbe | 对板外物理状态的外部观测探针,输出带单位、采样和统计语义的数据。 | +| replay | 基于同一 case 和验证事实关系复核执行结果的能力。 | +| 训练反馈 | 从成功/失败路径中沉淀出的 prompt、skill、case、reward 或策略改进材料。 | -## 当前状态 +## 4. 系统边界和接口 -- L2 编号和主责边界已固定;下级执行时按本表创建 L2/L3 issue,不再把单个 case、一次 smoke 或某个 artifact bug 升级成 L2。 -- 当前优先收口 CaseRun 状态语义、ioProbe 外部证据、aggregate 主阅读入口和评估/训练反馈的最小闭环。 +本规格把 HarnessRL 作为 HWLAB 内部的验证与训练反馈子系统看待;本章只描述该子系统的输入、输出和责任边界。 -## 回写规则 +| 边界项 | 内容 | +| --- | --- | +| 外部使用者 | Agent编排、客户端、用户管理、硬件池和训练任务。 | +| 外部输入 | case definition、workspace commit、HWPOD raw output、Agent trace、artifact、diff、ioProbe samples、run context 和用户/资源摘要。 | +| 受控资源 | CaseRun 定义、case registry、aggregate、评价模型、replay 入口、训练反馈样本和失败标签。 | +| 外部输出 | CaseRun 结果、aggregate、评价结论、replay 线索、失败分类、训练反馈和可复验的验证关系。 | +| 用户接口 | CaseRun CLI/API、case registry、aggregate、评价/回放入口、Agent Review 后端语义。 | +| 系统边界 | HarnessRL 负责评价和反馈语义;不定义硬件可用性、Agent 生命周期、客户端布局、用户账本或平台发布。 | -- 下级 L2/L3 完成后回写对应历史 issue,并在需要时更新本文档,并引用 caseId/runId/traceId/registry commit/evidence 路径。 -- 影响 L0 中心、编号、职责边界或全局验收时回写 [L0 总规格](PJ2026-01-HWLAB.md)。 -- 涉及硬件资源或 probe 能力回写 [硬件池](PJ2026-0101-hardware-pool.md);涉及 Agent 生命周期、workspace 或 artifact 指针回写 [Agent编排](PJ2026-0102-agent-orchestration.md);涉及 Web/CLI/API 展示回写 [客户端](PJ2026-0104-client.md);涉及 usage/credit/tenant 统计回写 [用户管理](PJ2026-0105-user-management.md);涉及 registry/log/artifact 保留回写 [平台运维](PJ2026-0106-platform-ops.md)。 +## 5. 内部分工与规格索引 + +| 编号 | 模块或课题 | 规格文档 | 主责边界 | 上游依赖 | 下游支撑 | +| --- | --- | --- | --- | --- | --- | +| PJ2026-010301 | CaseRun规格 | 本规格 6.1 | case definition、stage model、postValidation、registry 语义 | Agent编排、硬件池、平台运维 | 客户端、用户管理 | +| PJ2026-010302 | ioProbe建模 | 本规格 6.2 | 外部观测数据、单位、采样、统计和硬件动作关联 | 硬件池 | CaseRun、评价回放 | +| PJ2026-010303 | 评估回放 | 本规格 6.3 | aggregate、baseline、judge、replay 和失败分类 | CaseRun、Agent编排、硬件池 | 客户端、训练反馈 | +| PJ2026-010304 | 训练反馈 | 本规格 6.4 | reward、失败标签、prompt/skill/case 改进样本 | 评估回放、Agent编排 | Agent编排、用户管理 | + +## 6. 原子需求 + +### 6.1 HARNESS-L1-REQ-001 CaseRun 执行语义 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HARNESS-L1-REQ-001 | CaseRun 语义 | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +HarnessRL 应定义 CaseRun 的 case definition、stage model、postValidation、run-local workspace 和 case registry 语义,使一次真实硬件任务可以被稳定表达和复验。 + +CaseRun 语义必须引用 Agent 执行上下文和硬件事实,但不接管这些事实的生产。Agent编排提供 run/session/workspace 指针,硬件池提供真实硬件输出,平台运维提供 registry 和运行支撑。 + +### 6.2 HARNESS-L1-REQ-002 外部观测模型 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HARNESS-L1-REQ-002 | 外部观测模型 | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | [硬件池](PJ2026-0101-hardware-pool.md)、[客户端](PJ2026-0104-client.md) | + +HarnessRL 应定义 ioProbe 外部观测模型,使外部读数具备 probeId、单位、采样、统计和硬件动作关联。 + +外部观测模型必须区分板内 echo、日志输出和板外真实读数。硬件池负责 probe 能力和物理接入,HarnessRL 负责把外部读数转化为可评价的验证材料,客户端只负责展示。 + +### 6.3 HARNESS-L1-REQ-003 评估与回放 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HARNESS-L1-REQ-003 | 评估回放 | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md) | + +HarnessRL 应提供评估与回放语义,使同一次硬件执行可以被 aggregate 阅读、被 baseline 或 judge 比较,并能基于同一验证关系复核结论。 + +评估回放不是客户端展示,也不是 Agent 执行状态。它定义判断结果如何产生、如何解释、如何复核;客户端可以展示结论,Agent编排可以消费反馈,但不能替代 HarnessRL 定义评价语义。 + +### 6.4 HARNESS-L1-REQ-004 训练反馈 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| HARNESS-L1-REQ-004 | 训练反馈 | [PJ2026-0103 HarnessRL](PJ2026-0103-harness-rl.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[用户管理](PJ2026-0105-user-management.md) | + +HarnessRL 应把成功路径、失败分类和评价结论转化为可回流的训练反馈,使 prompt、skill、case、node-op 或 reward 数据能进入后续改进。 + +训练反馈必须来自真实执行和可复验评价,不能绕过硬件事实或使用特权模拟路径制造成功样本。Agent编排消费改进材料,用户管理只在需要时提供租户、权限和 usage 归因。 diff --git a/project-management/PJ2026-01/specs/PJ2026-0104-client.md b/project-management/PJ2026-01/specs/PJ2026-0104-client.md index 1a069f27..294fa46a 100644 --- a/project-management/PJ2026-01/specs/PJ2026-0104-client.md +++ b/project-management/PJ2026-01/specs/PJ2026-0104-client.md @@ -8,65 +8,118 @@ | v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL,避免 Markdown 渲染时裸 # 编号失效。 | | v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1206 迁移到 UniDesk 项目管理目录。 | +当前正文仍在规格治理草稿中;未定稿前不新增版本号,不为单次编辑追加 `待提交` 版本。 + ## 正文 -编号: PJ2026-0104 -短名: 客户端 -上级总项目: [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) -总规格文件: [PJ2026-01-HWLAB.md](PJ2026-01-HWLAB.md) -核对时间: 2026-06-14(北京时间) -核对口径: 以 HWLAB Cloud Web、hwlab-cli、HTTP API、公开入口、v0.3 Vue parity 和用户可见退化 issue 为准;本文档 定义用户入口契约和展示行为,不接管用户账本、Agent 内部调度、硬件库存或发布机制。 +## PJ2026-0104 客户端需求规格 -## 主责边界 +## 1. 文档控制 -- 主责对象: Web、CLI、HTTP API、SDK/IDE 插件、webhook、公开文档、兼容性、用户任务入口、状态展示和结果获取。 -- 不负责: 用户/计费真相、Agent 调度内部、硬件库存与证据真实性、CI/CD 发布、Secret/配置下发。 -- 交接方向: [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md)。 +| 字段 | 内容 | +| --- | --- | +| 编号 | PJ2026-0104 | +| 短名 | 客户端 | +| 层级 | L1 方向 | +| 状态 | 已生效 | +| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) | +| 上级规格 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | +| 规格治理索引 | [规格治理](spec-governance.md) | -## 交叉引用 +本文采用 ISO/IEC/IEEE 29148 需求规格模板的项目裁剪版:正文只保留客户端的稳定使命、范围、术语、系统边界、内部分工和原子需求。 -- 上游依赖: [用户管理](PJ2026-0105-user-management.md) 提供身份、权限、API key、额度和 admin 能力;[Agent编排](PJ2026-0102-agent-orchestration.md) 提供任务状态、session 和结果指针;[硬件池](PJ2026-0101-hardware-pool.md) 提供资源/设备状态;[HarnessRL](PJ2026-0103-harness-rl.md) 提供 evidence/aggregate;[平台运维](PJ2026-0106-platform-ops.md) 提供公网入口和发布状态。 -- 下游支撑: 所有用户入口通过客户端暴露;用户管理、Agent编排、硬件池和 HarnessRL 的用户可见能力需要客户端承载。 -- 接口/证据边界: 本方向定义 Web/CLI/API/SDK/Webhook 的调用契约、展示行为、错误语义和兼容性;不定义账号账本、Agent 生命周期、HWPOD 语义或 Harness evidence 标准。 -- 需同步回写: API/CLI/Web/SDK/Webhook 契约、兼容性、公开文档或用户入口变化时,回写 [L0 总规格](PJ2026-01-HWLAB.md)、[用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md) 和 [平台运维](PJ2026-0106-platform-ops.md)。 +## 2. 目的和范围 -## 方向目标 +### 2.1 目的 -形成统一的多客户端用户入口,让 Web、CLI、API、SDK/IDE 插件和 Webhook 围绕同一任务模型、权限模型、资源模型和结果模型协同演进。当前重点是把 v0.3 Vue 工作台退化、公开入口、API/CLI 一致性和用户管理页面补齐归到稳定 L2 下。 +客户端负责 HWLAB 面向用户和外部系统的统一入口,使 Web、CLI、HTTP API、SDK/IDE 插件、Webhook 和公开文档围绕同一任务模型、权限模型、资源模型和结果模型协同演进。 -## L2 课题 +### 2.2 范围内 -| 编号 | 短名 | 主责 | 关联 L1 | 边界 | -| --- | --- | --- | --- | --- | -| PJ2026-010401 | Web工作台 | 定义 Cloud Web 的任务提交、session/history、trace/result、HWPOD/evidence、Access/Usage/Admin 和工作台交互。 | Agent编排、用户管理、硬件池、HarnessRL、平台运维 | 完成标准是 Web 原入口行为正确;身份真相、Agent 生命周期、HWPOD 语义和发布机制分别归对应 L1。 | -| PJ2026-010402 | CLI入口 | 定义 hwlab-cli/hwpod/case 等用户命令的参数、输出、错误、profile、同路径 smoke 和脚本可用性。 | Agent编排、硬件池、HarnessRL、用户管理 | 完成标准是 CLI 用户入口一致可用;HWPOD 执行语义归 [硬件池](PJ2026-0101-hardware-pool.md),CaseRun 评价归 [HarnessRL](PJ2026-0103-harness-rl.md)。 | -| PJ2026-010403 | API契约 | 定义 HTTP API/WebSocket 的路径、schema、错误码、鉴权转发、兼容性和客户端消费契约。 | 用户管理、Agent编排、平台运维 | 完成标准是公开/内部 API 行为可依赖;后端业务真相由对应 L1 定义。 | -| PJ2026-010404 | SDK插件 | 定义 SDK、IDE 插件、外部工具接入、任务创建/查询/结果读取封装和版本兼容。 | Agent编排、用户管理 | 完成标准是外部开发者可集成;不定义平台底层调度或账号账本。 | -| PJ2026-010405 | Webhook集成 | 定义外部回调、事件订阅、任务状态通知、证据通知和失败重试语义。 | Agent编排、HarnessRL、用户管理 | 完成标准是外部系统能可靠消费事件;事件事实来源归对应业务 L1。 | -| PJ2026-010406 | 文档兼容 | 定义公开文档、示例、迁移说明、兼容性矩阵、错误排查和多客户端一致性说明。 | 全部 L1 | 完成标准是用户入口可解释、可迁移;不把内部长期规格或阶段报告当作客户端交付。 | +- Cloud Web 工作台、登录后工作流、任务创建、会话入口、trace/result 展示和用户可见资源入口。 +- `hwlab-cli`、HWPOD/CaseRun 相关用户命令的参数、输出、错误语义和脚本可用性。 +- HTTP API、WebSocket、SDK/IDE plugin、Webhook 和外部系统集成契约。 +- 公开文档、示例、兼容性说明和多客户端一致性。 -## 当前开放缺口映射 +### 2.3 范围外 -- v0.3 Vue 工作台入口与会话发送退化:主归 PJ2026-010401 Web工作台,关联 [Agent编排](PJ2026-0102-agent-orchestration.md)。 -- v0.3 Cloud Web 直达 history 路由缺 SPA fallback:主归 PJ2026-010401,公开入口/发布归 [平台运维](PJ2026-0106-platform-ops.md)。 -- v0.3 域名工作台登录后 API 间歇 502 且停留登录页:客户端侧归 PJ2026-010401/API契约,运行面归 [平台运维](PJ2026-0106-platform-ops.md)。 -- v0.3 Cloud Web check 受测试运行器兼容性与 timing 抖动影响:客户端侧归 PJ2026-010401,验证工具链归 [平台运维](PJ2026-0106-platform-ops.md)。 -- Agent Review 的 Web UI 承载部分:归 PJ2026-010401,评估/审查语义归 [HarnessRL](PJ2026-0103-harness-rl.md)。 +- 用户身份、API key、额度、usage、billing 和租户真相归 [用户管理](PJ2026-0105-user-management.md)。 +- Agent run、session、workspace 和 result 指针事实归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 +- HWPOD 资源、硬件事实和 probe 能力归 [硬件池](PJ2026-0101-hardware-pool.md)。 +- CaseRun 评价、aggregate、replay 和训练反馈归 [HarnessRL](PJ2026-0103-harness-rl.md)。 +- FRP、Caddy、TLS、CI/CD、Secret 和发布健康归 [平台运维](PJ2026-0106-platform-ops.md)。 -## 验收标准 +## 3. 术语表 -- 原入口: Cloud Web 公网/内网入口、`hwlab-cli`、HTTP API/WebSocket、SDK/插件样例和 Webhook 回调。 -- Runtime/lane: HWLAB v0.2/v0.3;具体目标由下级 L2/L3 issue 指定。 -- Evidence: Web smoke、CLI smoke、API 响应样例、SDK/plugin 示例、Webhook 投递记录、公开文档链接、兼容性记录和用户可见错误语义。 -- 完成口径: 客户端只确认“用户入口一致、可用、可解释”;身份/账本由 [用户管理](PJ2026-0105-user-management.md) 验收,任务生命周期由 [Agent编排](PJ2026-0102-agent-orchestration.md) 验收,硬件事实由 [硬件池](PJ2026-0101-hardware-pool.md) 验收,evidence/aggregate 由 [HarnessRL](PJ2026-0103-harness-rl.md) 验收,发布/入口健康由 [平台运维](PJ2026-0106-platform-ops.md) 验收。 +| 术语 | 定义 | +| --- | --- | +| Cloud Web | HWLAB 的 Web 用户入口,承载登录、工作台、任务、资源和管理页面。 | +| hwlab-cli | HWLAB 命令行入口,用于脚本化访问 Agent、CaseRun、HWPOD、用户和管理能力。 | +| API 契约 | HTTP API、WebSocket 和错误语义的稳定调用约定。 | +| SDK/IDE 插件 | 外部开发工具对 HWLAB 能力的封装入口。 | +| Webhook | HWLAB 向外部系统发送事件或回调的集成方式。 | +| 多客户端一致性 | 不同入口共享同一任务、权限、错误和结果语义。 | -## 当前状态 +## 4. 系统边界和接口 -- L2 编号和主责边界已固定;下级执行时按本表创建 L2/L3 issue,不再以单个页面、组件、测试脚本或框架迁移作为替代 L2。 -- 当前优先收口 Web工作台、CLI/API 一致性、公开入口可用性和公开文档/兼容性,确保 v0.3 多用户与硬件工作流不会继续在客户端层分叉。 +本规格把客户端作为 HWLAB 的用户入口子系统看待;本章只描述该子系统的输入、输出和责任边界。 -## 回写规则 +| 边界项 | 内容 | +| --- | --- | +| 外部使用者 | 硬件研发用户、外部自动化系统、IDE/SDK 使用者、平台管理员。 | +| 外部输入 | 用户凭据、API key、任务请求、workspace/HWPOD 选择、Agent session 操作、CaseRun 操作、管理操作和外部回调配置。 | +| 受控资源 | Web 页面、CLI 命令、HTTP API、SDK/IDE 插件、Webhook、公开文档和示例。 | +| 外部输出 | 用户可见任务入口、资源入口、调用响应、错误语义、结果展示、Webhook 投递和公开文档。 | +| 用户接口 | Cloud Web、`hwlab-cli`、HTTP API、WebSocket、SDK/IDE 插件、Webhook。 | +| 系统边界 | 客户端负责入口一致性和用户可见契约;不定义后端业务事实、硬件事实、评价语义、账本真相或发布机制。 | -- 下级 L2/L3 完成后回写对应历史 issue,并在需要时更新本文档,并引用 Web/CLI/API/SDK/Webhook 原入口证据。 -- 影响 L0 中心、编号、职责边界或全局验收时回写 [L0 总规格](PJ2026-01-HWLAB.md)。 -- 涉及身份、权限、API key、usage 或 admin 回写 [用户管理](PJ2026-0105-user-management.md);涉及任务/session/result 回写 [Agent编排](PJ2026-0102-agent-orchestration.md);涉及 HWPOD 资源/状态回写 [硬件池](PJ2026-0101-hardware-pool.md);涉及 evidence/aggregate 回写 [HarnessRL](PJ2026-0103-harness-rl.md);涉及公网入口、CI/CD 或 runtime 发布回写 [平台运维](PJ2026-0106-platform-ops.md)。 +## 5. 内部分工与规格索引 + +| 编号 | 模块或课题 | 规格文档 | 主责边界 | 上游依赖 | 下游支撑 | +| --- | --- | --- | --- | --- | --- | +| PJ2026-010401 | Web工作台 | 本规格 6.1 | Cloud Web 用户工作流和页面入口 | 用户管理、Agent编排、硬件池、HarnessRL、平台运维 | 用户和管理员 | +| PJ2026-010402 | CLI入口 | 本规格 6.2 | 命令行参数、输出、错误和脚本可用性 | 全部业务 L1 | 用户脚本、自动化系统 | +| PJ2026-010403 | API契约 | 本规格 6.3 | HTTP API、WebSocket、schema、错误码和兼容性 | 用户管理、Agent编排、平台运维 | Web、CLI、SDK、Webhook | +| PJ2026-010404 | 外部集成 | 本规格 6.4 | SDK/IDE 插件、Webhook、公开文档和示例 | API契约、全部业务 L1 | 外部开发者和自动化系统 | + +## 6. 原子需求 + +### 6.1 CLIENT-L1-REQ-001 Cloud Web 工作台 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| CLIENT-L1-REQ-001 | Web工作台 | [PJ2026-0104 客户端](PJ2026-0104-client.md) | [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +客户端应提供 Cloud Web 工作台,使用户能够通过同一 Web 入口完成登录后的任务创建、会话操作、硬件资源选择、执行结果查看和管理能力访问。 + +Web 工作台只承载用户交互和展示契约。身份真相来自用户管理,任务事实来自 Agent编排,硬件事实来自硬件池,评价语义来自 HarnessRL,公开入口健康来自平台运维。 + +### 6.2 CLIENT-L1-REQ-002 CLI 入口 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| CLIENT-L1-REQ-002 | CLI入口 | [PJ2026-0104 客户端](PJ2026-0104-client.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[用户管理](PJ2026-0105-user-management.md) | + +客户端应提供可脚本化的 CLI 入口,使用户和自动化系统能用一致的参数、输出和错误语义访问 HWLAB 能力。 + +CLI 入口必须复用后端业务事实,不在命令行层重新定义 HWPOD、CaseRun、Agent session、用户额度或评价结果。命令行文本和 JSON 输出应服务于自动化使用和人工排障,但不替代业务模块的完成标准。 + +### 6.3 CLIENT-L1-REQ-003 API 契约 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| CLIENT-L1-REQ-003 | API契约 | [PJ2026-0104 客户端](PJ2026-0104-client.md) | [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +客户端应定义 HTTP API、WebSocket、schema、错误码和兼容性契约,使 Web、CLI、SDK 和外部系统围绕同一接口语义集成。 + +API 契约负责调用形态、字段稳定性和错误表达,不拥有账号、任务、硬件或评价的业务真相。后端模块改变事实模型时,客户端负责把外部契约以一致方式暴露。 + +### 6.4 CLIENT-L1-REQ-004 外部集成与公开文档 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| CLIENT-L1-REQ-004 | 外部集成 | [PJ2026-0104 客户端](PJ2026-0104-client.md) | [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md) | + +客户端应提供 SDK/IDE 插件、Webhook 和公开文档,使外部开发者和自动化系统能够按稳定任务模型接入 HWLAB。 + +外部集成必须表达与 Web、CLI 和 API 相同的身份、任务、资源、错误和结果语义。公开文档只解释对外使用方式,不承载内部治理、阶段报告或执行流水。 diff --git a/project-management/PJ2026-01/specs/PJ2026-0105-user-management.md b/project-management/PJ2026-01/specs/PJ2026-0105-user-management.md index caf8322f..053a2c78 100644 --- a/project-management/PJ2026-01/specs/PJ2026-0105-user-management.md +++ b/project-management/PJ2026-01/specs/PJ2026-0105-user-management.md @@ -8,65 +8,143 @@ | v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL,避免 Markdown 渲染时裸 # 编号失效。 | | v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1207 迁移到 UniDesk 项目管理目录。 | +当前正文仍在规格治理草稿中;未定稿前不新增版本号,不为单次编辑追加 `待提交` 版本。 + ## 正文 -编号: PJ2026-0105 -短名: 用户管理 -上级总项目: [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) -总规格文件: [PJ2026-01-HWLAB.md](PJ2026-01-HWLAB.md) -核对时间: 2026-06-14(北京时间) -核对口径: 以 HWLAB v0.3 user-billing、Sub2API 多用户/credit 架构吸收、API key、session、usage/credit、admin 和 quota/entitlement issue 为准;本文档 定义用户与账本真相,不接管客户端布局、Agent 执行语义或平台发布。 +## PJ2026-0105 用户管理需求规格 -## 主责边界 +## 1. 文档控制 -- 主责对象: 用户、注册登录、session、权限、API key、credit、usage、billing、admin、plan/entitlement/quota、租户隔离和资源消费约束。 -- 不负责: 客户端交互细节、Agent 执行生命周期、硬件 evidence、Harness 评价、部署机制。 -- 交接方向: [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md)、[硬件池](PJ2026-0101-hardware-pool.md)。 +| 字段 | 内容 | +| --- | --- | +| 编号 | PJ2026-0105 | +| 短名 | 用户管理 | +| 层级 | L1 方向 | +| 状态 | 已生效 | +| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) | +| 上级规格 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | +| 规格治理索引 | [规格治理](spec-governance.md) | -## 交叉引用 +本文采用 ISO/IEC/IEEE 29148 需求规格模板的项目裁剪版:正文只保留用户管理的稳定使命、范围、术语、系统边界、内部分工和原子需求。 -- 上游依赖: [客户端](PJ2026-0104-client.md) 承载登录/API key/admin/usage 入口;[Agent编排](PJ2026-0102-agent-orchestration.md) 和 [HarnessRL](PJ2026-0103-harness-rl.md) 提供 usage/evidence 来源;[平台运维](PJ2026-0106-platform-ops.md) 提供数据库、Secret 和 runtime;[硬件池](PJ2026-0101-hardware-pool.md) 提供可授权的硬件资源事实。 -- 下游支撑: 客户端、Agent编排、硬件池和 HarnessRL 都需要身份、权限、额度、租户隔离和资源消费约束。 -- 接口/证据边界: 本方向定义账户、session、权限、额度、计量账本、账单和 admin 真相;不定义客户端布局、Agent 调度、HWPOD 物理资源或 Harness evidence 标准。 -- 需同步回写: 账户模型、API key、权限/配额、usage/credit、billing/admin 或租户隔离规则变化时,回写 [L0 总规格](PJ2026-01-HWLAB.md)、[客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md) 和 [平台运维](PJ2026-0106-platform-ops.md)。 +## 2. 目的和范围 -## 方向目标 +### 2.1 目的 -建立可运营的多用户管理体系,让 HWLAB 能支持用户注册、鉴权、API key、额度预检、资源授权、计量、账单和管理员操作,并用同一用户真相约束 Code Agent、HWPOD 和 Harness 资源消费。 +用户管理负责 HWLAB 的用户身份、会话、API key、权限、额度、计量、账单、管理员操作和租户隔离,使多用户云服务中的任务发起、资源消费和运营管理都能引用同一套用户与账本真相。 -## L2 课题 +### 2.2 范围内 -| 编号 | 短名 | 主责 | 关联 L1 | 边界 | -| --- | --- | --- | --- | --- | -| PJ2026-010501 | 账号会话 | 定义注册、登录、logout、session、introspect、cookie/token 生命周期和用户身份 source-of-truth。 | 客户端、平台运维 | 完成标准是身份可验证;登录页面和 UI 体验归 [客户端](PJ2026-0104-client.md),Secret/DB 发布归 [平台运维](PJ2026-0106-platform-ops.md)。 | -| PJ2026-010502 | APIKey | 定义 API key 创建、撤销、scope、脱敏展示、轮换、服务侧校验和调用身份绑定。 | 客户端、Agent编排、平台运维 | 完成标准是 API key 可安全消费;CLI/Web 展示归 [客户端](PJ2026-0104-client.md),Secret 同步归 [平台运维](PJ2026-0106-platform-ops.md)。 | -| PJ2026-010503 | 权限配额 | 定义 role/admin、plan、entitlement、quota、resource authorization、preflight 和资源使用许可。 | Agent编排、硬件池、客户端 | 完成标准是资源消费前授权正确;实际硬件可用性归 [硬件池](PJ2026-0101-hardware-pool.md),任务执行归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 | -| PJ2026-010504 | 计量账本 | 定义 credit ledger、reservation、usage record、idempotency、rollback/compensation 和 usage source 归因。 | Agent编排、HarnessRL、平台运维 | 完成标准是 usage/credit 真相可审计;Agent/Harness 只提供事件来源。 | -| PJ2026-010505 | 账单后台 | 定义 billing、usage summary、admin credit adjust、报表、导出和运营后台能力。 | 客户端、平台运维 | 完成标准是管理员和用户能看到可信账单;页面承载归 [客户端](PJ2026-0104-client.md),DB/发布归 [平台运维](PJ2026-0106-platform-ops.md)。 | -| PJ2026-010506 | 租户隔离 | 定义 tenant 边界、数据隔离、资源隔离、审计、跨用户共享和越权防护。 | 全部 L1 | 完成标准是多用户资源和数据不串租户;具体入口、执行、硬件和 evidence 仍由对应 L1 实现。 | +- 用户注册、登录、登出、session、会话检查和用户身份 source-of-truth。 +- API key 创建、撤销、scope、脱敏展示、轮换、服务端校验和调用身份绑定。 +- role、admin、plan、entitlement、quota、concurrency、RPM 和资源授权预检。 +- credit ledger、reservation、usage record、幂等消费、回滚补偿和 usage 来源归因。 +- billing summary、admin credit adjust、报表、导出、兑换码、手动充值和运营后台能力。 +- tenant 边界、用户数据隔离、资源隔离、跨用户共享约束和越权防护。 -## 当前开放缺口映射 +### 2.3 范围外 -- Go 用户与计费中台总计划:覆盖 PJ2026-010501 到 PJ2026-010505 的核心基线。 -- v0.3 user-billing 管理功能退化补齐:主归 PJ2026-010505 账单后台,并关联 PJ2026-010502 APIKey、PJ2026-010504 计量账本。 -- plan/entitlement/quota 资源授权闭环:主归 PJ2026-010503 权限配额。 -- Code Agent 计费成功但 AgentRun 执行失败:用户管理侧归 PJ2026-010504 计量账本与 PJ2026-010503 权限配额,Agent 执行归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 -- 登录后 API 间歇 502 且停留登录页:身份/API 行为关联 PJ2026-010501,客户端入口归 [客户端](PJ2026-0104-client.md),运行面归 [平台运维](PJ2026-0106-platform-ops.md)。 +- Web、CLI、API、SDK 和 Webhook 的入口体验归 [客户端](PJ2026-0104-client.md)。 +- Agent run、command、session、workspace 和 provider profile 生命周期归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 +- HWPOD 资源身份、硬件事实、租约和物理资源状态归 [硬件池](PJ2026-0101-hardware-pool.md)。 +- CaseRun 评价、回放、训练反馈和执行结果语义归 [HarnessRL](PJ2026-0103-harness-rl.md)。 +- 数据库、Secret、发布、公开入口和运行保障归 [平台运维](PJ2026-0106-platform-ops.md)。 -## 验收标准 +## 3. 术语表 -- 原入口: 注册/登录/API key/session introspect、Code Agent preflight、usage record、usage summary、credit ledger、admin 调整和 entitlement/quota API。 -- Runtime/lane: HWLAB v0.3 优先;涉及 v0.2 兼容时由下级 L2/L3 issue 指定。 -- Evidence: 用户/会话记录、API key 摘要、preflight 结果、reservation/usage record、credit ledger、usage summary、admin 操作记录、数据库 source-of-truth 记录和审计日志。 -- 完成口径: 用户管理只确认“身份、权限、额度、计量、账单和租户隔离真相正确”;客户端入口由 [客户端](PJ2026-0104-client.md) 验收,Agent 执行由 [Agent编排](PJ2026-0102-agent-orchestration.md) 验收,硬件资源由 [硬件池](PJ2026-0101-hardware-pool.md) 验收,Harness evidence 由 [HarnessRL](PJ2026-0103-harness-rl.md) 验收,DB/Secret/runtime 由 [平台运维](PJ2026-0106-platform-ops.md) 验收。 +| 术语 | 定义 | +| --- | --- | +| 用户 | HWLAB 中拥有身份、权限、额度和资源消费记录的主体。 | +| 会话 | 用户完成身份认证后获得的登录状态和服务端可检查的访问上下文。 | +| API key | 用户或外部系统用于调用 HWLAB API 的凭据,与用户身份、scope 和额度约束绑定。 | +| 权限 | 用户对管理操作、任务操作、资源操作和账单操作的访问许可。 | +| 配额 | 用户在并发、频率、资源类型或资源数量上的可消费上限。 | +| 计量账本 | 记录 reservation、usage、credit 增减和补偿关系的用户消费真相。 | +| 租户隔离 | 多用户环境中数据、资源和管理操作不能越权访问其他用户或租户的约束。 | -## 当前状态 +## 4. 系统边界和接口 -- L2 编号和主责边界已固定;下级执行时按本表创建 L2/L3 issue,不再把 UI 页面、单个 API 或数据库表名当作替代 L2。 -- 当前优先收口 v0.3 user-billing 的账号/API key/usage/admin/entitlement/quota 链路,并让 Code Agent、HWPOD 和 Harness 都只消费同一用户管理真相。 +本规格把用户管理作为 HWLAB 内部的身份与运营子系统看待;本章只描述该子系统的输入、输出和责任边界。 -## 回写规则 +| 边界项 | 内容 | +| --- | --- | +| 外部使用者 | 硬件研发用户、外部自动化系统、平台管理员、Agent编排、客户端和需要授权判断的内部模块。 | +| 外部输入 | 登录凭据、API key、权限请求、计划和配额配置、任务消费事件、硬件资源约束、管理员操作和充值/兑换请求。 | +| 受控资源 | 用户记录、会话、API key、角色、计划、额度、credit ledger、usage record、billing summary、admin 操作记录和租户边界。 | +| 外部输出 | 用户身份、会话状态、API key 摘要、授权预检结果、额度状态、usage/credit 记录、账单摘要、管理员查询结果和租户隔离判断。 | +| 用户接口 | Cloud Web 登录和账户入口、`hwlab-cli` 用户与管理命令、HTTP API、admin API。 | +| 系统边界 | 用户管理负责身份、权限、额度、计量、账单和租户隔离真相;不定义客户端界面、Agent 执行、硬件事实、Harness 评价或平台发布机制。 | -- 下级 L2/L3 完成后回写对应历史 issue,并在需要时更新本文档,并引用 API/Web/CLI、ledger、DB source-of-truth 和审计证据。 -- 影响 L0 中心、编号、职责边界或全局验收时回写 [L0 总规格](PJ2026-01-HWLAB.md)。 -- 涉及 Web/CLI/API 展示回写 [客户端](PJ2026-0104-client.md);涉及任务 preflight/usage source 回写 [Agent编排](PJ2026-0102-agent-orchestration.md);涉及硬件资源授权回写 [硬件池](PJ2026-0101-hardware-pool.md);涉及 evidence/usage 统计来源回写 [HarnessRL](PJ2026-0103-harness-rl.md);涉及 DB、Secret、runtime 发布回写 [平台运维](PJ2026-0106-platform-ops.md)。 +## 5. 内部分工与规格索引 + +| 编号 | 模块或课题 | 规格文档 | 主责边界 | 上游依赖 | 下游支撑 | +| --- | --- | --- | --- | --- | --- | +| PJ2026-010501 | 账号会话 | 本规格 6.1 | 用户注册、登录、登出、session 和身份 source-of-truth | 客户端入口、平台数据库与 Secret | 客户端、Agent编排、管理后台 | +| PJ2026-010502 | APIKey | 本规格 6.2 | API key 生命周期、scope、脱敏展示、轮换和调用身份绑定 | 账号会话、平台 Secret 支撑 | CLI、API、SDK、Agent编排 | +| PJ2026-010503 | 权限配额 | 本规格 6.3 | role、admin、plan、entitlement、quota 和资源授权预检 | 用户身份、硬件资源事实、平台配置 | Agent编排、硬件池、客户端 | +| PJ2026-010504 | 计量账本 | 本规格 6.4 | credit ledger、reservation、usage record、幂等和补偿 | Agent/Harness 消费事件、平台数据库 | billing、admin、运营分析 | +| PJ2026-010505 | 账单后台 | 本规格 6.5 | billing summary、admin 调账、报表、导出、充值和兑换 | 计量账本、账号权限、客户端入口 | 用户、管理员、运营流程 | +| PJ2026-010506 | 租户隔离 | 本规格 6.6 | 多用户数据、资源和管理操作隔离 | 用户身份、权限配额、平台存储 | 全部 L1 | + +## 6. 原子需求 + +### 6.1 USER-L1-REQ-001 账号与会话 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| USER-L1-REQ-001 | 账号会话 | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | [客户端](PJ2026-0104-client.md)、[平台运维](PJ2026-0106-platform-ops.md)、[Agent编排](PJ2026-0102-agent-orchestration.md) | + +用户管理应提供统一账号与会话能力,使 HWLAB 用户能够完成注册、登录、登出、会话检查和身份续用,并让 Web、CLI、API 和内部服务都引用同一用户身份。 + +账号与会话是用户管理的身份事实源。客户端负责呈现登录和账户入口,平台运维提供数据库与 Secret 支撑,Agent编排只消费已确认身份,不另建任务侧用户身份。 + +### 6.2 USER-L1-REQ-002 API key 生命周期 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| USER-L1-REQ-002 | APIKey | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +用户管理应提供 API key 生命周期能力,使用户和外部系统能够创建、撤销、轮换并以受限 scope 调用 HWLAB 服务。 + +API key 必须绑定用户身份、权限和额度约束,并在展示和日志中只暴露安全摘要。客户端负责入口和输出形态,平台运维负责 Secret 运行支撑,业务模块只消费校验结果和调用身份。 + +### 6.3 USER-L1-REQ-003 权限、配额与资源授权 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| USER-L1-REQ-003 | 权限配额 | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[客户端](PJ2026-0104-client.md) | + +用户管理应提供权限、计划、额度和资源授权预检能力,使 HWLAB 在任务发起和资源占用前能够判断用户是否有权消费对应能力。 + +权限配额只定义用户是否可以消费资源和可消费多少。硬件池负责真实硬件可用性,Agent编排负责任务装配与执行,客户端负责把授权失败或额度不足以一致方式暴露给用户。 + +### 6.4 USER-L1-REQ-004 计量账本 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| USER-L1-REQ-004 | 计量账本 | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +用户管理应提供计量账本能力,使 reservation、usage record、credit 增减、幂等处理和回滚补偿都能落到同一用户消费真相中。 + +计量账本必须能区分任务发起、资源占用、执行失败、执行完成和人工调整等消费来源。Agent编排和 HarnessRL 提供消费事件语义,平台运维提供持久化和运行支撑,但不得反向定义 credit 或 usage 业务规则。 + +### 6.5 USER-L1-REQ-005 账单与管理后台 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| USER-L1-REQ-005 | 账单后台 | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | [客户端](PJ2026-0104-client.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +用户管理应提供账单与管理后台能力,使用户和管理员能够查看消费摘要、ledger 明细、额度状态,并完成受控的 credit 调整、兑换、充值和运营查询。 + +账单与管理后台承载用户管理的运营视图,不能用客户端页面状态或临时数据库查询替代账本真相。客户端负责页面和命令入口,平台运维负责运行支撑和数据服务可用性。 + +### 6.6 USER-L1-REQ-006 租户隔离 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| USER-L1-REQ-006 | 租户隔离 | [PJ2026-0105 用户管理](PJ2026-0105-user-management.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[平台运维](PJ2026-0106-platform-ops.md) | + +用户管理应提供租户隔离能力,使多用户环境中的账户、任务、资源、usage、账单和管理操作不会越权访问其他用户或租户的数据。 + +租户隔离必须成为各入口和内部模块共享的访问边界。客户端、Agent编排、硬件池、HarnessRL 和平台运维都应消费用户管理给出的身份和权限上下文,而不是在各自模块中发明不一致的隔离规则。 diff --git a/project-management/PJ2026-01/specs/PJ2026-0106-platform-ops.md b/project-management/PJ2026-01/specs/PJ2026-0106-platform-ops.md index 7f75af1b..bdaa5927 100644 --- a/project-management/PJ2026-01/specs/PJ2026-0106-platform-ops.md +++ b/project-management/PJ2026-01/specs/PJ2026-0106-platform-ops.md @@ -8,66 +8,134 @@ | v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL,避免 Markdown 渲染时裸 # 编号失效。 | | v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1208 迁移到 UniDesk 项目管理目录。 | +当前正文仍在规格治理草稿中;未定稿前不新增版本号,不为单次编辑追加 `待提交` 版本。 + ## 正文 -编号: PJ2026-0106 -短名: 平台运维 -上级总项目: [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) -总规格文件: [PJ2026-01-HWLAB.md](PJ2026-01-HWLAB.md) -核对时间: 2026-06-14(北京时间) -核对口径: 以 HWLAB v0.2/v0.3 runtime、G14/D601 lane、CI/CD、git mirror、YAML-first、Secret、FRP/Caddy、observability 和 GC/retention 问题为准;本文档 定义平台交付和运行面可见性,不接管产品行为、用户策略、Agent 语义或硬件验收标准。 +## PJ2026-0106 平台运维需求规格 -## 主责边界 +## 1. 文档控制 -- 主责对象: CI/CD、git mirror、YAML-first、Secret 下发、rollout、公开入口、observability、GC/retention、平台发布和运行面诊断。 -- 不负责: 产品行为定义、用户策略、Agent 执行语义、硬件资源验收、Harness pass/fail、客户端 UX。 -- 交接方向: [硬件池](PJ2026-0101-hardware-pool.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md)。 +| 字段 | 内容 | +| --- | --- | +| 编号 | PJ2026-0106 | +| 短名 | 平台运维 | +| 层级 | L1 方向 | +| 状态 | 已生效 | +| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) | +| 上级规格 | [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md) | +| 规格治理索引 | [规格治理](spec-governance.md) | -## 交叉引用 +本文采用 ISO/IEC/IEEE 29148 需求规格模板的项目裁剪版:正文只保留平台运维的稳定使命、范围、术语、系统边界、内部分工和原子需求。 -- 上游依赖: 硬件池、Agent编排、HarnessRL、客户端和用户管理提供发布、配置、密钥、观测和运行面需求。 -- 下游支撑: 所有 L1 依赖平台运维完成镜像、配置、Secret、Git mirror/source commit、公开入口、运行状态、日志/trace 和清理保留。 -- 接口/证据边界: 本方向输出可复现发布、配置同步、Secret fingerprint、public exposure、健康状态、观测证据和运维动作记录;不定义任何业务 L1 的验收标准。 -- 需同步回写: CI/CD、git mirror、YAML-first、Secret、公开入口、rollout、observability 或 GC/retention 规则变化时,回写 [L0 总规格](PJ2026-01-HWLAB.md) 和全部受影响 L1 规格。 +## 2. 目的和范围 -## 方向目标 +### 2.1 目的 -建立可持续交付和可观测的平台运维体系,让 HWLAB 各业务方向可以通过受控 CI/CD、Git mirror、YAML-first 配置、Secret/rollout、公开入口和保留清理机制稳定发布与排障。当前重点是消除 v0.3 公开入口、DB/Secret、AgentRun/provider、git mirror 和可见性缺口对业务 L1 的遮蔽。 +平台运维负责为 HWLAB 各业务方向提供受控发布、源码同步、YAML 配置、Secret 下发、公开入口、运行观测和资源清理支撑。它是 HWLAB 的后勤保障方向,不把运维动作包装成对外产品能力,也不替代业务 L1 定义功能需求。 -## L2 课题 +### 2.2 范围内 -| 编号 | 短名 | 主责 | 关联 L1 | 边界 | -| --- | --- | --- | --- | --- | -| PJ2026-010601 | 发布流水 | 定义 CI/CD、PipelineRun、image、rollout、trigger-current、post-merge deploy 和发布状态回写。 | 全部 L1 | 完成标准是变更可受控发布;业务功能是否正确由对应 L1 验收。 | -| PJ2026-010602 | Git镜像 | 定义 git mirror sync/flush、source commit authority、bundle/mirror URL、lane source truth 和 Argo/GitOps 源同步。 | Agent编排、HarnessRL、平台运维 | 完成标准是运行面拿到正确源码;ResourceBundle 输入装配归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 | -| PJ2026-010603 | 配置治理 | 定义 YAML-first target/lane/node/service 配置、render、validate、schema 可见性和禁止硬编码策略。 | 全部 L1 | 完成标准是配置真相可控;具体业务数值和策略由对应 L1/配置 owning side 决定。 | -| PJ2026-010604 | 密钥同步 | 定义 Secret sourceRef、targetKey、fingerprint、presence、下发、轮换和禁止泄漏输出。 | 用户管理、Agent编排、客户端 | 完成标准是凭据存在且可审计;凭据值和业务权限含义不在本 L1 反推。 | -| PJ2026-010605 | 公开入口 | 定义 FRP/Caddy/domain/TLS、端口、health、public exposure 和入口漂移诊断。 | 客户端、用户管理、Agent编排 | 完成标准是公开入口指向正确 runtime;页面/接口业务行为归 [客户端](PJ2026-0104-client.md) / [用户管理](PJ2026-0105-user-management.md) / [Agent编排](PJ2026-0102-agent-orchestration.md)。 | -| PJ2026-010606 | 运行观测 | 定义 health/status/logs/trace、failure reason、tail、diagnostic CLI、事件和可见性先修。 | 全部 L1 | 完成标准是失败位置和状态可见;观测信号不能替代能力实现。 | -| PJ2026-010607 | 保留清理 | 定义 artifact、trace、case registry、workspace、session、log、cache、PVC 和 GC/retention 边界。 | HarnessRL、Agent编排、硬件池 | 完成标准是证据可保留且资源可回收;证据内容正确性归 [HarnessRL](PJ2026-0103-harness-rl.md),workspace 语义归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 | +- CI/CD、PipelineRun、image、rollout、trigger-current 和发布状态。 +- Git mirror、source commit authority、bundle/mirror URL、lane source truth 和 GitOps 源同步。 +- YAML-first target、lane、node、service 配置、render、validate 和配置可见性。 +- Secret sourceRef、targetKey、fingerprint、presence、下发、轮换和敏感输出约束。 +- FRP、Caddy、domain、TLS、public health 和公开入口漂移处理。 +- health、status、logs、trace、失败原因、运行事件和可见性先修。 +- artifact、trace、workspace、session、log、cache、PVC 和 registry 的保留与清理。 -## 当前开放缺口映射 +### 2.3 范围外 -- v0.3 public exposure 端口/旧 web 指向问题:主归 PJ2026-010605 公开入口。 -- G14 v0.3 admin Secret 已收敛但 DB 连接阻塞登录:平台侧归 PJ2026-010604 密钥同步和 PJ2026-010606 运行观测。 -- 域名工作台登录后 API 间歇 502:入口/运行面归 PJ2026-010605 公开入口和 PJ2026-010606 运行观测,客户端归 [客户端](PJ2026-0104-client.md)。 -- Cloud Web check 受运行器兼容性和 timing 抖动影响:平台侧归 PJ2026-010601 发布流水与 PJ2026-010606 运行观测。 -- Web v0.2 与 CaseRun HWPOD 工具包同步差异:平台侧归 PJ2026-010602 Git镜像/源同步,Agent 装配归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 +- HWLAB 对外产品能力、用户目标和业务行为定义归对应 L0/L1 规格。 +- 用户身份、API key、额度、账本和租户策略归 [用户管理](PJ2026-0105-user-management.md)。 +- Agent run、command、session、workspace 和 provider profile 语义归 [Agent编排](PJ2026-0102-agent-orchestration.md)。 +- HWPOD 资源、硬件事实和 probe 能力归 [硬件池](PJ2026-0101-hardware-pool.md)。 +- CaseRun 评价、回放、训练反馈和执行结果语义归 [HarnessRL](PJ2026-0103-harness-rl.md)。 +- Web、CLI、API、SDK 和 Webhook 的用户入口体验归 [客户端](PJ2026-0104-client.md)。 -## 验收标准 +## 3. 术语表 -- 原入口: UniDesk/HWLAB 受控 CI/CD、git mirror、YAML render/validate、Secret sync、FRP/Caddy/public health、runtime status/logs/trace、GC/retention 命令。 -- Runtime/lane: HWLAB v0.2/v0.3、G14/D601 相关 lane;具体目标由下级 L2/L3 issue 指定。 -- Evidence: PipelineRun/rollout 状态、source commit、mirror sync/flush 记录、YAML render 结果、Secret fingerprint、public URL health、pod/service 状态、logs/trace、GC/retention 摘要和失败原因。 -- 完成口径: 平台运维只确认“交付、配置、密钥、入口、观测和清理可控”;硬件、Agent、Harness、客户端和用户管理的业务成功由对应 L1 定义。 +| 术语 | 定义 | +| --- | --- | +| 受控发布 | 通过标准 CI/CD、镜像、rollout 和状态查询入口完成的服务交付过程。 | +| Git mirror | 为目标运行面提供源码同步和 source commit authority 的镜像机制。 | +| YAML-first | UniDesk 自有配置以 YAML 为真相源,运行面和 CLI 从 YAML 渲染与校验。 | +| SecretRef | 指向密钥来源和目标 key 的声明式引用,运行输出只披露摘要和存在性。 | +| 公开入口 | FRP、Caddy、域名、TLS 和健康检查共同形成的外部访问面。 | +| 运行观测 | 对服务状态、日志尾部、trace、失败原因和运行事件的可见性能力。 | +| 保留清理 | 对产物、缓存、会话、日志、PVC 和 registry 资源的生命周期管理。 | -## 当前状态 +## 4. 系统边界和接口 -- L2 编号和主责边界已固定;下级执行时按本表创建 L2/L3 issue,不再以单个 namespace、pod、脚本或临时运维动作作为替代 L2。 -- 当前优先收口 v0.3 public exposure、DB/Secret、git mirror/source commit、AgentRun/provider 可观测性和运行面保留清理,避免平台缺口遮蔽业务验收。 +本规格把平台运维作为 HWLAB 内部的运行支撑子系统看待;本章只描述该子系统的输入、输出和责任边界。 -## 回写规则 +| 边界项 | 内容 | +| --- | --- | +| 外部使用者 | HWLAB 各 L1 模块、平台管理员、发布操作人员和需要运行状态的自动化任务。 | +| 外部输入 | Git commit、PR merge、镜像产物、YAML 配置、SecretRef、公开入口声明、retention policy、服务健康请求和运行状态查询。 | +| 受控资源 | CI/CD pipeline、Git mirror、运行 lane、Kubernetes 资源、YAML 配置、Secret 分发、FRP/Caddy、日志、trace、缓存、PVC 和 registry。 | +| 外部输出 | 发布状态、source commit、配置渲染结果、Secret 摘要、public URL health、服务状态、日志尾部、失败原因、保留清理结果和运行支撑记录。 | +| 用户接口 | UniDesk CLI、HWLAB 控制面命令、受控 Secret 命令、平台基础设施命令、短查询 route。 | +| 系统边界 | 平台运维负责交付、配置、密钥、入口、观测和清理可控;不定义硬件、Agent、Harness、客户端或用户管理的业务成功标准。 | -- 下级 L2/L3 完成后回写对应历史 issue,并在需要时更新本文档,并引用 PipelineRun、source commit、render/Secret fingerprint、public health、status/log/trace 或 GC/retention 证据。 -- 影响 L0 中心、编号、职责边界或全局验收时回写 [L0 总规格](PJ2026-01-HWLAB.md)。 -- 涉及硬件 runtime/node 回写 [硬件池](PJ2026-0101-hardware-pool.md);涉及 AgentRun/workspace/provider 回写 [Agent编排](PJ2026-0102-agent-orchestration.md);涉及 case registry/evidence 保留回写 [HarnessRL](PJ2026-0103-harness-rl.md);涉及 Web/CLI/API/public entry 回写 [客户端](PJ2026-0104-client.md);涉及 DB/用户/Secret 语义回写 [用户管理](PJ2026-0105-user-management.md)。 +## 5. 内部分工与规格索引 + +| 编号 | 模块或课题 | 规格文档 | 主责边界 | 上游依赖 | 下游支撑 | +| --- | --- | --- | --- | --- | --- | +| PJ2026-010601 | 发布流水 | 本规格 6.1 | CI/CD、PipelineRun、image、rollout、trigger-current 和发布状态 | Git commit、镜像配置、各 L1 发布需求 | 全部 L1 | +| PJ2026-010602 | 源码同步 | 本规格 6.2 | Git mirror、source commit authority、bundle/mirror URL 和 lane source truth | Git remote、运行 lane、Agent 资源装配需求 | Agent编排、HarnessRL、客户端 | +| PJ2026-010603 | 配置密钥 | 本规格 6.3 | YAML-first 配置、SecretRef、targetKey、fingerprint、下发和敏感输出约束 | 各 L1 配置需求、密钥来源 | 全部 L1 | +| PJ2026-010604 | 公开入口 | 本规格 6.4 | FRP、Caddy、domain、TLS、public health 和入口漂移处理 | 客户端/API 服务、运行 lane | 客户端、用户管理、Agent编排 | +| PJ2026-010605 | 运行保障 | 本规格 6.5 | health、status、logs、trace、失败原因、保留清理和资源回收 | 运行面状态、retention policy | 全部 L1 | + +## 6. 原子需求 + +### 6.1 OPS-L1-REQ-001 受控发布 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| OPS-L1-REQ-001 | 受控发布 | [PJ2026-0106 平台运维](PJ2026-0106-platform-ops.md) | [客户端](PJ2026-0104-client.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[用户管理](PJ2026-0105-user-management.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[HarnessRL](PJ2026-0103-harness-rl.md) | + +平台运维应提供受控发布能力,使 HWLAB 服务变更能够通过标准 CI/CD、镜像构建、rollout、trigger-current 和状态查询进入目标运行面。 + +受控发布只保证变更以可追踪、可回滚、可观察的方式交付到目标运行面。具体业务能力是否满足需求,仍由对应 L1 规格定义,不能用 PipelineRun 成功替代业务完成。 + +### 6.2 OPS-L1-REQ-002 源码同步与运行真相 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| OPS-L1-REQ-002 | 源码同步 | [PJ2026-0106 平台运维](PJ2026-0106-platform-ops.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[客户端](PJ2026-0104-client.md) | + +平台运维应提供源码同步与运行真相能力,使目标 lane 使用明确的 Git mirror、source commit、bundle/mirror URL 和 GitOps 来源。 + +源码同步必须让运行面能够说明自己来自哪个 commit 和哪条受控来源。Agent编排可以消费 source truth 装配 workspace,HarnessRL 可以引用源码上下文执行 CaseRun,但它们不接管 mirror 和 lane source authority。 + +### 6.3 OPS-L1-REQ-003 配置与密钥下发 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| OPS-L1-REQ-003 | 配置密钥 | [PJ2026-0106 平台运维](PJ2026-0106-platform-ops.md) | [用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md)、[客户端](PJ2026-0104-client.md)、[硬件池](PJ2026-0101-hardware-pool.md) | + +平台运维应提供 YAML-first 配置与 Secret 下发能力,使 HWLAB 自有配置、lane 参数、SecretRef、targetKey、fingerprint 和 presence 通过受控入口进入运行面。 + +配置与密钥下发必须把 YAML 和声明式 SecretRef 作为真相来源,并限制命令输出只披露摘要、对象名、key 名和存在性。业务模块负责定义自身需要的配置含义,平台运维负责把这些配置和密钥安全地送到运行面。 + +### 6.4 OPS-L1-REQ-004 公开入口 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| OPS-L1-REQ-004 | 公开入口 | [PJ2026-0106 平台运维](PJ2026-0106-platform-ops.md) | [客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md)、[Agent编排](PJ2026-0102-agent-orchestration.md) | + +平台运维应提供公开入口支撑能力,使 HWLAB 的 Web、API 和管理入口能够通过正确的 FRP、Caddy、域名、TLS 和 health 目标暴露到外部。 + +公开入口负责外部流量到目标 runtime 的正确连通和漂移收敛。页面行为、API 契约、用户登录和 Agent 任务语义分别由客户端、用户管理和 Agent编排定义。 + +### 6.5 OPS-L1-REQ-005 运行观测与资源清理 + +| 编号 | 短名 | 主责模块 | 关联模块 | +| --- | --- | --- | --- | +| OPS-L1-REQ-005 | 运行保障 | [PJ2026-0106 平台运维](PJ2026-0106-platform-ops.md) | [Agent编排](PJ2026-0102-agent-orchestration.md)、[HarnessRL](PJ2026-0103-harness-rl.md)、[硬件池](PJ2026-0101-hardware-pool.md)、[客户端](PJ2026-0104-client.md)、[用户管理](PJ2026-0105-user-management.md) | + +平台运维应提供运行观测与资源清理能力,使 HWLAB 的服务状态、日志尾部、trace、失败原因、artifact、workspace、session、cache、PVC 和 registry 生命周期可控。 + +运行观测用于定位运行面问题,不能替代业务功能实现或业务完成标准。资源清理用于避免运行面被历史产物、缓存和残留会话拖垮,清理策略必须保护仍被业务模块引用的必要产物。 diff --git a/project-management/templates/iso-iec-ieee-29148-requirements-spec-template.md b/project-management/templates/iso-iec-ieee-29148-requirements-spec-template.md index a3e577f3..f17167a5 100644 --- a/project-management/templates/iso-iec-ieee-29148-requirements-spec-template.md +++ b/project-management/templates/iso-iec-ieee-29148-requirements-spec-template.md @@ -15,7 +15,7 @@ - 业务需求规格用于使命和商业目标,利益相关方需求规格用于用户和运营方诉求,系统需求规格用于跨硬件、软件、人员和流程的系统级要求,软件需求规格用于软件能力要求。运行流程和一次性执行过程不进入需求规格正文,稳定概念优先沉淀为术语表。 - HWLAB 的 L0、L1、L2 规格共用同一骨架,但粒度不同:L0 写使命、边界和全局需求;L1 写内部模块职责和验收边界;L2 写具体课题的交付物、阻塞项和验证计划。 -- 规格正文只写稳定需求、系统边界、外部输入输出、职责和必要追踪关系;内部治理、阶段报告、执行流水、长日志、拉取请求过程和一次性证据不进入需求规格正文。 +- 规格正文只写稳定需求、系统边界、外部输入输出和职责;内部治理、阶段报告、执行流水、长日志、拉取请求过程和一次性运行材料不进入需求规格正文。 - 每条原子需求使用独立小节。信息表使用横向表格且只放短元数据,推荐包含编号、短名、主责模块和关联模块;需求定义、职责划分、意图、范围和边界写在正文中,避免表格厚而正文薄。 - 不要为了凑全局需求条目自动添加证据收集、硬编码诊断、硬编码建议、任务状态收集、结果包或结果收集类次要需求;除非用户明确授意,这些内容不进入 OA 规格。 @@ -98,14 +98,4 @@ | <需求编号> | <需求短名> | <项目编号 短名,使用相对路径链接> | <关联模块,使用相对路径链接> | <正文第一段写完整需求定义。正文后续段落写主责职责、关联模块职责、意图、范围和边界。正文不放执行流水和长证据。> - -## 7. 假设和风险 - -- <只写会影响需求或验证的稳定假设和风险。> - -## 8. 变更控制 - -- 稳定需求变化必须更新本文档。 -- 阶段计划和执行流水不得替代本文档。 -- 下级工作完成后按规格治理文档回写。 ```