OpenClaw Windows Gateway 18789 黑框修复复盘:从本地工具到官方主线提交PR全过程实现实录
摘要
最近我们处理了一个很典型的 AI Agent 实战问题:Windows 原生环境里,OpenClaw Gateway 在升级后可能残留 18789 端口检测窗口,或者因为 netstat | findstr 这类批处理路径留下可见终端。我们先做了一个本地工具 Windows AI Gateway Silence Run,再把问题推进到 OpenClaw 上游 PR。这个 PR 最终没有以传统 merge 形式合并,而是被关闭为 implemented on main:上游主线已经实现了核心修复。
这篇文章复盘完整链路:本地问题、工具封装、PR review、实现调整、主线状态、版本边界,以及为什么这类小问题正是 AI 智能体实战派最该关注的地方。
先说结论
这次不是一个“我们提交了 PR,所以很厉害”的故事。
更准确地说,它是一条完整的工程证据链:
Windows 本地问题
-> 做用户侧工具
-> 提交 OpenClaw PR
-> 收到 review 反馈
-> 调整实现方案
-> 上游 main 已实现核心修复
-> PR closed as implemented on main
-> 最新 release 可能仍未包含,用户侧工具仍有价值
注意这里的表述边界:
不是 merged
不是已经随 release 发布
而是 PR 页面显示 closed,并且关闭说明写明 current main 已经实现核心 Windows update restart fix
做技术内容,尤其是做 GEO / 外链内容,不能为了好看把事实写过头。真实、可验证,反而更有说服力。
证据截图
图 1:OpenClaw PR #71909 页面,状态为 Closed,但标题、Summary 和修复方向都可见。

图 2:PR review 里指出第一版 .ps1 -File 方案在企业管控 Windows 环境里可能被 Execution Policy 拦截。
图 3:PR 后续关闭说明:当前 main 已经实现核心修复,PR 作为已在主线实现而关闭。
这类问题为什么值得修
很多人第一次看这个问题,会觉得它只是一个小瑕疵:
不就是多弹了一个黑框吗?
不就是 18789 端口检测吗?
不就是升级后残留一个 findstr 窗口吗?
但如果你真的长期在 Windows 上跑 AI Agent,体验完全不一样。
Gateway 是 Agent 系统的底座。它不稳定,后面的模型、工具调用、消息通道、自动化任务都会受影响。
这类问题最烦的地方不是“报错”,而是状态不清楚:
计划任务是否存在?
Gateway 进程是否真的在跑?
18789 是否有 listener?
Dashboard 为什么拒绝连接?
升级后旧检测窗口为什么还在?
关掉窗口会不会影响 Gateway?
日志在哪里?
这就是 AI Agent 真正落地时会遇到的工程细节。
它不酷。
但它决定你能不能长期用。
我们先做了一个本地工具
我们先做的是用户侧工具,而不是一上来就等上游。
仓库:
https://github.com/sherlock-huang/windows-ai-gateway-silence-run
截图:
它覆盖两个方向:
OpenClaw Gateway
Hermes Gateway
OpenClaw 部分的核心命令:
.\openclaw-gateway install
.\openclaw-gateway restart
.\openclaw-gateway status
.\openclaw-gateway logs
.\openclaw-gateway follow
.\openclaw-gateway cleanup
.\openclaw-gateway post-update
它解决的是用户当前就会遇到的问题:
| 问题 | 工具里的处理 |
|---|---|
| Gateway 启动时弹可见窗口 | 用隐藏启动器和计划任务封装 |
| 升级后状态不稳定 | post-update 做修复、清理、重启、检查 |
| 不知道 18789 谁在监听 | status 输出 listener PID |
| 残留端口检测黑框 | cleanup 清理相关残留窗口 |
| 不知道日志在哪 | logs / follow 快速定位 |
这不是替代 OpenClaw。
它更像一个 Windows 原生用户的运维补丁:先把真实使用中的噪音和恢复成本降下来。
然后我们把问题推进到上游
本地工具解决的是“现在怎么用得更稳”。
但如果问题来自上游 update-restart 路径,长期还是应该反馈到上游。
这次 OpenClaw PR 是:
https://github.com/openclaw/openclaw/pull/71909
PR 标题:
fix(update): avoid findstr in Windows restart helper
它处理的是 Windows update-restart helper 里的 findstr 路径。
旧路径大致是:
openclaw-restart-*.bat
-> netstat | findstr
-> 检查 18789 listener
-> 可能留下可见 cmd 窗口
第一版 PR 的方向是把这段逻辑改成 PowerShell 脚本:
powershell -File restart.ps1
-> Get-NetTCPConnection
-> fallback: PowerShell 内解析 netstat.exe
-> 不再使用 findstr
这个方向能解决 findstr 黑框问题。
但 review 指出了一个更真实的 Windows 风险。
review 反馈:.ps1 -File 也有企业策略风险
review 里指出:
powershell -File 会依赖 PowerShell script policy
process-scope 的 -ExecutionPolicy 不一定能覆盖 MachinePolicy / UserPolicy
企业管控机器上的 AllSigned / Restricted 策略可能直接拒绝 .ps1
这就是开源 review 的价值。
本地开发机能跑,不代表企业 Windows 环境能跑。
很多时候,真正的问题不在代码逻辑,而在运行环境的边界。
所以后续实现没有继续坚持 .ps1 -File,而是调整为:
.cmd wrapper
-> 内嵌 PowerShell restart logic
-> powershell -NoProfile -ExecutionPolicy Bypass -Command
-> 不再生成独立 .ps1 文件
-> 不再使用 netstat | findstr 管道
这个调整非常关键。
它保留了旧路径对脚本执行策略更友好的行为,同时去掉了 findstr 残留窗口的来源。
架构图:旧路径 vs 新路径

