跨 Cell 管理观测
wesgine Hypervisor 级跨 Cell 的管理观测端点。
定位
Hypervisor 的 Observe Handle 提供跨 Cell 只读聚合视图。
这是 AX-1(隔离)公理的例外——跨 Cell 只允许 admin 只读观测。
API
Hypervisor 快照
GET /admin/observe/snapshot
SDK:
snap := hyp.Observe().Snapshot()
返回 HypervisorSnapshot,包含:
- 全局状态
- 各 Cell 摘要
- 降级密钥台账(
degradedSecrets/degradedSharedProviders) - 旧格式 spec 重写计数(
LegacySpecRewrites)
各 Cell 统计
GET /admin/observe/per-cell-stats?cell=
SDK:
stats, err := hyp.Observe().PerCellStats(ctx, cellIDs...)
崩溃日志
GET /admin/observe/crash-log
SDK:
events, err := hyp.Observe().CrashLog(ctx)
Provider 延迟统计
GET /admin/observe/provider-latency
SDK:
stats, err := hyp.Observe().ProviderLatencyStats(ctx)
跨 Cell Run 列表
GET /admin/observe/runs?cell=
SDK:
runs, err := hyp.Observe().ListRuns(ctx, filter)
与 Cell 级 Observe 的区别
| 维度 | Admin Observe | Cell Observe |
|---|---|---|
| 作用域 | 跨 Cell | 单 Cell |
| 权限 | Admin Token | Cell Token |
| Actor 过滤 | 无(管理视图) | 按 actor 过滤(INV-OBS-08) |
| 数据 | 聚合摘要 | 完整详情 |
Cell 级 Observe 端点
单 Cell 内的详细观测(需 Cell Token):
Token 用量
GET /cells/{id}/observe/token-usage
GET /cells/{id}/observe/token-summary
GET /cells/{id}/observe/token-usage/aggregate
Run 追踪
GET /cells/{id}/observe/runs
GET /cells/{id}/observe/runs/{runID}
GET /cells/{id}/observe/runs/{runID}/tools
Cell 统计
GET /cells/{id}/observe/stats
Run 追踪摘要
GET /cells/{id}/observe/traces
证据链
GET /cells/{id}/observe/evidence
JSONL 流。权限:cell:admin(INV-OBS-09)。
证据链是逐 Run hash chain,切片后缺环无法校验。
崩溃日志
GET /cells/{id}/observe/crash-log
审计导出
GET /cells/{id}/audit/export?format=jsonl|csv&from=&to=
GET /cells/{id}/audit/summary
权限:cell:admin(INV-OBS-09)。
与 /observe/evidence 一样,不做 actor 过滤——审计记录是逐 Run hash chain。
Actor 边界(INV-OBS-08/09/10)
Cell 级 Observe 端点遵循 actor 边界:
- SQL 谓词只在
internal/observe/actor.go(actorClause单点) wes_tool_calls/wes_turn_traces归属向父 Run 借(runOwnedByActor)?actor=只对 admin token 生效- 无主 Run 读作隐藏
- 不属于你与不存在返回同一句话
例外:/observe/evidence 与 /audit/* 抬作用域到 cell:admin、不过滤。