fix(agent): 画布写入 - 漏 patch 按参数错误回给模型而不是终止整轮 (#566)

Original-Commit: a7df2b57c72e479200b82d0af88446d43fa9f9dd
fix(agent): 画布写入 - 漏 patch 按参数错误回给模型而不是终止整轮

审批模式下模型用 canvas_apply_ops 做 update_node 时漏了 patch,准入预检直接返回普通
BadAuthRequest,运行期按"准入失败"处理 → 整轮 failed,用户只看得到一句"更新节点必须提供 patch",
模型没有改正机会。批量创作表、分镜、画布读取参数都已把同类错误包成 cloudAgentArgumentError
(运行期 errors.As 后作为工具结果回给模型重试),这里补齐。

未知画布写操作仍按准入失败终止(既有用例断言不变);新增用例同时钉住这两条。
This commit is contained in:
AetherNo2332
2026-09-21 07:30:57 +08:00
committed by ddCat
parent b5da3deee8
commit 4dd3b554a5
2 changed files with 27 additions and 1 deletions

View File

@@ -153,7 +153,10 @@ func applyCloudAgentCanvasPlan(doc map[string]any, ops []agentCanvasOp) ([]cloud
})
case "update_node":
if len(op.Patch) == 0 {
return nil, BadAuthRequest("更新节点必须提供 patch")
// 漏字段是模型照 schema 就能自己修好的参数错误:当成工具结果回给它重试,
// 而不是判整轮失败(用户只在失败提示里看到一句"必须提供 patch")。
// 未知操作类型仍按准入失败终止(cloud_agent_test.go 有用例断言这一行为)。
return nil, &cloudAgentArgumentError{BadAuthRequest("更新节点必须提供 patch")}
}
if index < 0 {
return nil, BadAuthRequest("只能更新现有且受 Agent 支持的节点")