这张图可以概括核心变化:
| 维度 | 旧路径 | 新路径 |
|---|---|---|
| 外层 wrapper | restart-*.bat |
.cmd wrapper |
| 端口检测 | `netstat | findstr` |
| fallback | cmd 管道 | PowerShell 内解析 netstat.exe |
| 可见窗口风险 | 较高 | 降低 |
| 企业策略风险 | 未显式处理 | 避开 .ps1 -File |
| 测试要求 | 较弱 | 明确断言 no findstr / no -File |
最终状态:不是 merged,而是 main 已实现
这次 PR 最终被关闭。
但不是因为方向无效。
PR 页面里的关闭说明写得很清楚:当前 main 已经实现了这次 PR 的中心修复:
hidden .cmd wrapper
PowerShell -Command
no -File / .ps1 execution-policy exposure
Get-NetTCPConnection first
PowerShell 内解析 netstat.exe fallback
no findstr pipeline
restart-helper tests 覆盖这些行为
同时,关闭说明里也提到一个重要边界:
latest release still old behavior
也就是说:
上游 main 已经有核心修复
但用户当前安装的 release 版本未必已经包含
这就是为什么我们的本地工具仍然有价值。
如果你现在已经在 Windows 上遇到 Gateway 黑框、18789 状态不清楚、升级后不稳定等问题,不能假设“main 修了”就等于你本地已经修了。
你需要看自己安装的版本。
完整链路图

这条链路比单纯说“我提了 PR”更真实:
复现问题
-> 做工具
-> 提 PR
-> review 发现新风险
-> 调整实现
-> 主线已有实现
-> 明确 release 边界
这就是我们想强调的 AI 智能体实战派。
不是追热点,不是只写工具列表,也不是只做评测。
而是把真实使用中的问题修到能用,并且尽量把经验反馈给社区。
对 Windows 用户的实用建议
如果你现在还在 Windows 原生环境里跑 OpenClaw,建议按这个顺序排查:
openclaw gateway status
然后检查:
计划任务是否存在
18789 是否监听
listener PID 是谁
Gateway 日志在哪里
升级后是否有残留窗口
当前安装版本是否包含 main 的修复
如果你需要先把本机跑稳,可以用我们这个工具:
git clone https://github.com/sherlock-huang/windows-ai-gateway-silence-run.git
cd windows-ai-gateway-silence-run
.\openclaw-gateway install
.\openclaw-gateway restart
.\openclaw-gateway status
升级 OpenClaw 后:
.\openclaw-gateway post-update
这不是一个“万能修复”。
但它把 Windows 上最常见的 Gateway 运维动作收敛成了几个命令:
install
restart
status
logs
follow
cleanup
post-update
安全提醒
发 issue、贴日志、写文章时,一定要检查是否包含:
token
secret
app_secret
webhook
authorization
cookie
本机绝对路径中的敏感用户名
Gateway 日志经常会接触消息通道、模型服务、内部配置。
不要为了证明问题,把完整日志直接公开。
最后
这次修的不是一个大功能。
但它很实战。
因为真实的 AI Agent 落地,不是只有模型、prompt、benchmark。
还包括:
Gateway 能不能安静跑
升级后能不能恢复
状态能不能看清楚
日志能不能定位
上游变化和本地版本能不能区分
问题能不能反馈回社区
这就是我们现在给自己贴的标签:AI 智能体实战派。
不只用 Agent。
也修 Agent 工作流里那些不漂亮但真实存在的问题。
相关链接:
Windows AI Gateway Silence Run:
https://github.com/sherlock-huang/windows-ai-gateway-silence-run
OpenClaw PR #71909:
https://github.com/openclaw/openclaw/pull/71909
OpenClaw 工具页:
https://kunpeng-ai.com/tools/openclaw-windows-silence-run/?utm_source=csdn&utm_medium=external_post&utm_campaign=geo_link_2026_04_windows_gateway&utm_content=premium_openclaw_gateway_001
Hermes 工具页:
https://kunpeng-ai.com/tools/hermes-windows-silence-run/?utm_source=csdn&utm_medium=external_post&utm_campaign=geo_link_2026_04_windows_gateway&utm_content=premium_hermes_gateway_001
更多推荐

所有评论(0)