AetherNo2332
4e2df72eeb
fix(cloud-agent): 工具失败归类与可行动字段
工具失败此前只有一句自然语言(tool_failed + text),无法区分"模型自己出的错"和真实的
权限/状态/上游问题:模型拿不到可自纠的反馈,排查时分不清该改提示词、改权限还是等上游。
- 新增 backend/internal/app/cloud_agent_tool_error_class.go:把失败归成
invalid_model_output(幻觉工具名;本轮契约之外、只被 contextScope 挡掉的调用)、
schema_error(缺必填字段/类型错/未知字段/非法 JSON)、state_conflict(画布在读取之后被改动)、
permission_violation(只读轮发起写入等真实授权边界)、upstream_failure(上游 4xx/5xx、
超时、媒体上游拒绝),其余归 tool_error。
- 每类附 retryable 与稳定的 requiredAction(fix_arguments / reread_canvas /
use_advertised_tools / ask_user / report_to_user),写进 tool_failed 的回执与载荷顶层。
只加标注:没有任何放行或拒绝逻辑读它。
- 缺必填字段的通用判定:各工具的校验点抛的多是普通 AppError,从错误类型看不出"模型漏了字段"。
现在用本轮实际暴露的 schema 的 required 与参数比对,命中即按参数契约错误处理(回传 schema 与
guidance 供模型自纠);只在业务侧确实按参数问题拒绝(400/422)时套用,已分类的参数错误不套壳。
- 幻觉工具名的拒绝文案更具体:过去一律"工具未获本轮权限授权",现在指向"不存在的工具 + 只使用
本轮工具表里列出的工具"。
- 前端工具卡失败时显示归类标签,比统一的"执行失败"更能说明下一步该做什么。
2026-09-22 00:53:32 +08:00
..
2026-09-14 01:11:56 +08:00
2026-09-21 21:13:29 +08:00
2026-09-20 09:34:46 +08:00
2026-08-22 17:42:04 +08:00
2026-09-20 01:40:40 +08:00
2026-09-19 21:04:03 +08:00
2026-09-14 17:58:21 +08:00
2026-09-14 17:58:21 +08:00
2026-09-17 18:40:42 +08:00
2026-09-18 15:26:26 +08:00
2026-09-17 18:40:42 +08:00
2026-09-21 09:30:38 +08:00
2026-09-14 01:11:56 +08:00
2026-09-17 20:21:25 +08:00
2026-09-21 14:11:29 +08:00
2026-09-16 22:59:38 +08:00
2026-09-16 23:45:53 +08:00
2026-09-14 17:58:21 +08:00
2026-09-21 14:11:29 +08:00
2026-09-14 01:11:56 +08:00
2026-09-22 00:53:32 +08:00
2026-09-21 09:30:38 +08:00
2026-09-09 22:02:10 +08:00
2026-09-02 20:32:58 +08:00
2026-09-04 14:03:33 +08:00
2026-09-20 05:18:16 +08:00
2026-09-05 16:39:45 +08:00
2026-09-14 01:11:56 +08:00
2026-09-21 09:37:20 +08:00
2026-09-18 23:28:57 +08:00
2026-09-20 09:35:07 +08:00
2026-09-20 09:35:07 +08:00
2026-09-09 13:01:47 +08:00
2026-09-09 13:01:47 +08:00
2026-09-21 20:14:05 +08:00
2026-08-31 13:16:10 +08:00
2026-09-16 22:59:45 +08:00
2026-09-04 14:03:33 +08:00
2026-09-17 20:21:25 +08:00
2026-09-01 14:57:05 +08:00
2026-09-09 22:02:10 +08:00
2026-09-16 22:59:45 +08:00
2026-09-21 20:14:05 +08:00
2026-09-17 23:17:09 +08:00
2026-09-17 23:17:09 +08:00
2026-09-17 23:17:09 +08:00
2026-09-09 22:55:19 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 17:19:56 +08:00
2026-09-20 05:37:38 +08:00
2026-09-09 10:34:10 +08:00
2026-09-16 18:29:48 +08:00
2026-08-31 09:00:37 +08:00
2026-09-18 14:09:50 +08:00
2026-09-07 14:03:50 +08:00
2026-09-20 17:18:46 +08:00
2026-09-20 17:18:46 +08:00
2026-09-20 17:18:46 +08:00
2026-09-01 17:32:38 +08:00
2026-08-31 06:49:43 +08:00
2026-09-20 16:40:08 +08:00
2026-09-08 17:26:34 +08:00
2026-09-19 22:29:41 +08:00
2026-09-14 01:11:56 +08:00
2026-08-31 09:00:37 +08:00
2026-07-23 10:34:59 +08:00
2026-08-06 16:36:51 +08:00
2026-09-21 21:13:29 +08:00
2026-08-15 15:48:16 +08:00
2026-08-22 12:29:24 +08:00
2026-09-19 20:28:16 +08:00
2026-09-01 14:57:05 +08:00
2026-09-21 21:13:29 +08:00
2026-09-01 16:47:03 +08:00
2026-09-21 21:13:29 +08:00
2026-09-15 09:19:54 +08:00
2026-09-06 07:42:02 +08:00
2026-09-21 21:13:29 +08:00
2026-09-14 00:11:26 +08:00
2026-09-16 20:54:14 +08:00
2026-09-08 17:26:34 +08:00
2026-08-28 16:24:58 +08:00
2026-09-08 23:53:22 +08:00
2026-07-31 13:12:06 +08:00
2026-08-29 10:28:23 +08:00
2026-09-05 13:24:10 +08:00
2026-09-19 20:32:05 +08:00
2026-08-19 20:52:11 +08:00
2026-09-01 14:57:05 +08:00
2026-09-16 20:54:14 +08:00
2026-09-21 21:13:29 +08:00
2026-08-31 12:28:12 +08:00
2026-09-01 14:57:05 +08:00
2026-08-31 09:00:37 +08:00
2026-09-14 01:11:56 +08:00
2026-09-05 13:24:10 +08:00
2026-09-18 13:19:57 +08:00
2026-09-19 08:43:19 +08:00
2026-09-20 16:40:08 +08:00
2026-09-11 21:43:28 +08:00
2026-09-14 17:19:56 +08:00
2026-09-05 13:24:10 +08:00
2026-09-14 01:11:56 +08:00
2026-09-01 14:57:05 +08:00
2026-08-31 06:49:43 +08:00
2026-08-27 22:12:04 +08:00
2026-08-26 22:38:07 +08:00
2026-09-14 01:11:56 +08:00
2026-08-15 15:48:16 +08:00
2026-09-15 17:28:28 +08:00
2026-09-14 01:11:56 +08:00
2026-09-19 22:29:41 +08:00
2026-09-07 22:39:07 +08:00
2026-09-16 22:59:34 +08:00
2026-09-21 20:14:05 +08:00
2026-09-19 22:29:41 +08:00
2026-08-29 08:48:38 +08:00
2026-09-08 17:26:34 +08:00
2026-08-10 00:13:02 +08:00
2026-08-14 20:45:26 +08:00
2026-08-10 00:13:02 +08:00
2026-09-01 23:54:41 +08:00
2026-09-14 01:11:56 +08:00
2026-09-20 16:40:08 +08:00
2026-09-09 22:02:10 +08:00
2026-09-20 11:18:19 +08:00
2026-09-21 11:11:10 +08:00
2026-09-19 20:28:46 +08:00
2026-09-20 11:18:19 +08:00
2026-09-20 11:18:19 +08:00
2026-09-08 20:56:42 +08:00
2026-09-08 17:26:34 +08:00
2026-09-20 09:34:46 +08:00
2026-09-20 09:35:23 +08:00
2026-08-03 15:06:09 +08:00
2026-09-14 01:11:56 +08:00
2026-09-21 09:37:19 +08:00
2026-09-14 01:11:56 +08:00
2026-09-01 17:52:21 +08:00
2026-09-21 09:37:19 +08:00
2026-08-27 22:12:04 +08:00
2026-09-21 09:48:43 +08:00
2026-09-16 22:59:50 +08:00
2026-08-27 22:12:04 +08:00
2026-09-18 23:13:32 +08:00
2026-09-09 13:00:42 +08:00
2026-09-15 13:38:31 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 01:11:56 +08:00
2026-09-20 05:29:52 +08:00
2026-08-27 10:32:45 +08:00
2026-09-08 16:58:41 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-09-04 14:03:33 +08:00
2026-09-04 14:03:33 +08:00
2026-09-16 20:54:14 +08:00
2026-09-04 14:03:33 +08:00
2026-09-21 09:48:43 +08:00
2026-08-18 21:42:22 +08:00
2026-08-15 12:45:29 +08:00
2026-09-21 21:13:29 +08:00
2026-09-17 17:44:44 +08:00
2026-09-14 01:11:56 +08:00
2026-08-15 15:48:16 +08:00
2026-09-09 22:02:10 +08:00
2026-08-22 09:52:09 +08:00
2026-09-16 20:22:54 +08:00
2026-09-11 14:02:49 +08:00
2026-08-31 09:00:37 +08:00
2026-09-20 17:18:46 +08:00
2026-09-21 14:11:29 +08:00
2026-09-21 14:11:29 +08:00
2026-09-11 14:02:49 +08:00
2026-09-15 20:56:19 +08:00
2026-09-20 17:18:46 +08:00
2026-08-28 09:07:33 +08:00
2026-09-21 11:11:10 +08:00
2026-09-21 11:11:10 +08:00
2026-09-21 11:11:10 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-14 19:47:03 +08:00
2026-08-31 15:06:34 +08:00
2026-09-14 01:11:56 +08:00
2026-09-09 22:02:10 +08:00
2026-09-18 09:31:40 +08:00
2026-09-07 22:39:07 +08:00
2026-09-04 14:03:33 +08:00
2026-09-09 22:02:10 +08:00
2026-09-20 05:18:16 +08:00
2026-08-29 23:34:55 +08:00
2026-08-31 12:28:12 +08:00
2026-08-31 15:59:34 +08:00
2026-08-29 23:34:55 +08:00
2026-08-29 23:34:55 +08:00
2026-08-25 14:33:34 +08:00
2026-09-09 22:02:10 +08:00
2026-09-08 17:26:34 +08:00
2026-09-19 20:28:16 +08:00
2026-09-16 22:59:45 +08:00
2026-08-31 13:16:10 +08:00
2026-09-19 21:04:03 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 01:11:56 +08:00
2026-09-18 23:28:57 +08:00
2026-09-14 01:11:56 +08:00
2026-08-19 11:58:06 +08:00
2026-09-19 21:04:03 +08:00
2026-08-27 22:39:30 +08:00
2026-09-09 22:02:10 +08:00
2026-09-04 14:03:33 +08:00
2026-08-14 20:44:50 +08:00
2026-09-04 14:03:33 +08:00
2026-09-09 22:02:10 +08:00
2026-09-21 09:55:26 +08:00
2026-09-09 22:02:10 +08:00
2026-09-09 22:02:10 +08:00
2026-08-30 16:52:09 +08:00
2026-08-29 11:05:59 +08:00
2026-09-17 20:21:25 +08:00
2026-09-10 09:11:16 +08:00
2026-08-30 19:03:10 +08:00
2026-09-09 22:02:10 +08:00
2026-09-09 22:02:10 +08:00
2026-08-30 19:03:10 +08:00
2026-09-18 10:30:08 +08:00
2026-09-20 05:29:52 +08:00
2026-09-17 23:32:19 +08:00
2026-09-17 23:32:34 +08:00
2026-08-29 13:19:01 +08:00
2026-09-18 10:30:08 +08:00