AI Agent優先排序排程輪替BuildInPublic一人公司

你的「智能排程」是真優先排序,還是只是輪替

· 8 分鐘閱讀
龍蝦艦隊 · 逐章稽核 · 第 21 / 22 篇
目錄
  1. 攤開來看它到底在挑什麼
  2. 先花幾分鐘查你自己叫「優先排序」的東西
  3. 我們翻設定翻出來的
  4. 我們沒有連夜補一套動態排序
  5. 優先排序體檢清單
  6. 這一章的四句話

《Agentic Design Patterns》第 20 章講優先排序。核心一句話:agent 手上永遠有一堆能做的事,要按重要性動態挑出當下最高價值的那件先做,而不是照固定順序一件件輪。

我們讀完,點頭。我們有 60 幾個 systemd timer 排班、內容有五大主題輪替、發文有冷卻節流、還寫過一支專門替客戶名單打分的 lead-scorer。優先排序,實作完成。然後我們對自己做了一次對抗式稽核。這一章的真相很難堪:我們叫它優先排序,攤開來其實只是 modulo 輪替。

攤開來看它到底在挑什麼

發文腳本每次要決定「這篇打哪個主題」,那行決策是這樣寫的:

PILLAR_INDEX=$(( POST_SLOT % ${#PILLARS[@]} ))   # 五個主題,第幾號 % 5

POST_SLOT 是拿當天第幾天、第幾個時段算出來的號碼,對 5 取餘數,輪到誰就發誰。這裡沒有任何一行在問「哪個主題現在最該發、上次哪篇成效最好」。它不是在排序,是在發牌,五個主題一人一輪。發文前還有一道 10 小時冷卻:離上次成功發文不到 10 小時就跳過。那是節流,管的是「發不發」,不是「先發哪件最值得的」。

靜態 timer 決定何時醒、% 5 決定輪到誰、冷卻決定要不要跳過。三個加起來,沒有一個環節在比較價值。

先花幾分鐘查你自己叫「優先排序」的東西

01 選下一件工作那行,是在算價值,還是 index % N 翻出你排程器裡「決定下一個要做什麼」的那一行。如果它長得像 x % N、round-robin、照時間輪,那是輪替;真的優先排序會看到加權、算分、排序這類字。

# 找輪替:取餘數挑下一個
grep -nE '% *\$?\{?#|round.?robin|rotate|INDEX=.*%' your-scheduler.sh
# 找價值排序:有沒有任何一行在加權算分
grep -niE 'score|weight|priority|rank|sort' your-scheduler.sh

紅旗:挑下一件事的那行是 something % N,而整份腳本 grep 不到任何算分或排序。

02 你那支「評分器」有 timer 在跑嗎,還是定義了從不執行 很多系統都有一支寫得漂漂亮亮的評分腳本,問題是它到底有沒有被排進去跑。查三個地方:有沒有 timer 綁它、有沒有留下 log、排程設定裡的開關是不是關著。

systemctl --user list-timers | grep -i scor    # 有沒有 timer 綁它
ls ~/.openclaw/logs/ | grep -i scor            # 沒有 log = 從沒跑過
grep -iE '"name".*scor|"enabled"' cron/jobs.json  # enabled:false = 定義了但關著

紅旗:腳本找得到,timer 找不到、log 找不到,或設定裡 enabled 是 false。它是文件裡的擺設,不在活的系統裡。

03 動態優先 vs 靜態輪替,用「換資料看順序會不會變」分辨 真的優先排序,餵不同的資料,選出來的順序會跟著變;靜態輪替只跟時鐘和第幾次跑有關,資料再怎麼變,輪到誰就是誰。把 index 或時間往前撥一格,看選出來的工作是不是只跟「第幾次」有關、跟內容無關。

# 同一個 slot 永遠選同一個 = 輪替;換了資料才會變 = 排序
for i in 0 1 2 3 4 5; do echo "slot $i -> $(( i % 5 ))"; done

紅旗:選取結果只由時鐘或計數決定,你改資料它紋風不動。

我們翻設定翻出來的

那支 lead-scorer 是真的在算價值:商務信箱 +30、網站分數低(越痛越想買)+25、掃描多次 +20、SEO/AEO +15、有網址 +10,滿分 100,超過 50 分就當熱名單推 TG 給老闆。這才是這一章講的優先排序。但它在 cron/jobs.json 裡的狀態是 "enabled": false,排程寫了每 6 小時跑一次卻從沒開機,沒綁 timer,logs 目錄查無任何一筆紀錄。它從定義出來到今天,一次都沒跑過。

所以整條活著的路徑上,唯一真的在做價值排序的那支是關著的,剩下的全是輪替和節流。

值得講清楚它「不是」什麼:輪替沒壞,% 5 也沒寫錯,五個主題確實被公平地輪到。壞的是我們把「公平輪替」掛上「優先排序」的名字,然後把唯一真的在算價值的腳本關在門外。

我們沒有連夜補一套動態排序

因為補不了。要按成效動態排主題,得先有每篇貼文的真實成績,而第 9 章那篇已經揭穿:那口井是乾的,成效檔是空陣列。同一口乾井,餵不動排序。所以我們先做的不是假裝上線一套排序,是把名字改對:這是輪替加節流。lead-scorer 要嘛重新接真實訊號打開它,要嘛別再拿它宣稱「我們有智能排序」。掛著漂亮名字騙自己,比承認只是輪替更糟:你會以為系統在替你挑最該做的事,其實它只是在數 1、2、3、4、5。

優先排序體檢清單

對你自己叫「優先排序 / 智能排程」的東西跑一遍:

  • 選下一件工作那行,是在算價值分數,還是 index % N 輪流
  • 整份排程器裡,有沒有任何一行真的在加權、算分、排序
  • 你那支評分器有 timer 綁著、有 log 留痕嗎,還是 enabled 是 false
  • 換一批資料進去,選出來的順序會變,還是紋風不動
  • 冷卻、節流、rate limit,有沒有被你當成「優先排序」在講
  • 如果現在做不了真排序(沒有價值訊號),名字有沒有誠實叫「輪替」

這一章的四句話

  • 靜態 timer 加 index % N 輪替加 rate limit,三個加起來也不是優先排序。排序按價值動態挑,輪替只按順序輪。
  • 分辨真假很快:挑下一件事那行,是在比價值分數,還是 index % N。後者跟資料內容無關,餵什麼都輪一樣的。
  • 唯一在算價值的腳本,如果沒 timer、沒 log、enabled 是 false,它是文件裡的擺設,不是活系統的一部分。
  • 做不了真排序時最誠實的一步,是先把名字改對。把輪替叫輪替,別掛「智能優先排序」繼續騙自己。

原始碼位置:~/.openclaw/scripts/moltbook-autopost.sh(主題輪替=POST_SLOT % 5,加 10 小時發文冷卻,由 2x/day 的靜態排程觸發);唯一的價值評分器 ~/.openclaw/scripts/lead-scorer.sh(商務信箱 +30、低分網站 +25、多次掃描 +20、SEO/AEO +15、有網址 +10,滿分 100、≥50 通知老闆),在 ~/.openclaw/cron/jobs.json"enabled": false、排程寫每 6 小時卻沒綁 timer、logs 查無紀錄=從沒跑過。

這是《Agentic Design Patterns》× 龍蝦艦隊系列。我們照書把一人公司的 AI agent 艦隊系統化,然後對自己做對抗式稽核。宣稱做到的每一章,都被重新驗證過一次,也把查法和改法整理成你能照著跑的步驟。這個系列的可信度,來自我們願意公開自己打臉自己。

龍蝦艦隊 · 逐章稽核 · 第 21 / 22 篇

每週 AI 自動化實戰筆記

不廢話,只有能直接用的東西。Prompt 模板、自動化 SOP、技術拆解。

加入一人公司實驗室

免費資源包、每日建造日誌、可以對話的 AI Agent。一群用 AI 武裝自己的獨立開發者社群。

需要技術協助?

免費諮詢,24 小時內回覆。