fix(agnet): structured deliverable judgment, secret_ref validation, single default model
代码评审(2026-06-01 全链路报告)中 Manager 侧自主可修项: - P2 交付物判定: runtimeArtifactsAreSummaryOnly 改为优先读结构化字段 (artifact_type + files_modified 信号),修复 Runtime 新 uri scheme 与 artifact_type=document 被旧 /artifacts/summary 字符串启发式漏判的回归。 - P6a: Resource CRUD(normalizeResourcePayload)强制 secret_ref 必须 azkv://, 与 agnet 部署/审批路径一致,堵住直写任意 secret_ref 的旁路。 - P6b: 明文密钥检测从仅按字段名升级为同时扫字符串值(sk-/ghp_/AKIA/JWT/PEM 等高置信模式),containsPlaintextSecret 与 containsSensitiveGrantField 均覆盖。 - P5 默认模型收敛: 新增单一来源 defaultAgnetModelID()(env AGNET_DEFAULT_MODEL_ID, 默认生产已验证的 gpt-5.4);移除 draft 构造器两处 agnet-model-<role> 占位回退 (生产 NewAPI "No available channel" 根因)与角色模板硬编码 claude-* 默认。 - P3 文档: 对接文档状态枚举补 completed 终态、runtime_state 镜像说明与未知值兜底; role-templates 示例占位名改为 gpt-5.4。 新增 controller/agnet_deliverable_secret_test.go 覆盖以上行为。 go build ./... 与 go test ./controller/ 全绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1373,7 +1373,7 @@ summary-only 示例片段:
|
||||
"key": "backend",
|
||||
"display_name": "Backend Agnet",
|
||||
"summary": "实现后端接口、数据模型和服务逻辑",
|
||||
"default_model": "agnet-model-backend",
|
||||
"default_model": "gpt-5.4",
|
||||
"default_permissions": ["repo:read", "repo:write"],
|
||||
"risk_level": "medium"
|
||||
}
|
||||
@@ -1382,6 +1382,8 @@ summary-only 示例片段:
|
||||
}
|
||||
```
|
||||
|
||||
> `default_model` 由 Manager 单一来源 `defaultAgnetModelID()` 提供(环境变量 `AGNET_DEFAULT_MODEL_ID`,默认生产已验证的 `gpt-5.4`)。Manager 不再回退 `agnet-model-<role>` 占位名;客户端如不指定 `default_model_id`,draft/runtime agent 会自动采用该单一默认值。
|
||||
|
||||
## 12. 状态枚举
|
||||
|
||||
### HeicodeTask.status
|
||||
@@ -1402,9 +1404,12 @@ summary-only 示例片段:
|
||||
|---|---|
|
||||
| `accepted` | Manager 已接受并落本地记录 |
|
||||
| `running` | Runtime 已开始执行 |
|
||||
| `completed` | Runtime 回调 `deployment.status_changed: completed` 后的成功终态(**真实终态,客户端状态机必须覆盖**;注意需结合 §15.1 成功四要素判断是否为有效交付,`completed` 本身不代表有业务产物) |
|
||||
| `stopped` | 已停止 |
|
||||
| `failed` | 失败 |
|
||||
|
||||
> 注意:`status` 由 Manager 接收 Runtime `deployment.status_changed` 后镜像写入。除上述规范值外,Runtime 若回传其他自定义状态字符串,Manager 会透传保存,客户端应对未知值做兜底(按非终态处理或显示原值)。
|
||||
|
||||
### Agnet Deployment.runtime_state
|
||||
|
||||
| 状态 | 说明 |
|
||||
@@ -1414,6 +1419,7 @@ summary-only 示例片段:
|
||||
| `runtime_accepted` | Runtime 接受 |
|
||||
| `runtime_sync_failed` | Runtime 同步失败 |
|
||||
| `not_configured` | 生产 Runtime 未配置 |
|
||||
| `running` / `completed` / `failed` / `stopped` | Runtime 回调后 `runtime_state` 会镜像 Runtime 上报的状态值;`phase.changed` 还会把 `checkpoint` 写入此字段。客户端不要假设其取值封闭,应做兜底 |
|
||||
|
||||
### 普通 sub 子环节建议值
|
||||
|
||||
|
||||
Reference in New Issue
Block a user