From b766a5dbb16914d12b8806cb0376c388a5da9c04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Wed, 24 Jun 2026 21:30:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=89=A7=E8=A1=8C=E5=99=A8=E5=8F=AA?= =?UTF-8?q?=E8=AF=95=E4=B8=80=E6=AC=A1=EF=BC=8C=E5=A4=B1=E8=B4=A5=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5needs=5Fllm=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 去掉重试逻辑:每10分钟试1次,失败→立刻needs_llm - 无fix_action也走needs_llm(不搁置) - 执行器deliver=origin,needs_llm输出会到达Dad - 知微启动时/被叫时检查needs_llm→直接处理 --- scripts/self_todo_executor.py | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/scripts/self_todo_executor.py b/scripts/self_todo_executor.py index b00f768..841b5aa 100644 --- a/scripts/self_todo_executor.py +++ b/scripts/self_todo_executor.py @@ -60,19 +60,16 @@ def main(): todo_id = row["id"] title = row["title"] fix_action = row["fix_action"] - retry_count = row["retry_count"] - max_retries = row["max_retries"] if not fix_action: - # 没有fix_action就不应该创建这个TODO,跳过 conn.execute( - "UPDATE todos SET status='completed', note='无修复命令,跳过', " + "UPDATE todos SET status='needs_llm', note='无fix_action需人工分析', " "updated_at=CURRENT_TIMESTAMP WHERE id=?", (todo_id,)) - results.append(("⏭️", f"{title}: 无修复命令")) + results.append(("🔶", f"{title}: 需知微分析(无修复方案)")) conn.commit() continue - # 执行 + # 执行(只试一次,失败立即升级) conn.execute( "UPDATE todos SET status='in_progress', updated_at=CURRENT_TIMESTAMP WHERE id=?", (todo_id,)) @@ -86,20 +83,11 @@ def main(): (f"已修复: {output[:200]}", todo_id)) results.append(("✅", f"{title}: 已修复")) else: - retry_count += 1 - if retry_count >= max_retries: - # 重试用完,超出能力范围→标记需LLM处理 - conn.execute( - "UPDATE todos SET status='needs_llm', retry_count=?, " - "note=?, updated_at=CURRENT_TIMESTAMP WHERE id=?", - (retry_count, f"尝试{retry_count}次仍失败: {output[:150]}", todo_id)) - results.append(("🔶", f"{title}: 需知微介入(重试{retry_count}次失败)")) - else: - conn.execute( - "UPDATE todos SET status='pending', retry_count=?, " - "note=?, updated_at=CURRENT_TIMESTAMP WHERE id=?", - (retry_count, f"第{retry_count}次失败: {output[:100]}", todo_id)) - results.append(("🔄", f"{title}: 重试{retry_count}/{max_retries}")) + conn.execute( + "UPDATE todos SET status='needs_llm', note=?, " + "updated_at=CURRENT_TIMESTAMP WHERE id=?", + (f"执行失败: {output[:200]}", todo_id)) + results.append(("🔶", f"{title}: 需知微介入({output[:60]})")) conn.commit()