From 9891f68aca7bc05022468f6086f230de6b0ee07a Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Tue, 14 Apr 2026 14:12:11 +0800 Subject: [PATCH] fix: update run_command limits and planning guidance --- core/main_terminal_parts/tools_definition.py | 8 ++++---- core/main_terminal_parts/tools_execution.py | 4 ++-- prompts/main_system.txt | 4 ++-- prompts/main_system_qwenvl.txt | 4 ++-- prompts/todo_guidelines.txt | 1 + 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/core/main_terminal_parts/tools_definition.py b/core/main_terminal_parts/tools_definition.py index 35c07eb..92e9191 100644 --- a/core/main_terminal_parts/tools_definition.py +++ b/core/main_terminal_parts/tools_definition.py @@ -597,14 +597,14 @@ class MainTerminalToolsDefinitionMixin: "type": "function", "function": { "name": "run_command", - "description": "执行一次性终端命令,适合查看文件信息(file/ls/stat/iconv 等)、转换编码或调用 CLI 工具。禁止启动交互式程序;对已聚焦文件仅允许使用 grep -n 等定位命令。必须提供 timeout。前台模式(run_in_background=false,默认)上限30秒,超时会打断;后台模式(run_in_background=true)上限3600秒,会先等待5秒返回已有输出并继续在后台运行,完成后由系统通知。", + "description": "执行一次性终端命令,适合查看文件信息(file/ls/stat/iconv 等)、转换编码或调用 CLI 工具。禁止启动交互式程序。必须提供 timeout。前台模式(run_in_background=false,默认)上限60秒,超时会打断;后台模式(run_in_background=true)上限3600秒,会先等待5秒返回已有输出并继续在后台运行,完成后由系统通知。", "parameters": { "type": "object", "properties": self._inject_intent({ "command": {"type": "string", "description": "终端命令"}, "timeout": { "type": "number", - "description": "超时时长(秒),必填。前台最大30;后台最大3600。" + "description": "超时时长(秒),必填。前台最大60;后台最大3600。" }, "run_in_background": { "type": "boolean", @@ -635,7 +635,7 @@ class MainTerminalToolsDefinitionMixin: "type": "function", "function": { "name": "todo_create", - "description": "创建待办列表,最多 8 条任务;若已有列表将被覆盖。", + "description": "创建待办列表,最多 8 条任务;若已有列表将被覆盖。当用户提出稍微复杂的要求、预计需要超过 3 个步骤时,应积极创建待办事项。", "parameters": { "type": "object", "properties": self._inject_intent({ @@ -698,7 +698,7 @@ class MainTerminalToolsDefinitionMixin: "type": "function", "function": { "name": "create_sub_agent", - "description": "创建一个子智能体来处理独立任务。子智能体拥有完整的工具能力(读写文件、执行命令、搜索网页等),与主智能体共享工作区。\n\n适用场景:\n1. 可以独立完成的任务(生成文档、代码分析、测试执行)\n2. 需要大量工具调用的任务(批量文件处理、数据收集)\n3. 可以并行处理的子任务(多模块开发、多方面分析)\n\n何时使用后台运行:\n- 任务耗时较长(预计超过5分钟)\n- 你可以继续处理其他工作,不需要立即使用结果\n- 多个独立任务可以并行执行\n\n何时使用阻塞运行(默认):\n- 任务较快(几分钟内完成)\n- 后续工作依赖子智能体的结果\n- 需要立即查看和使用输出\n\n重要限制:\n- 最多同时运行 5 个子智能体\n- 禁止多个子智能体操作相同的文件或目录(会导致冲突)\n- 禁止子智能体间的工作有重叠(如同时修改同一模块、同时测试同一功能)\n- 每个子智能体应该有明确独立的职责范围", + "description": "创建一个子智能体来处理独立任务。子智能体拥有完整的工具能力(读写文件、执行命令、搜索网页等),与主智能体共享工作区。\n\n适用场景:\n1. 可以独立完成的任务(生成文档、代码分析、测试执行)\n2. 需要大量工具调用的任务(批量文件处理、数据收集)\n3. 可以并行处理的子任务(多模块开发、多方面分析)\n4. 刚开始修改一个项目、需要先找到某个功能模块的修改位置时,可优先创建子智能体快速了解代码定位与相关上下文\n\n何时使用后台运行:\n- 任务耗时较长(预计超过5分钟)\n- 你可以继续处理其他工作,不需要立即使用结果\n- 多个独立任务可以并行执行\n\n何时使用阻塞运行(默认):\n- 任务较快(几分钟内完成)\n- 后续工作依赖子智能体的结果\n- 需要立即查看和使用输出\n\n重要限制:\n- 最多同时运行 5 个子智能体\n- 禁止多个子智能体操作相同的文件或目录(会导致冲突)\n- 禁止子智能体间的工作有重叠(如同时修改同一模块、同时测试同一功能)\n- 每个子智能体应该有明确独立的职责范围", "parameters": { "type": "object", "properties": self._inject_intent({ diff --git a/core/main_terminal_parts/tools_execution.py b/core/main_terminal_parts/tools_execution.py index 6a53280..441aea3 100644 --- a/core/main_terminal_parts/tools_execution.py +++ b/core/main_terminal_parts/tools_execution.py @@ -1177,10 +1177,10 @@ class MainTerminalToolsExecutionMixin: "success": False, "error": "timeout 参数必填且需大于0" } - elif float(timeout_value) > 30: + elif float(timeout_value) > 60: result = { "success": False, - "error": "前台模式下 timeout 最大为 30 秒" + "error": "前台模式下 timeout 最大为 60 秒" } else: result = await self.terminal_ops.run_command( diff --git a/prompts/main_system.txt b/prompts/main_system.txt index 1eedb4c..0551444 100644 --- a/prompts/main_system.txt +++ b/prompts/main_system.txt @@ -93,8 +93,8 @@ ## 5. 操作技巧 -- **待办事项**:任务≥2步时使用 `todo_create`,概述≤50字,任务2-6条,完成立即更新 -- **子智能体**:独立子任务并行处理,最多5个同时运行,`wait_sub_agent` 超时需≥创建时设置 +- **待办事项**:任务≥2步时使用 `todo_create`;当用户提出稍微复杂的要求、预计超过3个步骤时,应积极创建待办事项,概述≤50字,任务2-6条,完成立即更新 +- **子智能体**:独立子任务并行处理,最多5个同时运行,`wait_sub_agent` 超时需≥创建时设置;刚开始修改一个项目、需要先找到某个功能模块的修改位置时,优先考虑创建子智能体快速了解 - **记忆管理**:`update_memory` 支持追加/替换/删除,main 为长期记忆,task 为当前对话记忆 --- diff --git a/prompts/main_system_qwenvl.txt b/prompts/main_system_qwenvl.txt index ec43859..2f30cbe 100644 --- a/prompts/main_system_qwenvl.txt +++ b/prompts/main_system_qwenvl.txt @@ -111,8 +111,8 @@ ## 5. 操作技巧 -- **待办事项**:任务≥2步时使用 `todo_create`,概述≤50字,任务2-6条,完成立即更新 -- **子智能体**:独立子任务并行处理,最多5个同时运行,`wait_sub_agent` 超时需≥创建时设置 +- **待办事项**:任务≥2步时使用 `todo_create`;当用户提出稍微复杂的要求、预计超过3个步骤时,应积极创建待办事项,概述≤50字,任务2-6条,完成立即更新 +- **子智能体**:独立子任务并行处理,最多5个同时运行,`wait_sub_agent` 超时需≥创建时设置;刚开始修改一个项目、需要先找到某个功能模块的修改位置时,优先考虑创建子智能体快速了解 - **记忆管理**:`update_memory` 支持追加/替换/删除,main 为长期记忆,task 为当前对话记忆 --- diff --git a/prompts/todo_guidelines.txt b/prompts/todo_guidelines.txt index f487caa..1c64d05 100644 --- a/prompts/todo_guidelines.txt +++ b/prompts/todo_guidelines.txt @@ -6,6 +6,7 @@ 以下情况建议创建待办清单: - ✅ 任务需要2步以上 +- ✅ 用户提出稍微复杂的要求,预计会超过3个步骤时应积极创建 - ✅ 要操作多个文件 - ✅ 需要用多个工具配合 - ✅ 不确定具体怎么做,需要先规划