# v0.2 hwlab-agent-worker 服务规格 `hwlab-agent-worker` 是 session-scoped 执行模板,在 `hwlab-v02` 中以 suspended Job template `hwlab-agent-worker-template` 存在。它不是长驻 HTTP 服务。 ## 在系统中的职责划分 - 在未来由 manager 或调度器实例化为单次 worker Job,执行一个 agent session 的受控工作。 - 负责写入 worker trace、evidence、workspace dry-run 结果,并在完成后退出。 - 不保存长期用户状态,不直接处理浏览器或公网请求。 ## 内部架构 - `cmd/hwlab-agent-worker/main.ts` 提供 CLI 命令 `health` 和 `dry-run/smoke`。 - `internal/agent/runtime.mjs` 提供 `runLocalWorkerDryRun`,读取 manager 创建的本地 session 状态并写入 evidence。 - Job template 通过 env 注入 `HWLAB_AGENT_SESSION_ID`、`HWLAB_SKILL_COMMIT_ID` 和 `HWLAB_SKILL_VERSION`。 ## API 接口说明 | 接口 | 说明 | | --- | --- | | `bun run cmd/hwlab-agent-worker/main.ts health` | 返回 worker health、runtime mode 和 skills 注入状态。 | | `bun run cmd/hwlab-agent-worker/main.ts dry-run --agent-session-id ID` | 执行本地 dry-run worker 流程,写入 trace/evidence。 | | Kubernetes Job template | `hwlab-agent-worker-template` 默认 `suspend: true`,只能由受控调度实例化。 | ## 测试规格 ## T1 阅读 docs/reference/spec-v02-hwlab-agent-worker.md,然后用 cli 手动测试以下内容:从 Job template dry-run 或本地 CLI 执行 `health`,确认输出 JSON,且缺少 skill commit/version 时明确 degraded 或 blocked。 ## T2 阅读 docs/reference/spec-v02-hwlab-agent-worker.md,然后用 cli 手动测试以下内容:先用 agent-mgr 创建 session,再执行 worker `dry-run`,确认 trace 和 evidence 均写入同一 isolated state-dir。 ## 规格的实现情况 | 规格项 | 状态 | 说明 | | --- | --- | --- | | CLI health/dry-run | 已实现 | worker 以 JSON 输出。 | | suspended Job template | 已实现 | runtime-v02 中存在 `hwlab-agent-worker-template`。 | | session-scoped evidence 写入 | 已实现 | 本地 dry-run 覆盖 trace/evidence。 | | 长驻 HTTP API | 不适用 | worker 不是长驻服务。 | | 生产调度与真实执行 | 未完全实现 | 当前仍是 skeleton/dry-run 模式。 |