-
Notifications
You must be signed in to change notification settings - Fork 33.5k
🪟 Windows 11 环境适配:终端工具描述、路径支持与系统命令参考 #7835
Copy link
Copy link
Open
Labels
P2Medium — degraded but workaround existsMedium — degraded but workaround existscomp/cliCLI entry point, hermes_cli/, setup wizardCLI entry point, hermes_cli/, setup wizardtool/terminalTerminal execution and process managementTerminal execution and process managementtype/bugSomething isn't workingSomething isn't working
Metadata
Metadata
Assignees
Labels
P2Medium — degraded but workaround existsMedium — degraded but workaround existscomp/cliCLI entry point, hermes_cli/, setup wizardCLI entry point, hermes_cli/, setup wizardtool/terminalTerminal execution and process managementTerminal execution and process managementtype/bugSomething isn't workingSomething isn't working
Type
Fields
Give feedbackNo fields configured for issues without a type.
问题
Hermes Agent 目前主要针对 Linux/macOS 环境设计,在 Windows 11 上运行时存在以下问题:
1. 终端工具描述硬编码 Linux
terminal_tool.py中的工具描述写死了"Execute shell commands on a Linux environment",导致 LLM 在 Windows 环境下也会尝试使用 Linux-only 命令(如systemctl,apt,free -h等)。2. workdir 路径验证不支持 Windows 路径
_WORKDIR_SAFE_RE正则只允许/作为路径分隔符,不支持 Windows 的\和盘符C:,导致使用 Windows 绝对路径作为 workdir 时被安全检查拦截。3. 退出码解析不支持 Windows 可执行文件
_interpret_exit_code()中提取 base_cmd 时只处理 Unix 路径(/分隔),不支持 Windows 反斜杠路径和.exe后缀。4. 缺少 Windows 系统命令参考
Agent 不知道 Windows 环境下应该用什么命令替代 Linux 命令(如
systemctl→Get-Service,free -h→ PowerShell 等)。已实现的修复
我在本地做了以下适配,可以作为 PR 参考:
tools/terminal_tool.py新增 Windows 11 Skill
创建
skills/windows/SKILL.md,提供完整的 Linux → Windows 命令映射表:uname -a→systeminfo,free -h→ PowerShellGet-CimInstanceps aux→Get-Process,kill→taskkillip addr→ipconfig,ss -tlnp→Get-NetTCPConnectionsystemctl→Get-Service/Start-Serviceapt→winget建议
skills/windows/加入项目内置 skillsbuild_platform_hint()中加入 Windows 特定提示local.py的 PATH 处理 — 当前_SANE_PATH只有 Unix 路径,Windows 本地执行时可能需要补充常用路径环境