From c3bc9d5d074c1df43860dbf503d3d16342d34a28 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Sun, 17 May 2026 13:41:23 +0800 Subject: [PATCH] fix(ai): broaden agent execution intent --- src/lib/aiSqlExecutionPolicy.ts | 4 ++-- tests/aiSqlExecutionPolicy.test.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib/aiSqlExecutionPolicy.ts b/src/lib/aiSqlExecutionPolicy.ts index 1f11a0575..22d176b1c 100644 --- a/src/lib/aiSqlExecutionPolicy.ts +++ b/src/lib/aiSqlExecutionPolicy.ts @@ -24,9 +24,9 @@ const NON_PRODUCTION_RE = /\b(local|localhost|dev|develop|development|test|testing|stage|staging|sandbox|demo)\b|本地|开发|测试|预发/i; const LOCAL_HOST_RE = /^(localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|::1)$/i; const NEGATIVE_EXECUTION_RE = - /(不要|别|不用|禁止|只生成|仅生成|只写|仅写).{0,12}(执行|运行)|do\s+not\s+execute|don't\s+execute|dont\s+execute|without\s+executing|only\s+(generate|write|return)/i; + /(不要|别|不用|禁止|只生成|仅生成|只写|仅写).{0,12}(执行|运行|跑)|do\s+not\s+execute|don't\s+execute|dont\s+execute|without\s+executing|only\s+(generate|write|return)/i; const ACTION_INTENT_RE = - /(查一下|查询|查看|看一下|统计|列出|执行|运行|跑一下|show|list|query|find|count|get|fetch|execute|run)/i; + /(帮我查|帮忙查|请查|查一下|查询|查看|看一下|看下|统计|计算|算|求|平均|最大|最小|总数|数量|列出|显示|获取|执行|运行|跑一下|show|list|query|find|count|get|fetch|execute|run)/i; export function stripAiSqlComments(sql: string): string { return sql diff --git a/tests/aiSqlExecutionPolicy.test.ts b/tests/aiSqlExecutionPolicy.test.ts index 4d30c340b..3f6783693 100644 --- a/tests/aiSqlExecutionPolicy.test.ts +++ b/tests/aiSqlExecutionPolicy.test.ts @@ -61,7 +61,14 @@ test("comments and multi-statement writes do not bypass policy", () => { test("AI auto-execution only attempts action-oriented generate requests", () => { assert.equal(shouldAttemptAiAutoExecute("查一下用户数量", "generate"), true); + assert.equal(shouldAttemptAiAutoExecute("帮我查ihli的平均值", "generate"), true); + assert.equal(shouldAttemptAiAutoExecute("看下 ihli 平均是多少", "generate"), true); + assert.equal(shouldAttemptAiAutoExecute("求 ihli 的最大值", "generate"), true); + assert.equal(shouldAttemptAiAutoExecute("计算 ihli 总数", "generate"), true); + assert.equal(shouldAttemptAiAutoExecute("显示最近 10 条订单", "generate"), true); + assert.equal(shouldAttemptAiAutoExecute("获取用户数量", "generate"), true); assert.equal(shouldAttemptAiAutoExecute("show me recent orders", "generate"), true); assert.equal(shouldAttemptAiAutoExecute("只生成 SQL,不要执行", "generate"), false); + assert.equal(shouldAttemptAiAutoExecute("先别跑,帮我查一下用户数量", "generate"), false); assert.equal(shouldAttemptAiAutoExecute("优化这条 SQL", "optimize"), false); });