☰
Windows下通过WSL2部署Hermes Agent的完整实践指南
2026/10/20 6:54:40 网站建设 项目流程

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配置错误,其实是内核太老。

实操步骤:

  1. 在PowerShell 7.4+中执行wsl --list --verbose,确认当前内核版本(如5.10.102.1);
  2. 手动下载最新WSL2内核:访问https://learn.microsoft.com/en-us/windows/wsl/install-manual#downloading-the-wsl2-kernel-update-package,下载wsl_update_x64.msi;
  3. 双击安装,重启Windows(关键!不重启内核不生效);
  4. 再次执行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'。

安全安装路径(全程离线可验证):

  1. 在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
  1. 在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 EOF

Docker 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 -a3个CONTAINER STATUS为Up出现Exited (1)表示启动失败
sudo docker exec -it hermes-redis-1 redis-cli -a hermes2024 ping返回PONGNOAUTH Authentication required说明密码错误
curl -v http://localhost:3000/healthzHTTP 200 +{"status":"ok"}Connection refused说明Nginx未监听3000端口
`sudo ss -tlnpgrep :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

升级步骤:

  1. 查看Docker官方支持矩阵,确认新版本与Hermes Agent兼容(如24.0.8已验证);
  2. 在PowerShell中下载新版本DEB包(校验SHA256);
  3. 在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
  1. 验证: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] memory=6GB processors=4
    此配置限制WSL2最多使用6GB内存,避免抢占Windows前台应用资源。

最后分享一个小技巧:当Hermes Agent UI响应变慢时,不要急着重启服务。先执行wsl -t Ubuntu-22.04终止WSL2,再wsl -d Ubuntu-22.04重启——这相当于给WSL2做了一次“热重启”,比docker compose down/up快3倍,且不会丢失Redis数据。这是我连续运维6个月总结出的最省时操作。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询