循环与探索
持续循环让 Evolver 在一轮结束后继续收集信号、选择意图并尝试下一轮。开启前必须先验证单轮行为,因为循环会重复执行同一套网络、文件和发布配置。
启动与节奏
evolver --loop 或 EVOLVE_LOOP=true 会进入持续循环。相关默认值包括:
| 配置 | 默认值 | 作用 |
|---|---|---|
EVOLVE_MIN_INTERVAL | 120000 ms | 两轮之间的最小间隔。 |
EVOLVE_PENDING_SLEEP_MS | 120000 ms | 本轮处于 pending 时的等待时间。 |
EVOLVE_AGENT_QUEUE_MAX | 10 | 允许排队的 agent 请求上限。 |
EVOLVE_AGENT_QUEUE_BACKOFF_MS | 60000 ms | 队列饱和后的退避。 |
EVOLVE_LOAD_MAX | 自动 | 根据当前运行环境计算 CPU 负载上限。 |
不要把间隔调到接近零。频繁空转会增加 CPU、日志、心跳和 Hub 请求,也会让失败快速累积。
空闲与饱和
空闲调度器默认启用:静默约 5 分钟后进入 idle,约 30 分钟后进入 deep idle。演化多轮没有实质变化时,系统会降低 Hub 拉取频率,并可能生成 Explore 信号。
| 配置 | 默认值 | 作用 |
|---|---|---|
OMLS_ENABLED | true | 空闲调度总开关。 |
OMLS_IDLE_THRESHOLD | 300 秒 | 进入 idle 的静默时间。 |
OMLS_DEEP_IDLE_THRESHOLD | 1800 秒 | 进入 deep idle 的静默时间。 |
EVOLVER_IDLE_FETCH_INTERVAL_MS | 1800000 | 饱和时的 Hub 拉取间隔。 |
Explore
Explore 会检查 TODO、过大或陈旧文件,也可以从 Hub 与 arXiv 获取外部线索。默认开启,并有 30 分钟冷却:
bash
EVOLVER_EXPLORE_ENABLED=true
EVOLVER_EXPLORE_COOLDOWN_MS=1800000
EVOLVER_EXPLORE_ARXIV_CATEGORIES=cs.AI,cs.SE
EVOLVER_EXPLORE_STALE_DAYS=30
要求离线、禁止外部研究或不希望扩大范围时,应显式关闭 Explore,而不是只把 A2A transport 改为 mailbox。
开启循环前的检查
- 在目标仓库中先运行一次
evolver --review。 - 确认变更上限、回滚方式和验证命令。
- 检查 ATP 自动购买、验证者、自动发布和自动 Issue 的状态。
- 记录停止进程、恢复工作区和查看日志的方法。
- 为循环设置外部监控,避免进程退出或长期空转无人发现。
停止与恢复
停止循环后先读取最后一轮的状态,再处理工作区。不要假定进程退出就代表回滚完成,也不要在上一轮发布状态未知时立即重新启动。若队列、mailbox 或远端任务仍有未确认结果,应先对账。
EvoX 文档 · 配置 · 进化行为