dataagent/actions/tools/local_tool/tools.py:1234 的 nl2sql_sub_agent_tool 用 shutil.copytree 把 prompts/user/ 复制到 workspace 根目录:
dataagent/actions/tools/local_tool/tools.py:1234
nl2sql_sub_agent_tool
shutil.copytree
prompts/user/
shutil.copytree(user_prompt_path, workspace, dirs_exist_ok=True)
dirs_exist_ok=True 让 copytree 覆盖 workspace 下已有的同名文件。如果用户 workspace 已有自定义 sql_rules_bird.md / prompt_user.md 等 prompt 文件,会被仓库内的默认版本覆盖。
dirs_exist_ok=True
sql_rules_bird.md
prompt_user.md
任选其一:
workspace/.nl2sql_prompts/
if not (workspace / "sql_rules_bird.md").exists(): shutil.copy2(...)
shutil.copy2
major(用户数据静默丢失)
0623
c5c899a4196717d1eb5944a9736f766310655ef7
现象
dataagent/actions/tools/local_tool/tools.py:1234的nl2sql_sub_agent_tool用shutil.copytree把prompts/user/复制到 workspace 根目录:shutil.copytree(user_prompt_path, workspace, dirs_exist_ok=True)dirs_exist_ok=True让 copytree 覆盖 workspace 下已有的同名文件。如果用户 workspace 已有自定义sql_rules_bird.md/prompt_user.md等 prompt 文件,会被仓库内的默认版本覆盖。影响
修复方案
任选其一:
workspace/.nl2sql_prompts/子目录(隔离默认 prompt 与用户自定义)if not (workspace / "sql_rules_bird.md").exists(): shutil.copy2(...)shutil.copy2逐文件复制,跳过已存在的文件涉及文件
dataagent/actions/tools/local_tool/tools.py:1234验证
sql_rules_bird.md,调nl2sql_sub_agent_tool,断言自定义文件未被覆盖。严重性
major(用户数据静默丢失)
环境
0623c5c899a4196717d1eb5944a9736f766310655ef7