优化: 波8待办销账(F-15阶段3+AE-04)+CR-51登记+B-260617-01入待决策
This commit is contained in:
16
docs/待决策.md
16
docs/待决策.md
@@ -25,6 +25,22 @@
|
||||
|
||||
## 当前队列
|
||||
|
||||
### ③类 — 产品取舍(有 a/b/c 决策点,核心待拍板)
|
||||
|
||||
#### B-260617-01 run_workflow 作为 AI 工具无法执行 + 无意义重试 + 审批混淆
|
||||
- **背景**:2026-06-17 实测发现,AI 对话中调用 `run_workflow(task_id, target_status)` 推进任务状态,审批通过后 handler 返回 Err 提示字符串(`tool_registry.rs:530-546`),`ai_approve`(`commands.rs:329-334`)将其包成 `"failed"` tool_result 回传 LLM → LLM 认为失败 → 重试(1/4) → 又进审批 → 循环。三个关联问题:
|
||||
- **问题 1**:run_workflow handler 仅持有 `db: Arc<Database>`,无法访问 `AppHandle/State`(registry/event_bus/workflows Repo),返回 Err 提示前端走 IPC。但 `ai_approve` 审批通过后直接 `ai_tools.execute()` 调 handler → 必然 Err。
|
||||
- **问题 2**:handler Err → tool_result = 错误提示 → LLM 重试 → 同结果循环(工具定义未标 `no_retry`)。
|
||||
- **问题 3**:前端渲染的是 AI 工具审批(tool_call pending),非工作流 HumanNode 审批。用户批准后工作流引擎从未启动。
|
||||
- **决策点**:run_workflow 审批通过后如何真正执行工作流?
|
||||
- **选项**:
|
||||
- a: **前端拦截**(`ai_approve` 中识别 `run_workflow` → 不走 `ai_tools.execute` → 直接 `invoke('run_workflow', {task_id, target_status})` → 结果回填 tool_result)
|
||||
- b: **后端注入 State**(`build_ai_tool_registry` 传入 `AppHandle` 使 handler 可直接执行,改 state.rs + tool_registry 签名)
|
||||
- c: **从 AI 工具移除 run_workflow**(仅保留 advance_task 推进状态,工作流由用户手动在前端触发)
|
||||
- **推荐**:**a 前端拦截**(改动最小,`ai_approve` 一处分支即可;方案 b 需改 tool_registry 签名链路较长;方案 c 退回手动不符合 AI 驱动目标)。问题 2/3 随 a 自动消解。
|
||||
- **关联**:todo B-260617-01 / tool_registry.rs:530-546 / commands.rs:329-334 / audit.rs:590-630
|
||||
- **状态**:🟡 待决
|
||||
|
||||
### ⏸️ 暂缓(待条件触发)
|
||||
|
||||
#### T-260614-11 条件表达式引擎升级
|
||||
|
||||
Reference in New Issue
Block a user