chore(prompts): 调整沙箱权限提示、ask_user 适用边界与 git 提交授权语义

This commit is contained in:
JOJO 2026-07-23 19:41:16 +08:00
parent f25523e441
commit c6151e86fe
3 changed files with 5 additions and 4 deletions

View File

@ -259,7 +259,9 @@ AI 执行以下流程时,每一步都要向用户说明在做什么:
**重要约束** **重要约束**
- 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` - 不需要每次都执行或输出 diff如用户要求 Review再在同一对话内使用 `git diff``git diff HEAD~1..HEAD`
### 6.3 常用命令速查 ### 6.3 常用命令速查

View File

@ -179,8 +179,7 @@ class ModeMixin:
if mode == "sandbox": if mode == "sandbox":
rules = ( rules = (
"- 所有命令默认在系统 OS 沙箱中执行\n" "- 所有命令默认在系统 OS 沙箱中执行\n"
"- 若操作受系统权限限制:先提供 1 个安全替代方案并执行;若仍无法满足目标,明确请求用户切换执行环境为“完全访问权限”后重试\n" "- 若遇到权限问题:这是用户刻意设置导致的结果,证明用户在当前状况下不允许你执行此命令。不要尝试绕过,你应立刻询问用户并解释原因,请求用户更换执行环境(如切换为“完全访问权限”)"
"- 不要通过复杂绕过手段反复尝试规避沙箱限制;若任务本质需要更高权限,应直接说明并等待用户确认"
) )
net = getattr(self, "host_network_permission", "restricted") net = getattr(self, "host_network_permission", "restricted")
if net == "restricted": if net == "restricted":

View File

@ -164,7 +164,7 @@ class ToolsDefinitionCoreToolsMixin:
"type": "function", "type": "function",
"function": { "function": {
"name": "ask_user", "name": "ask_user",
"description": "向用户提问并阻塞等待回答。当开发/执行任务中遇到会影响实现方向、产品行为、数据安全或用户偏好的关键不确定性时使用。优先把问题设计成可选择题:默认应提供 2-4 个清晰选项,并把推荐项放第一位;只有用户必须提供具体文本、路径、命名等无法合理枚举的开放问题时,才不要提供 options。前端会弹出问题窗口用户可以选择预设选项也始终可以直接打字补充或改写回答拿到回答后工具才返回模型才能继续下一步。调用 ask_user 时不要同时调用其他执行工具;如需多个相互独立的问题,可以在同一轮并行调用多个 ask_user。", "description": "向用户提问并阻塞等待回答。适用于工作中途需要向用户确认、询问的情况:当开发/执行任务中遇到会影响实现方向、产品行为、数据安全或用户偏好的关键不确定性时使用。不适用于要开启下一阶段工作前的询问——此时应直接输出内容告知用户,而不是调用本工具。优先把问题设计成可选择题:默认应提供 2-4 个清晰选项,并把推荐项放第一位;只有用户必须提供具体文本、路径、命名等无法合理枚举的开放问题时,才不要提供 options。前端会弹出问题窗口用户可以选择预设选项也始终可以直接打字补充或改写回答拿到回答后工具才返回模型才能继续下一步。调用 ask_user 时不要同时调用其他执行工具;如需多个相互独立的问题,可以在同一轮并行调用多个 ask_user。",
"parameters": { "parameters": {
"type": "object", "type": "object",
"properties": self._inject_intent({ "properties": self._inject_intent({