版本與診斷
四條指令能回答掉幾乎所有「它怎麼會這樣」,三樣東西能讓幾乎任何一份回報變得可以回覆。
這是哪一版
手機端與管理台上,它在「關於」那一頁。「最新」不是一個版本號。同樣是 1.0.2 的兩次建置,行為可以不一樣 —— 這也正是這個網站每一頁頁尾都印著建置戳記的原因。
這台機器現在能不能用
把那些必須成立的事情過一遍:有沒有工作區、Agent 在不在執行、有沒有裝一個用得了的 Runtime、權限允不允許你要做的事。它回答的是整個問題,而不是其中一塊。
為什麼什麼都沒發生
幾乎總是這三件事之一,依這個順序查:
- Agent 沒在執行。
icloser agents會顯示誰在執行、各自繫結在哪個工作區上。沒有東西在執行,就沒有東西會接這條任務。 - 有在執行,但繫結在另一個工作區上。
一樣是
icloser agents。在管理台裡切換工作區改的是設定,而 執行體 是啟動的那一刻繫結它的工作區的。切換了卻好像沒反應時,先看這一條,其他都先放一邊。 - 它接了,然後停下來要權限。
icloser perms顯示這台裝置可以做什麼,icloser approval list顯示什麼正在等你。一條停下來詢問的任務是正確的 —— 它在動手之前就停住了,所以等待的這段時間裡沒有任何東西是做到一半的。
它一直在說什麼
常駐 Agent 的最近幾行。加上 -f 可以持續跟看。
回報問題
三樣東西能讓幾乎任何一份回報變得可以回覆。少了它們,第一句回覆只能是「請補上這三樣」。
- 版本與建置編號
icloser version,或是「關於」那一頁。 - 任務 id
寫在那條任務自己的卡片上。有了它,我們能指著時間軸和變更說話,而不是照著一段描述猜。
- 你以為會發生什麼,實際發生了什麼
分開寫。「它不會動」把這兩件事壓成了一件,而丟掉的正是要緊的那一半。
寄到哪裡:支援。
出問題了 —— 先敲哪一條
四條指令,四種不同的處境。抓錯一條不是沒事:其中兩條只讀,另外兩條會真的改動你的機器或你的佇列。
什麼時候用它 「我這台機器現在能不能用」—— 在你開始猜原因之前先敲的那一條。
它到底做了什麼 把「同時必須成立」的那幾件事一趟過一遍:裝的是哪一版、閘道答不答話、這個工作區的憑證還管不管用、執行體到底在不在跑、這台機器搆得著哪幾家Runtime。它只讀,什麼都不改。
什麼時候用它 員工說他做不了一件他本該做得了的事 —— 編譯、跑測試、出套件。
它到底做了什麼 探測這台機器上的開發工具鏈(Go / Java / Android / Xcode / Node …),逐個說出在不在、是什麼版本。它只跑 --version 和 which:不消耗模型額度、不碰工作區憑證,所以一台還沒設定過的機器上它也答得出來。
什麼時候用它 probe 剛告訴你缺了什麼,而你不想一個個去找安裝套件。
它到底做了什麼 照 probe 探出來的缺口,用這個平台自己的套件管理員補齊。它是同一對裡會寫的那一半 —— 先跑 probe 看清楚,因為這條會真的改動你的機器。
什麼時候用它 一條任務一直掛在「執行中」而什麼都沒發生 —— 認領它的那台機器關了、睡了,或者執行體跑到一半被換掉了。
它到底做了什麼 把那條任務放回佇列,讓任何一台合格的執行體接走。任務 id 不變。這是「認領之後沒有出口」那個死局的出口 —— 原本只有認領它的那台機器能收尾,而那台機器已經不在了。
對已經發出去的任務下手
每一條都認 icloser task list 印出來的短 id,不用你去別處找全長的。每一條打完還會把伺服器給的新狀態讀回來印出去 —— 所以「這條任務此刻不能暫停」不會長得和成功一模一樣。
| 指令 | 它做什麼 |
|---|---|
| icloser task cancel <id> | 停掉它。正在跑的那一趟會在執行體下一次心跳時停下來 —— 伺服器殺不了你機器上的行程。 |
| icloser task pause <id> | 先按住。不丟進度:resume 之後同一條任務接著做,不是重頭來。 |
| icloser task resume <id> | 讓一條暫停的任務繼續。 |
| icloser task retry <id> | 同一條任務(id 不變)放回佇列重跑。它會真的起 Runtime,消耗你自己的模型額度。 |
| icloser task recover <id> | 把一條卡住的認領交還佇列。沒人在管它了的時候用這條 —— 見上面那一節。 |
| icloser task followup <id> "你要補充的話" | 給同一條任務追加指令,不是新開一條。執行體會帶著它接著做。 |
| icloser task accept <id> | 確認這份交付。這是整條鏈路上屬於人的那一下。 |
| icloser task choose <id> <你選的那一項> | 回答一條停下來問你「走哪條路」的任務。你的選擇寫回同一條任務並續跑。 |
| icloser task archive <id> | 把它挪開。什麼都沒銷毀。 |
| icloser task unarchive <id> | 把封存的任務放回列表。 |
| icloser task delete <id> --yes 要 --yes | 從列表裡徹底消失 —— 連 --all 也找不回來。 |
表往旁邊拉 →
retry(它真的會重跑),這些都不問任何 Runtime —— 其餘只是把任務在狀態之間挪一下。