為什麼會有這個專案
事情很簡單。
我們的開發節奏太快,任務根本排不完。Judy 白天要做決策、開會、處理各種突發事件,沒有辦法盯著 AI Agent 跑任務。所以我們開始讓 Agent 自己在夜間工作。
一開始很克難——一個 shell 腳本,叫 Claude Code 跑幾個任務,睡覺,早上起來看結果。
但這個模式有問題:
- 速率限制打到一半任務就停了
- 只有一個 Agent,瓶頸很快就出現
- Agent 做完一件事不知道接下來做什麼
- 沒有任何可見性,不知道夜裡到底發生了什麼
所以我們開始一點一點補洞。加 PID 鎖定防重複啟動,加速率限制處理,加多 Agent 協調,加跨 Agent 通訊協定,加儀表板…
30 個夜班之後,那個克難腳本變成了一個有架構的框架。
今天,我們把它開源。
這是什麼,不是什麼
是什麼: 一個協調多個異質 AI Agent 在離線時段自主協作的執行框架。
不是什麼: 不是 AI Agent 本身(它不內建任何 AI),不是聊天機器人,不是又一個 LangChain 替代品。
核心差異只有一個:市面上大多數工具跑單一 Agent,AI Night Shift 設計來跑多個不同種類的 Agent,讓它們互相溝通、分工、在你不在的時候把事情做完。
架構概覽
| |
設計原則很直白:每個 Agent 知道自己要做什麼,也知道怎麼跟其他 Agent 溝通,框架負責協調,不負責思考。
思考的事交給 Agent。
跨 Agent 通訊怎麼運作
這是我們覺得最值得解釋的部分。
每個 Agent 都能讀寫 night_chat.md 這個文件。規則很簡單:
| |
就這樣。沒有 API 呼叫,沒有訊息佇列,沒有複雜的協定。一個 markdown 檔案,所有 Agent 都看得到,都能寫入,就構成了最基本的協作迴路。
bot_inbox/ 則用來做更結構化的任務派發:
| |
任何 Agent 或外部系統都可以往這裡丟任務檔,目標 Agent 在下一輪巡邏時自動撿起來執行。
快速開始
| |
設定檔的核心結構:
| |
五分鐘就能跑起來。
主要功能
多輪執行 不是跑一次就結束,而是按設定的輪次循環執行。每輪結束後評估狀態,決定繼續、暫停還是叫醒人類。
速率限制處理 偵測到 429 或速率超限時自動退避,按指數增長等待後重試,不會把整個夜班打斷。
PID 鎖定 防止同一個夜班腳本被 cron 重複啟動,避免 Agent 撞車。
插件系統 內建插件介面,可以加入任何 CLI 型 Agent,不鎖定供應商。
Prompt 模板 把任務描述從腳本邏輯中分離,夜班跑什麼任務靠模板控制,改任務不用改程式碼。
自動報告 每個夜班結束後自動產出結構化報告:做了什麼、出了什麼問題、明天繼續什麼。
Dashboard 即時顯示 Agent 狀態、任務進度、錯誤計數。早上起床第一件事,看 Dashboard。
四語言文件
文件提供英文、繁體中文、簡體中文、韓文四個版本:
我們把文件本身也當成產品在做。你能看懂這篇文章,就能看懂文件。
真實的使用情境
我們自己每天在用的幾個場景:
深夜部署 白天做的功能,夜間讓 Claude Code 跑測試、建置、部署。早上進來看報告,確認沒問題。
研究整理 市場資料、競品分析、技術調研,派給 Gemini CLI 在夜間跑完。隔天 inbox 裡有一份整理好的摘要。
程式碼審查 + 修正 一個 Agent 改程式,另一個做 review,有問題留在 night_chat.md,下一輪改完再 review。完全自動。
多策略回測 交易策略的參數掃描跑起來要好幾個小時。夜班跑完,早上有結果,不佔白天時間。
MIT 授權,你可以怎麼用
- 直接整合進你的開發流程
- Fork 並修改成符合你需求的版本
- 用插件介面接入你自己的 Agent
- 商業使用沒有限制
唯一的要求是保留授權聲明。
接下來要做什麼
我們已經在跑的下一步:
- Web UI:目前 Dashboard 是純文字,下一個版本要做瀏覽器介面
- 更多 Agent 插件:OpenAI、Ollama 本地模型的官方支援
- 任務佇列 UI:可視化管理 bot_inbox 任務
- Webhook 觸發:讓外部事件(如 PR、alert)能直接觸發夜班任務
如果你有想要的功能,開 Issue 跟我們說。
去試試看
GitHub:JudyaiLab/ai-night-shift
如果這個專案對你有用,star 一下讓我們知道。如果你用它做了什麼有趣的事,開個 Discussion 分享。如果你發現 bug 或有改進想法,PR 永遠開著。
我們把自己依賴的工具開源出來,是因為相信多 Agent 協作這件事值得更多人嘗試。
單一 Agent 已經很強了。讓它們分工,會更強。
— J,代表 Judy AI Lab 團隊