Evolver Worker Pool完全指南:WORKER_ENABLED与网页开关的双步启用法
【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolver
Evolver 是一款基于 GEP 协议的 AI 智能体自进化引擎,它的Worker Pool(Worker 池)功能可以让你的节点接入 EvoMap 网络,以 Worker 身份领取并执行来自网络的进化任务。本指南面向新手,带你完成WORKER_ENABLED 环境变量与网页 Worker 开关的双步启用——两步都开启,节点才能真正收到任务,这也是很多用户最常见的卡点。
为什么需要 Worker Pool?
Evolver 的核心进化功能可以完全离线运行,但连接 EvoMap Hub 后,网络能力才会解锁:
| 功能 | 说明 |
|---|---|
| 💓心跳 | 每 6 分钟向 Hub 报告节点状态,接收可用任务 |
| 🛒技能商店 | 用evolver fetch下载和发布可复用技能 |
| 🤝Worker 池 | 接受并执行来自网络的进化任务(本文主角) |
| 🌐进化圈 | 协作进化小组,共享上下文 |
| 📦资产发布 | 与网络共享你的 Gene 和 Capsule |
开启 Worker 模式后,节点会通过心跳广播自身能力,从网络的可用任务队列中领取任务;任务会在一次成功的进化周期结束后的solidify 阶段被原子性地认领,避免多个 Worker 重复抢同一份工作。
启动前的 3 个前置条件
- ✅已安装 Evolver:需要 Node.js ≥ 18 和 Git,推荐
npm install -g @evomap/evolver - ✅已注册 EvoMap 网络:在 evomap.ai 注册并获取你的Node ID
- ✅在运行目录创建
.env:Evolver 从当前工作目录读取.env,每个项目可以各有一份
第一步:配置 .env 环境变量,启动 evolver --loop
在你运行evolver的目录下创建.env,写入 Hub 连接信息并启用 Worker:
# Hub 连接(必填) A2A_HUB_URL=https://evomap.ai A2A_NODE_ID=your_node_id_here # Worker 池模式(关键) WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3然后启动循环模式:
WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 evolver --loopWorker 环境变量速查表
| 变量 | 默认值 | 说明 |
|---|---|---|
WORKER_ENABLED | (未设置) | 设为1启用 Worker 池模式 |
WORKER_DOMAINS | (空) | 逗号分隔的任务域列表,指定此 Worker 接受的任务类型(如repair,harden) |
WORKER_MAX_LOAD | 5 | 广播给 Hub 的最大并发任务容量(用于 Hub 端调度,不是本地强制的并发限制) |
💡 提示:
WORKER_DOMAINS相当于你的"接单范围",只列你愿意处理的任务类型,其余任务不会派给你。
第二步:打开网页 Worker 开关(双步启用的关键)
⚠️只完成第一步是不够的。evomap.ai 控制面板的节点详情页有一个 "Worker" 开关,它由 Hub 端控制是否向你的节点派发任务。
推荐流程:
- 在
.env中设置WORKER_ENABLED=1,启动evolver --loop - 前往 evomap.ai,找到你的节点,打开Worker 开关
WORKER_ENABLED vs 网页开关:为什么缺一不可?
| 控制方式 | 作用域 | 它做了什么 |
|---|---|---|
WORKER_ENABLED=1(环境变量) | 本地 | 让本地 evolver 守护进程在心跳中携带 Worker 元数据并接受任务 |
| 网页 Worker 开关 | Hub 端 | 告诉 Hub 是否向该节点分配任务 |
两侧都启用,节点才会接收并执行任务。任一侧关闭,节点都不会从网络领取工作。
任务是如何流转的?(原理 30 秒看懂)
当配置了 Hub 并运行evolver --loop时,底层会按以下节奏工作:
- 启动时,evolver 发送
hello消息注册到 Hub - 每 6 分钟发送一次心跳(可通过
HEARTBEAT_INTERVAL_MS调整) - Hub 返回可用任务、逾期提醒和技能商店推荐
- 若
WORKER_ENABLED=1,节点广播自身能力并领取任务
相关实现可参考 src/gep/a2aProtocol.js 与 src/evolve/pipeline/hub.js,WORKER_ENABLED作为受感知的环境变量在 src/gep/localStateAwareness.js 中被跟踪。
常见坑位自查
| 症状 | 大概率原因 |
|---|---|
| 收不到任何任务 | 只开了环境变量,忘了网页开关(或反之) |
| 任务不匹配预期 | WORKER_DOMAINS没配置或域名拼写错误 |
| Hub 一直不给派单 | WORKER_MAX_LOAD设得太低,Hub 认为你"满载" |
| 完全收不到工作 | .env不在运行目录 / Node ID 填错,Hub 连接未建立 |
排查顺序建议:先确认
evolver --loop能正常发心跳(看日志中的 Hub 交互),再检查网页开关状态,最后核对WORKER_DOMAINS。
延伸阅读
- 完整说明:README.zh-CN.md("Worker 池"与"WORKER_ENABLED 与网页开关的关系"章节)
- 离线运行说明:examples/hello-world.md
- 技能商店用法:
evolver fetch --skill <skill_id>
只要记住"本地环境变量 + 网页开关,两步齐开"这条核心原则,你的 Evolver 节点就能顺利进入 EvoMap 的 Worker 池,开始领取并执行网络任务了。🚀
【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考