持續運行與任務隊列
把已經驗證的有限流程變成常駐運行前,需要為它補上隊列邊界、失敗處理、監控和停止方式。本頁説明運行流程,參數表見運行參數參考。
先確認執行支持
evolver --version
evolver cycle capabilities --json
evolver lifecycle status
分別檢查採集、注入、執行、驗證和恢復能力。當前內置 Claude、Codex 和 Cursor 自主執行關閉,Gemini 與獨立 llm 文件執行器為實驗能力。不能以“成功導入某宿主會話”推斷它能在後台執行。
建立有限閉環
先在隔離倉庫準備一項材料、明確目標與驗證命令,記錄 HEAD 和已有改動。限定單次處理數量和超時,檢查週期結果、實際 diff 與驗證證據。成功、沒有材料和驗證失敗三條路徑都應有明確結果。
cycle 處理材料;autoexec 消費任務隊列並承擔常駐維護;lifecycle 管理服務。按需要選擇,不將舊版 evolver --loop 當作所有流程的統一入口。
獨立 LLM 文件執行器
--runner llm 不依賴編碼 Agent CLI。它通過模型接口執行受限文件任務,只提供列目錄、讀取和寫入文件工具,不讓模型選擇進程或腳本。該執行器屬於實驗能力;僅在隔離目錄中啓用,並逐項驗證文件改動。
| 配置 | 默認值或要求 |
|---|---|
EVOLVER_LLM_API_KEY | 必需;未配置時讀取 OPENAI_API_KEY |
EVOLVER_LLM_BASE_URL | https://api.openai.com/v1;遠程接口必須 HTTPS,僅迴環地址允許 HTTP |
EVOLVER_LLM_MODEL | gpt-4.1;應顯式選擇賬號可用的模型 |
EVOLVER_LLM_API_BACKEND | chat-completions,也可明確選擇 responses;不自動猜測協議 |
EVOLVER_LLM_MAX_TURNS | 12,允許 1–64 |
EVOLVER_LLM_MAX_FILE_BYTES | 65536,最高 1 MiB |
cycle 必須提供 --validation-spec <file>:不超過 64 KiB 的普通 JSON 文件,包含 version: 1 與非空 files 數組,每項為相對 path 和預先確定的 sha256。驗收規格在領取材料前凍結,模型不能用自己的輸出重新定義成功。運行使用私有 worktree 和清理後的環境;不支持 --resume,不能與 --validation-cmd 混用。
這項驗證檢查最終字節與預定摘要、額外改動;它不運行項目測試,也不證明功能正確或提供操作系統沙箱。真實供應商請求和打包產物執行需分別驗收;文件摘要匹配不能證明這兩項結果。期望內容無法預先確定時,選擇具備相應驗證能力的流程,不能讓模型自己填寫預期摘要來製造通過。
準備一個受控的運行實例
為實驗實例選擇獨立 home 和隔離倉庫,不復用生產隊列。下面是 <home>/autoexec/config.json 的有效配置結構,替換倉庫路徑後再保存:
{
"allowedRoots": ["/absolute/path/to/isolated-repository"],
"pollMs": 30000,
"timeoutMs": 600000,
"runner": "llm",
"workflowValidationProfiles": {
"project-checks": ["npm test", "npm run build"]
}
}
本例選用上文説明的實驗 llm 執行器,不表示任意任務都獲得執行支持。驗證配置只定義命名命令集,任務還需實際引用對應 profile;它不能替代 llm cycle 所需的凍結文件驗證規格。只在項目確有這些腳本時使用示例命令。
啓動前在服務環境設置 EVOLVER_TASK_RECEIVER=0、EVOLVER_ATP_AUTOBUY=off 與 EVOLVER_ATP_AUTODELIVER=off,準備執行器所需憑證並檢查既有隊列。先觀察一個明確任務的狀態和產物,再擴大持續運行範圍。隊列文件、運行日誌和實際 diff 分別留存。
區分任務狀態
| 觀察結果 | 能證明什麼 | 仍需確認 |
|---|---|---|
| 進程存活 | 服務在運行 | 是否正在處理目標任務 |
| 任務進入隊列 | 本地已接收待處理項 | 白名單、執行器和資源是否滿足 |
| 已開始執行 | 執行器承接任務 | 驗證是否完成、產物是否可用 |
| 本地驗證通過 | 對應檢查通過 | 遠端提交是否被接收 |
| 已停止新領取 | 不再承接新任務 | 已承接任務及隊列的最終結果 |
配置修改需要重新啓動 autoexec;發送 SIGHUP 不會熱重載配置。策略權重與文件限制見進化策略與邊界,本頁集中處理運行、隊列與恢復。
接入常駐運行
- 配置所選 home 的
autoexec/config.json,只加入已批准的 allowedRoots。 - 核對執行器的真實支持,配置超時和工作流驗證命令。
- 先在前台有限時間觀察隊列與日誌,確認慢週期不會疊加。
- 分別啓用所需 Hub 與外部行為,再配置受管服務。
- 記錄服務所屬用户、home、日誌、重啓方式和恢復負責人。
空白白名單禁止執行;常駐進程存活不能證明任務完成。
停止與恢復
停止對應進程或受管服務後,檢查週期、隊列、未完成提交和遠端狀態。保留能繼續的成果,只重試未完成部分。Git 恢復不能撤銷遠端副作用;先對賬再重啓。
持續循環不自動擴大權限、不自動授予資產發佈資格,也不會讓另一個 Agent 應用自動消費終端輸出。