feat: enhance shell command execution description for cross-platform compatibility

fixes: #5499
This commit is contained in:
Soulter
2026-03-01 15:35:40 +08:00
parent fd223bb259
commit d561046ba3
2 changed files with 18 additions and 1 deletions
+17
View File
@@ -5,6 +5,7 @@ import copy
import datetime
import json
import os
import platform
import zoneinfo
from collections.abc import Coroutine
from dataclasses import dataclass, field
@@ -265,6 +266,22 @@ def _apply_local_env_tools(req: ProviderRequest) -> None:
req.func_tool = ToolSet()
req.func_tool.add_tool(LOCAL_EXECUTE_SHELL_TOOL)
req.func_tool.add_tool(LOCAL_PYTHON_TOOL)
req.system_prompt = f"{req.system_prompt or ''}\n{_build_local_mode_prompt()}\n"
def _build_local_mode_prompt() -> str:
system_name = platform.system() or "Unknown"
shell_hint = (
"The runtime shell is Windows Command Prompt (cmd.exe). "
"Use cmd-compatible commands and do not assume Unix commands like cat/ls/grep are available."
if system_name.lower() == "windows"
else "The runtime shell is Unix-like. Use POSIX-compatible shell commands."
)
return (
"You have access to the host local environment and can execute shell commands and Python code. "
f"Current operating system: {system_name}. "
f"{shell_hint}"
)
async def _ensure_persona_and_skills(
+1 -1
View File
@@ -20,7 +20,7 @@ class ExecuteShellTool(FunctionTool):
"properties": {
"command": {
"type": "string",
"description": "The bash command to execute. Equal to 'cd {working_dir} && {your_command}'.",
"description": "The shell command to execute in the current runtime shell (for example, cmd.exe on Windows). Equal to 'cd {working_dir} && {your_command}'.",
},
"background": {
"type": "boolean",