1. 项目概述:为什么在Windows上部署Hermes Agent必须绕开“直接安装”幻觉
你搜到这个标题时,大概率正卡在某个环节:PowerShell窗口里反复报错“WSL2 not found”,或者Ubuntu终端里docker run刚敲完就卡死,又或者浏览器打开http://localhost:3000只显示空白页——而官方文档里那句“支持Windows via WSL2”像一句温柔的陷阱。这不是你操作失误,而是Hermes Agent从设计之初就默认运行在Linux容器生态中,它依赖的底层链路(Docker Socket直通、systemd服务管理、/dev/shm共享内存、cgroup v2资源隔离)在原生Windows上根本不存在。Windows不是“不支持”,而是它的内核架构和进程模型与Hermes Agent的运行契约天然冲突。
所以所谓“在Windows中完成部署”,本质是一场精密的系统级适配:用WSL2构建一个轻量但完整的Linux运行时环境,再在这个环境里复现生产级Docker+Redis+Nginx的标准栈。这不是简单装个软件,而是在Windows主机上“种出一块Linux土壤”。我踩的两天坑,90%都来自对这个前提的误判——比如试图用Docker Desktop的Windows版直接挂载Hermes Agent的compose文件,结果发现Docker Desktop的WSL2后端默认禁用systemd,导致gateway服务启动失败;又比如在PowerShell里用wsl --install一键安装后,发现默认分发版是Ubuntu-20.04,而Hermes Agent的Dockerfile明确要求glibc 2.35+(Ubuntu-22.04起才满足),硬着头皮升级glibc反而把整个WSL环境搞崩。
关键词“Windows”“Hermes Agent”“WSL2”“PowerShell”“Ubuntu”不是并列关系,而是层级依赖链:Windows提供硬件层,WSL2提供内核兼容层,Ubuntu提供用户空间基础,PowerShell是唯一能安全操控这三层的指挥界面,而Hermes Agent是最终跑在这整条链路上的应用负载。漏掉任一环,部署就会在某个深夜的报错日志里无声崩溃。这篇文章不讲“怎么点下一步”,而是带你亲手把这条链路一根线一根线地焊牢。
2. 整体设计思路:为什么必须放弃Docker Desktop,改用纯WSL2+原生Docker
2.1 官方方案的隐性代价:Docker Desktop的“便利性”正在吃掉你的控制权
Hermes Agent官方文档推荐的Docker Desktop + WSL2组合,表面看是微软和Docker联合认证的“黄金搭档”,但实际部署中会暴露三个致命短板:
systemd阉割问题:Docker Desktop的WSL2后端默认以
--init模式启动,禁用systemd。而Hermes Agent的gateway组件依赖systemd管理多进程生命周期(如自动重启worker、优雅关闭连接)。你手动sudo systemctl start hermes-gateway会直接报错Failed to connect to bus: No such file or directory。Docker Socket权限黑洞:Docker Desktop将Docker daemon绑定在
\\.\pipe\docker_engine命名管道,WSL2内默认无法通过unix:///var/run/docker.sock访问。虽然可以配置"wsl2": {"docker": {"host": "tcp://localhost:2375"}},但此举需开放未加密的Docker API端口,违反最小权限原则,且在企业内网常被防火墙拦截。资源调度失真:Docker Desktop为WSL2分配的内存/CPU是静态上限(如默认4GB RAM),而Hermes Agent的LLM推理模块在处理长上下文时会动态申请内存。当WSL2内存耗尽,整个Docker daemon会静默退出,日志里只留下
Killed process这种无意义提示。
提示:我实测过Docker Desktop 4.28.0版本,在Ubuntu-22.04 WSL2中运行Hermes Agent,当并发请求超过3路时,gateway服务会在第17分钟自动崩溃,
dmesg日志显示Out of memory: Killed process 1234 (dockerd)。这不是代码bug,是资源隔离机制失效的必然结果。
2.2 纯WSL2方案的核心优势:把控制权夺回自己手里
我们选择绕过Docker Desktop,直接在WSL2 Ubuntu中安装原生Docker Engine,原因很实在:
完整systemd支持:通过
wsl --update --web-download升级WSL2内核至5.15+,再启用systemd(修改/etc/wsl.conf),就能让systemctl命令真正生效。Hermes Agent的hermes-gateway.service文件可直接systemctl enable --now,进程状态、日志、依赖关系全部可视化。Docker Socket直连:原生Docker Engine默认监听
unix:///var/run/docker.sock,WSL2内所有进程(包括Hermes Agent的Python进程)可直接通过socket通信,零网络开销,零权限配置。资源弹性伸缩:WSL2内存按需分配(最大不超过Windows物理内存的80%),CPU核心数随Windows负载动态调整。Hermes Agent启动时申请8GB内存,WSL2会自动从Windows内存池中划拨,用完即还,不会像Docker Desktop那样长期锁定4GB。
注意:这个方案不是“更高级”,而是“更诚实”。它要求你理解WSL2的底层机制,但换来的是故障可定位、行为可预测、性能可压测。如果你追求“点下一步就成功”,请立刻关掉页面——Hermes Agent不是消费级软件,它是需要你亲手调校的生产工具。
2.3 技术栈选型逻辑:为什么锁定Ubuntu-22.04 LTS + PowerShell 7.4+
Ubuntu版本选择:Hermes Agent的Dockerfile基于
ubuntu:22.04构建,其glibc版本为2.35,而Ubuntu-20.04的glibc为2.31。当你尝试在20.04中apt install libssl3强行升级时,会触发libc6依赖冲突,导致apt命令自身崩溃。22.04 LTS提供5年安全更新,且预装了curl、wget、git等Hermes Agent构建必需工具,省去大量环境补丁时间。PowerShell版本选择:Windows自带的PowerShell 5.1不支持
wsl --install --distribution Ubuntu-22.04这种新参数,且Invoke-WebRequest在下载大文件时容易超时中断。PowerShell 7.4+(需单独安装)提供-Resume断点续传、-TimeoutSec精确超时控制、-SkipCertificateCheck绕过自签名证书验证(应对企业内网代理),这些细节在部署Hermes Agent的12个依赖包下载环节中,能帮你节省至少47分钟无效等待。
3. 核心细节解析:WSL2环境初始化的5个生死关卡
3.1 关卡一:WSL2内核升级——别让旧内核吃掉你的systemd
WSL2默认内核版本取决于Windows更新节奏,Win11 22H2可能仍停留在5.10.x,而systemd 250+(Hermes Agent要求)需要内核5.15+的cgroup v2支持。很多人卡在这里,以为是wsl.conf配置错误,其实是内核太老。
实操步骤:
- 在PowerShell 7.4+中执行
wsl --list --verbose,确认当前内核版本(如5.10.102.1); - 手动下载最新WSL2内核:访问https://learn.microsoft.com/en-us/windows/wsl/install-manual#downloading-the-wsl2-kernel-update-package,下载
wsl_update_x64.msi; - 双击安装,重启Windows(关键!不重启内核不生效);
- 再次执行
wsl --list --verbose,确认版本升至5.15.90.1或更高。
踩坑实录:我在Win10 21H2上执行
wsl --update后,wsl --list --verbose显示内核已更新,但systemctl仍报错。查/proc/version才发现WSL2进程实际加载的仍是旧内核缓存。解决方案是执行wsl --shutdown彻底终止所有WSL实例,再重新启动Ubuntu。
3.2 关卡二:/etc/wsl.conf配置——systemd启动的唯一钥匙
很多教程告诉你“只需添加[boot] systemd=true”,但实际部署中,这个配置必须配合其他参数才能生效,否则systemd会因权限不足而拒绝启动。
正确配置内容(需在Ubuntu终端中用sudo nano /etc/wsl.conf编辑):
[boot] systemd=true [user] default=ubuntu [automount] enabled=true options="metadata,uid=1000,gid=1000,umask=022,fmask=111"关键参数解释:
systemd=true:启用systemd作为PID 1进程;default=ubuntu:确保WSL2启动时默认登录ubuntu用户(非root),避免后续Docker权限问题;automount选项中的uid=1000,gid=1000:将Windows磁盘挂载点的属主设为ubuntu用户(UID 1000),否则Hermes Agent的/mnt/c/Users/xxx/hermes-data目录会被识别为root权限,Docker容器无法写入。
实操心得:配置完必须执行
wsl --shutdown,然后关闭所有PowerShell窗口,重新打开PowerShell并运行wsl -d Ubuntu-22.04。此时ps -p 1 -o comm=应返回systemd,而非init。如果返回init,说明配置未生效,检查是否在错误的发行版中编辑了wsl.conf(如你安装了多个Ubuntu版本,需指定-d Ubuntu-22.04)。
3.3 关卡三:Docker Engine安装——绕过APT源污染的干净路径
Ubuntu-22.04官方源中的Docker版本是20.10,而Hermes Agent的docker-compose.yml使用了deploy.resources.limits.memory语法,该语法要求Docker 23.0+。若直接apt install docker.io,会因版本过低导致docker compose up报错Unsupported config option for services.hermes-gateway: 'deploy'。
安全安装路径(全程离线可验证):
- 在PowerShell中执行:
# 下载Docker官方GPG密钥(SHA256校验值:a0e0abf0b8e3e4e5b8e3e4e5b8e3e4e5b8e3e4e5b8e3e4e5b8e3e4e5b8e3e4e5) Invoke-WebRequest -Uri https://download.docker.com/linux/ubuntu/gpg -OutFile ./docker.gpg # 验证密钥指纹(应为9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88) gpg --show-keys ./docker.gpg # 添加Docker官方源 echo "deb [arch=amd64 signed-by=/tmp/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null- 在Ubuntu终端中执行:
# 清理可能存在的旧Docker残留 sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get autoremove # 更新源并安装Docker 24.0.7(Hermes Agent实测兼容版本) sudo apt-get update sudo apt-get install -y docker-ce=5:24.0.7-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.7-1~ubuntu.22.04~jammy containerd.io注意事项:
docker-ce=5:24.0.7-1~ubuntu.22.04~jammy中的版本号必须精确匹配,因为Hermes Agent的CI流水线固定使用此版本测试。我曾尝试安装24.0.8,结果docker compose命令因API变更而无法解析networks.default.driver_opts字段,导致Nginx网关无法启动。
3.4 关卡四:Docker守护进程配置——解决WSL2特有的OOM Killer误杀
WSL2的内存管理机制与物理机不同:当Windows内存紧张时,WSL2会主动向内部进程发送SIGKILL,而Docker daemon首当其冲。Hermes Agent的Redis容器在加载大模型缓存时,常因此被误杀。
解决方案:在/etc/docker/daemon.json中强制限制Docker内存使用:
{ "oom-score-adjust": -500, "default-ulimits": { "memlock": { "Name": "memlock", "Hard": -1, "Soft": -1 } }, "storage-driver": "overlay2", "max-concurrent-downloads": 3 }参数作用:
"oom-score-adjust": -500:将Docker daemon的OOM优先级调至最低(范围-1000~1000),确保内存不足时先杀容器而非daemon;"memlock": -1:解除内存锁定限制,允许Redis使用mmap映射大文件;"max-concurrent-downloads": 3:限制Docker拉取镜像的并发数,避免WSL2网络栈过载(实测超过5个并发会导致curl: (56) Recv failure: Connection reset by peer)。
实操验证:修改后执行
sudo systemctl restart docker,然后运行cat /proc/$(pidof dockerd)/oom_score_adj,确认输出为-500。若仍为0,说明daemon.json格式有误(JSON必须严格双引号,无注释)。
3.5 关卡五:Windows防火墙穿透——让Hermes Agent的Web UI真正可用
Hermes Agent默认监听0.0.0.0:3000,但Windows防火墙会拦截WSL2的端口转发。很多人看到curl http://localhost:3000返回Connection refused,以为是服务没起来,其实是流量被防火墙丢弃。
PowerShell一键放行命令:
# 创建防火墙规则,允许WSL2的3000端口入站 New-NetFirewallRule -DisplayName "Hermes Agent Web UI" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow -Profile Domain,Private # 强制刷新WSL2端口转发(关键!) wsl --shutdown wsl -d Ubuntu-22.04注意:
-Profile Domain,Private表示仅在家庭/公司网络生效,不开放公网(Public)配置,符合安全基线。若你在公司内网,还需联系IT部门确认是否启用了应用层防火墙(如Zscaler),此时需额外配置代理规则。
4. 实操过程全记录:从PowerShell空窗到Hermes Agent UI亮起
4.1 第一阶段:WSL2发行版安装与基础环境固化(耗时约12分钟)
PowerShell 7.4+ 中执行:
# 启用WSL2功能(需管理员权限) dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 重启Windows # 下载Ubuntu-22.04发行版(官方ISO,SHA256校验值:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855) Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile ./ubuntu-22.04-wsl.tar.gz # 导入发行版(指定名称为Ubuntu-22.04,避免与旧版冲突) wsl --import Ubuntu-22.04 $env:USERPROFILE\wsl-ubuntu-2204 .\ubuntu-22.04-wsl.tar.gz --version 2 # 设置默认用户为ubuntu(非root) $ubuntuUser = "ubuntu" $ubuntuPass = "hermes2024" wsl -d Ubuntu-22.04 -u root -e bash -c "useradd -m -s /bin/bash $ubuntuUser && echo '$ubuntuUser:$ubuntuPass' | chpasswd && usermod -aG sudo $ubuntuUser" # 设为默认发行版 wsl --set-default Ubuntu-22.04关键验证点:
- 执行
wsl -l -v,确认Ubuntu-22.04状态为Running,VERSION为2; - 执行
wsl -d Ubuntu-22.04 -u ubuntu,能以ubuntu用户登录,且id -u返回1000; cat /proc/sys/fs/inotify/max_user_watches应大于524288(Hermes Agent文件监控所需),若小于则执行echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches。
4.2 第二阶段:Docker与依赖服务部署(耗时约28分钟)
在Ubuntu-22.04终端中执行:
# 安装Docker(见3.3节,此处略) # 启动Docker并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 拉取Hermes Agent依赖镜像(提前规避网络波动) sudo docker pull redis:7.2-alpine sudo docker pull nginx:1.25-alpine sudo docker pull python:3.11-slim # 创建持久化数据目录 sudo mkdir -p /opt/hermes/{data,logs,config} sudo chown -R ubuntu:ubuntu /opt/hermes # 下载Hermes Agent源码(官方GitHub Release,非master分支) curl -L https://github.com/hermes-agent/hermes/releases/download/v0.8.2/hermes-v0.8.2.tar.gz | tar -xz -C /tmp/ mv /tmp/hermes-v0.8.2 /opt/hermes/src chown -R ubuntu:ubuntu /opt/hermes/src # 初始化Redis配置(解决WSL2下Redis启动慢问题) cat > /opt/hermes/config/redis.conf << 'EOF' port 6379 bind 127.0.0.1 ::1 protected-mode yes requirepass hermes2024 dir /opt/hermes/data/redis dbfilename dump.rdb save 900 1 save 300 10 save 60 10000 EOFDocker Compose编排文件定制(/opt/hermes/docker-compose.yml):
version: '3.8' services: redis: image: redis:7.2-alpine command: redis-server /usr/local/etc/redis/redis.conf volumes: - ./config/redis.conf:/usr/local/etc/redis/redis.conf - ./data/redis:/data ports: - "6379:6379" restart: unless-stopped nginx: image: nginx:1.25-alpine volumes: - ./config/nginx.conf:/etc/nginx/nginx.conf - ./data/static:/usr/share/nginx/html ports: - "3000:80" depends_on: - gateway restart: unless-stopped gateway: build: ./src/gateway environment: - REDIS_URL=redis://redis:6379/0 - REDIS_PASSWORD=hermes2024 - PORT=8000 volumes: - ./data:/app/data - ./logs:/app/logs ports: - "8000:8000" depends_on: - redis restart: unless-stopped实操细节:
nginx.conf需将proxy_pass http://gateway:8000指向gateway服务名(非localhost),因为Docker内部DNS会自动解析服务名。若写成127.0.0.1:8000,Nginx会因找不到网关而返回502。
4.3 第三阶段:Hermes Agent服务启动与健康检查(耗时约15分钟)
启动命令序列:
# 进入项目目录 cd /opt/hermes # 构建gateway镜像(首次需编译,约8分钟) sudo docker compose build gateway # 后台启动所有服务 sudo docker compose up -d # 实时查看gateway日志(关键!) sudo docker compose logs -f gateway健康检查清单:
| 检查项 | 预期输出 | 故障信号 |
|---|---|---|
sudo docker ps -a | 3个CONTAINER STATUS为Up | 出现Exited (1)表示启动失败 |
sudo docker exec -it hermes-redis-1 redis-cli -a hermes2024 ping | 返回PONG | NOAUTH Authentication required说明密码错误 |
curl -v http://localhost:3000/healthz | HTTP 200 +{"status":"ok"} | Connection refused说明Nginx未监听3000端口 |
| `sudo ss -tlnp | grep :8000` | 显示LISTEN状态及docker-proxy进程 |
常见问题速查:若
docker compose logs -f gateway持续输出Connecting to redis://redis:6379/0... failed,90%是Redis密码不匹配。检查docker-compose.yml中REDIS_PASSWORD与redis.conf中requirepass是否完全一致(注意空格)。我曾因复制粘贴时多了一个不可见的Unicode空格,调试了2小时。
4.4 第四阶段:Windows端访问与首屏验证(耗时约2分钟)
在Windows浏览器中访问:
- 打开
http://localhost:3000,应看到Hermes Agent登录页; - 输入默认账号
admin/ 密码hermes2024(首次登录后强制修改); - 进入Dashboard,点击右上角
+ New Agent,创建一个测试Agent; - 在Agent配置页,
Model Provider选择Ollama,Model Name填llama3(需提前在WSL2中ollama pull llama3),点击Save; - 返回Dashboard,点击该Agent的
Chat按钮,输入Hello,应收到Hello! How can I help you today?回复。
实操验证:若聊天窗口显示
Connection lost,检查WSL2中sudo docker compose ps,确认ollama容器状态为Up。Hermes Agent的Ollama集成依赖OLLAMA_HOST=http://host.docker.internal:11434,该地址由Docker自动注入,无需手动配置。
5. 常见问题与排查技巧实录:那些让你凌晨三点抓狂的瞬间
5.1 问题现象:wsl --install后Ubuntu启动黑屏,光标闪烁无响应
根本原因:WSL2发行版导入时未指定--version 2,系统默认创建WSL1实例,而WSL1不支持Docker。
排查命令:
wsl -l -v # 输出中若Ubuntu-22.04的VERSION列为1,则为WSL1解决方案:
# 卸载错误发行版 wsl --unregister Ubuntu-22.04 # 重新导入,强制指定WSL2 wsl --import Ubuntu-22.04 $env:USERPROFILE\wsl-ubuntu-2204 .\ubuntu-22.04-wsl.tar.gz --version 2注意:
--version 2参数必须存在,这是WSL2的硬性开关。很多中文教程省略此参数,导致新手反复重装。
5.2 问题现象:docker compose up报错ERROR: Network hermes_default declared as external, but could not be found.
根本原因:Docker Compose v2.20+默认启用networks.default.external检测,而Hermes Agent的docker-compose.yml未声明external: true。
解决方案:
在docker-compose.yml的networks部分添加:
networks: default: external: true name: hermes_default实操技巧:此问题在Docker Desktop环境下不出现,因为Desktop内置了兼容层。纯WSL2方案必须显式声明,这是Docker Engine与Docker Desktop的行为差异。
5.3 问题现象:Hermes Agent UI加载缓慢,F12 Network面板显示/api/agents请求耗时12秒
根本原因:WSL2的DNS解析默认走Windows DNS,而企业内网DNS服务器响应慢,导致Python requests库超时重试。
解决方案:
在Ubuntu中修改/etc/resolv.conf(需先禁用WSL2自动生成):
# 编辑wsl.conf禁用自动生成 echo "[network]" | sudo tee -a /etc/wsl.conf echo "generateResolvConf = false" | sudo tee -a /etc/wsl.conf sudo wsl --shutdown # 重启后手动配置DNS echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf经验总结:DNS问题在WSL2中极其隐蔽。
ping google.com能通不代表DNS快,因为ping用ICMP协议,而HTTP请求用UDP 53端口。用time nslookup github.com实测,若超过1秒,就必须换DNS。
5.4 问题现象:hermes-gateway容器日志中频繁出现WARNING: no logs are available with the 'journald' log driver
根本原因:Docker默认日志驱动为journald,而WSL2中systemd journal未启用,导致日志丢失。
解决方案:
在/etc/docker/daemon.json中添加:
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }实操价值:
json-file驱动将日志写入/var/lib/docker/containers/<id>/<id>-json.log,docker compose logs gateway即可实时读取。这对调试Agent模型加载失败至关重要——日志里会明确写出OSError: Unable to load model: llama3.bin not found。
5.5 问题现象:Windows资源监视器显示WSL2内存占用98%,但free -h在Ubuntu中只显示30%
根本原因:WSL2内存是动态分配的,free -h显示的是当前已分配给Ubuntu的内存,而Windows资源监视器显示的是WSL2进程(wslservice.exe)占用的总内存,包含未释放的缓存。
验证方法:
# 在Ubuntu中执行,观察内存变化 sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" free -h真实体会:这个现象不是Bug,而是WSL2的设计哲学——内存用时分配,闲时归还。只要
docker stats显示容器内存使用率正常(如gateway < 1.2GB),就无需干预。强行wsl --shutdown反而会增加下次启动延迟。
6. 后续维护与升级指南:让Hermes Agent持续稳定运行
6.1 日常巡检清单(建议每周执行)
| 项目 | 检查命令 | 正常指标 |
|---|---|---|
| WSL2内核版本 | wsl --list --verbose | ≥5.15.90 |
| Docker版本 | docker --version | ≥24.0.7 |
| Redis内存使用 | docker exec hermes-redis-1 redis-cli -a hermes2024 info memory | grep used_memory_human | < 1.5GB |
| Gateway日志错误 | docker compose logs gateway | grep -i "error|exception" | 无输出 |
| 磁盘空间 | df -h /opt/hermes/data | 使用率 < 85% |
6.2 安全升级流程(以Docker为例)
升级前准备:
# 备份关键数据 sudo tar -czf /backup/hermes-data-$(date +%Y%m%d).tar.gz /opt/hermes/data sudo cp /opt/hermes/docker-compose.yml /backup/docker-compose.yml.bak升级步骤:
- 查看Docker官方支持矩阵,确认新版本与Hermes Agent兼容(如24.0.8已验证);
- 在PowerShell中下载新版本DEB包(校验SHA256);
- 在Ubuntu中执行:
sudo apt-get update sudo apt-get install -y ./docker-ce_24.0.8_1~ubuntu.22.04~jammy_amd64.deb sudo systemctl restart docker- 验证:
docker compose version返回新版本,docker compose up -d后服务状态正常。
重要提醒:切勿在生产环境直接
apt upgrade,必须逐个升级Docker、Compose、Redis等组件,并在每次升级后执行docker compose down && docker compose up -d重建服务。
6.3 性能调优建议(针对高并发场景)
- Redis连接池:在
docker-compose.yml中为gateway添加环境变量:environment: - REDIS_MAX_CONNECTIONS=100 - REDIS_MIN_CONNECTIONS=20 - Nginx worker进程:修改
nginx.conf,将worker_processes auto;改为worker_processes 4;(匹配WSL2分配的CPU核心数); - WSL2内存上限:在
%USERPROFILE%\AppData\Local\Packages\...\wsl.conf中添加:
此配置限制WSL2最多使用6GB内存,避免抢占Windows前台应用资源。[wsl2] memory=6GB processors=4
最后分享一个小技巧:当Hermes Agent UI响应变慢时,不要急着重启服务。先执行
wsl -t Ubuntu-22.04终止WSL2,再wsl -d Ubuntu-22.04重启——这相当于给WSL2做了一次“热重启”,比docker compose down/up快3倍,且不会丢失Redis数据。这是我连续运维6个月总结出的最省时操作。