From c6151e86fe49d8e052e87c9d49a7510d6796dca7 Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Thu, 23 Jul 2026 19:41:16 +0800 Subject: [PATCH] =?UTF-8?q?chore(prompts):=20=E8=B0=83=E6=95=B4=E6=B2=99?= =?UTF-8?q?=E7=AE=B1=E6=9D=83=E9=99=90=E6=8F=90=E7=A4=BA=E3=80=81ask=5Fuse?= =?UTF-8?q?r=20=E9=80=82=E7=94=A8=E8=BE=B9=E7=95=8C=E4=B8=8E=20git=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=8E=88=E6=9D=83=E8=AF=AD=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 4 +++- core/main_terminal_parts/context/mode.py | 3 +-- core/main_terminal_parts/tools_definition/core_tools.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 4fe3d7ed..dc4b0c4e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -259,7 +259,9 @@ AI 执行以下流程时,每一步都要向用户说明在做什么: **重要约束**: - AI 必须在本地验证修改能正常运行,再建议用户提交。 - 修改完成后按改动规模汇报:大修改说明核心变更点与验证结果;小修改只说明核心变更点。 -- 禁止 AI 在未经用户确认的情况下执行 `git push`。 +- 禁止 AI 在未经用户确认的情况下执行 `git commit` 或 `git push`。 +- commit / push 授权均为一次性:用户说“可以 commit/push”只代表允许这一次操作;后续如需继续 commit / push,必须由用户再次主动同意。 +- 允许 commit 不等于允许 push:两者授权相互独立,获得 commit 许可后仍需单独征得 push 许可。 - 不需要每次都执行或输出 diff;如用户要求 Review,再在同一对话内使用 `git diff` 或 `git diff HEAD~1..HEAD`。 ### 6.3 常用命令速查 diff --git a/core/main_terminal_parts/context/mode.py b/core/main_terminal_parts/context/mode.py index bf21bdd5..991d4348 100644 --- a/core/main_terminal_parts/context/mode.py +++ b/core/main_terminal_parts/context/mode.py @@ -179,8 +179,7 @@ class ModeMixin: if mode == "sandbox": rules = ( "- 所有命令默认在系统 OS 沙箱中执行\n" - "- 若操作受系统权限限制:先提供 1 个安全替代方案并执行;若仍无法满足目标,明确请求用户切换执行环境为“完全访问权限”后重试\n" - "- 不要通过复杂绕过手段反复尝试规避沙箱限制;若任务本质需要更高权限,应直接说明并等待用户确认" + "- 若遇到权限问题:这是用户刻意设置导致的结果,证明用户在当前状况下不允许你执行此命令。不要尝试绕过,你应立刻询问用户并解释原因,请求用户更换执行环境(如切换为“完全访问权限”)" ) net = getattr(self, "host_network_permission", "restricted") if net == "restricted": diff --git a/core/main_terminal_parts/tools_definition/core_tools.py b/core/main_terminal_parts/tools_definition/core_tools.py index ae7a34cf..d24f055c 100644 --- a/core/main_terminal_parts/tools_definition/core_tools.py +++ b/core/main_terminal_parts/tools_definition/core_tools.py @@ -164,7 +164,7 @@ class ToolsDefinitionCoreToolsMixin: "type": "function", "function": { "name": "ask_user", - "description": "向用户提问并阻塞等待回答。当开发/执行任务中遇到会影响实现方向、产品行为、数据安全或用户偏好的关键不确定性时使用。优先把问题设计成可选择题:默认应提供 2-4 个清晰选项,并把推荐项放第一位;只有用户必须提供具体文本、路径、命名等无法合理枚举的开放问题时,才不要提供 options。前端会弹出问题窗口,用户可以选择预设选项,也始终可以直接打字补充或改写回答;拿到回答后工具才返回,模型才能继续下一步。调用 ask_user 时不要同时调用其他执行工具;如需多个相互独立的问题,可以在同一轮并行调用多个 ask_user。", + "description": "向用户提问并阻塞等待回答。适用于工作中途需要向用户确认、询问的情况:当开发/执行任务中遇到会影响实现方向、产品行为、数据安全或用户偏好的关键不确定性时使用。不适用于要开启下一阶段工作前的询问——此时应直接输出内容告知用户,而不是调用本工具。优先把问题设计成可选择题:默认应提供 2-4 个清晰选项,并把推荐项放第一位;只有用户必须提供具体文本、路径、命名等无法合理枚举的开放问题时,才不要提供 options。前端会弹出问题窗口,用户可以选择预设选项,也始终可以直接打字补充或改写回答;拿到回答后工具才返回,模型才能继续下一步。调用 ask_user 时不要同时调用其他执行工具;如需多个相互独立的问题,可以在同一轮并行调用多个 ask_user。", "parameters": { "type": "object", "properties": self._inject_intent({