Day 30:格式與排版的自動校對 結尾留下一句話,四類 Agent 各自的職責邊界、評判標準、查核機制到 Day 30 全部定案完畢,但它們目前為止都還是分別被個別打造與驗證,實際串接成一條生產線之後,彼此之間要怎麼依序或並行銜接而不互相干擾,這件事今天還沒有答案,將在下一篇正式揭曉。今天要正式回答這件事。
規劃代理人、寫作代理人、視覺代理人、審查代理人,四類 Agent 到 Day 30 全數正式展開完畢,各自的職責邊界劃清楚了,各自的評判標準與查核機制也都定案了。但這四個角色目前為止都是分別被個別打造與驗證的,每一篇技術細節篇章談的都是單一 Agent 內部怎麼運作,沒有一篇真正把四者放在同一張系統圖上,討論彼此之間訊息與狀態要怎麼流動。今天要處理的正是這件事。
今天是階段七的開場,這個階段刻意壓縮為三天,聚焦在串接邏輯、錯誤重試機制、多平台格式轉換與發佈,不重複闡述任何一個 Agent 本身的職責,因為那些已經在階段三到六講完。這三天的任務是把已經存在的四個獨立單元組裝成系統,敘事重心從「單一 Agent 怎麼做」轉為「系統怎麼串」。
今天的任務範圍也要先畫清楚。本篇只設計四類 Agent 之間正常路徑下的工作流編排邏輯,也就是每個環節都正常運作、正常產出時彼此如何依序或並行銜接。如果某個環節呼叫失敗或產出不符規格,這種異常路徑今天不處理,留給 Day 32。成品完成之後要怎麼轉換成不同平台格式並發佈出去,這也不是今天的範圍,留給 Day 33。今天要走的,僅僅是四個角色之間的協作編排本身。
在設計具體編排邏輯之前,有一段話需要先重新攤開。讀者可能已經讀過二十七天技術細節篇章,中間隔了整整階段三到階段六,Day 03:拆解寫作工作流,規劃、撰寫、視覺、審查的四種角色 當時定案的交接關係雛形,很可能已經模糊。這裡值得完整重述一次。
規劃代理人是整條工作流的起點。它的產出是後續所有角色工作的依據,寫作代理人不會憑空自己決定今天要寫什麼,而是依照規劃代理人已經定案的產出規格展開。
寫作代理人與視覺代理人之間,關係比較特殊,是協同而非單純的先後接力。寫作代理人產出文字內容的過程中,視覺代理人可以依據已經成形的文字或數據內容,同步或隨後產出對應的視覺素材。兩者不必嚴格排隊等待對方完全做完才輪到自己動工,最終目標是把文字與圖表整合成一份圖文並茂的完整草稿。
審查代理人的介入時間點,在前面三者都已經產出實際成果之後,也就是文字草稿與視覺素材都已經存在、可供檢視的階段,審查代理人才開始工作,而不是在規劃或撰寫過程中途介入插手。
審查代理人查出問題之後,修正的交接方向一律回頭指向對應的上游角色。內容層面的問題回頭交給寫作代理人,結構或規格層級的問題回頭交給規劃代理人,視覺呈現的問題回頭交給視覺代理人。
這幾句話定了四個角色之間先後與交接的方向,但 Day 03 當時同一篇文章緊接著明確聲明了一段留白,這裡刻意不去描述交接時具體用什麼格式、什麼檔案、什麼方式傳遞,那些屬於後面才要處理的問題,今天只確立這個先後順序與交接方向本身。
這句話擱置了二十八天,今天正是要回頭兌現的時候。Day 03 畫出的是一張只有箭頭方向、沒有標示箭頭上訊號燈怎麼運作的流程圖,箭頭指向誰、先後順序是誰接誰,這些都確立了,但箭頭本身怎麼觸發、下游怎麼知道輪到自己動作,這塊空白從 Day 03 保留到今天。今天要做的,是在每一個箭頭上裝上訊號燈,決定什麼時候該亮綠燈讓下一棒開始動作。訊號燈裝上去之後,箭頭指向的方向和順序完全沒有改變,改變的只是原本沒有名字、沒有具體機制的空白箭頭,現在有了具體可以運作的判斷依據。
需要先強調一件事,今天新增的只是角色之間互相知道彼此狀態、決定何時動作的機制,不是重新分配職責,也不是引入任何第五個角色。編排邏輯的執行主體,仍然是四類既有 Agent 各自監看彼此的狀態,沒有另外找一個調度者站在四者之上發號施令。
Day 03 留白的那塊,具體拆開來看,其實是三個各自獨立又彼此銜接的問題。第一,規劃代理人產出後,下游怎麼知道可以開始。第二,寫作代理人與視覺代理人協同時,怎麼同步進度。第三,審查代理人怎麼知道可以介入。三個問題依序回答。
第一個問題,規劃代理人產出 Day 04:規劃代理人的產出介面,認識 Section Spec 定案的 Section Spec 之後,寫作代理人與視覺代理人要如何知道可以開始工作。設計方向是,規劃代理人完成 Section Spec 之後,把這份規格寫入某個雙方都能存取的共享位置,並同步標記一個明確的完成狀態旗標。寫作代理人與視覺代理人各自監看這個狀態旗標,一旦偵測到規劃階段已標記完成,即可各自依規格內容開始展開工作,不需要人工另行通知或口頭交代。這個畫面好比工廠生產線上把半成品放上輸送帶時貼上一張完工標籤,下一站的工人看到標籤才會伸手去拿,不需要有人跑過去口頭通知。
第二個問題,承接 Day 03 定案寫作代理人與視覺代理人是協同而非單純接力的關係,兩者要如何同步或交換彼此的進度。設計方向是,兩者各自在工作過程中,把已完成的段落或已產出的視覺素材各自標記進度狀態。寫作代理人每完成一個可供視覺代理人參考的文字或數據段落,即更新一次進度標記,視覺代理人監看這個進度標記,決定何時針對哪一段內容開始產出對應素材。反過來,視覺代理人若因某段文字描述不足而暫時無法產出對應圖表,也可以標記這個等待狀態,讓寫作代理人知道這裡需要優先確認或補強。兩者透過這組進度狀態互相參照,但誰都不越界修改對方的產出,維持 Day 03 定案的職責邊界。這好比兩位協同作業的工匠,各自在共用的看板上更新自己做到哪裡,對方隨時可以抬頭看一眼看板決定下一步動作,不需要停下手邊工作走過去問對方進度。
第三個問題,審查代理人要如何知道前三者都已經產出實際成果、可以開始介入。設計方向是,審查代理人監看寫作代理人與視覺代理人兩者的進度狀態,唯有當兩者都各自標記為完成,審查代理人才開始介入查核。這個判斷邏輯直接呼應 Day 03 定案的介入時間點原則,前面三者都已產出實際成果之後才開始工作,只是把這個原則具體落實成一套可以被系統判斷的狀態依據,而不再只是抽象的先後順序描述。這好比品管人員要等生產線兩條並行的支線都送出成品匯合之後才開始檢驗,不會在其中一條支線還在運作時就提前抽驗。
把這三個答案收在一起看,這套編排邏輯的本質,是把 Day 03 抽象的先後順序與交接方向,轉譯成一套角色之間可以互相偵測、互相依據來決定自己何時該動作的具體規則。沒有引入任何新的角色,也沒有改變既定的職責邊界,改變的只是原本空白的箭頭,現在裝上了訊號燈。
三個觸發、同步、介入的問題有了答案,還有一個問題必須正面處理。審查代理人查出問題之後,修正的交接方向一律回頭指向對應的上游角色,這是 Day 03 已經定案的方向。但如果打回的是規劃代理人層級的問題,也就是規格本身出了差錯,寫作代理人與視覺代理人依據那份有問題的規格已經完成的工作,究竟要整個作廢重來,還是可以局部保留?這件事直接關係到工作流設計是否有效率,必須正面回答,不能含糊帶過。
答案依規格修正的範圍大小決定處置方式,不是一律作廢,也不是一律保留。這個判斷可以想像成一棟建築物某一個房間的設計圖需要修改,其他房間已經蓋好的部分不需要因此全部拆掉重蓋,只需要針對那個房間回頭調整。但如果修改的是整棟建築的地基或主結構設計,其他房間即使已經蓋好,也可能因為結構關聯而需要重新檢視甚至局部拆除。
具體拆成兩種情況。若審查代理人指出的規格層級問題,只涉及規格中的某個段落單元,例如某一節的核心目標或段落安排出現偏差,其餘段落單元的規格並未受影響,則寫作代理人與視覺代理人已針對其他不受影響段落完成的文字與視覺素材,理論上可以局部保留,只需要針對受影響的段落單元回頭依修正後的規格重新展開對應部分的工作。若審查代理人指出的規格層級問題,涉及全篇核心目標或整體結構安排本身出現偏差,影響範圍擴及多數段落單元,才需要考慮較大範圍甚至整篇重新展開。
這個判斷直接呼應 Day 03 病灶對照表裡零容錯結構一項的既定精神,不是憑空拍板,規劃代理人先把創作過程拆分成具備獨立邊界的產出規格與段落單元,審查代理人發現問題時只需精準指向對應段落與角色,不必要求整篇重寫。正是因為規格從一開始就被拆分成具備獨立邊界的段落單元,局部保留、局部重做這件事才在技術上可行。如果規格從一開始就沒有被拆分成具備獨立邊界的段落單元,就無從談論局部保留,只能整篇重來。
給出明確結論,工作流編排在設計回頭重做的處置規則時,延續的正是系列一路強調的精準指向對應段落原則,不因為問題發生在規格層級就退化成粗暴的整篇作廢。範圍局限在特定段落單元,就局部保留只重做受影響部分;範圍擴及全篇核心目標或整體結構,才考慮較大範圍重新展開。這件事之所以值得正面說清楚,是因為若一律整篇作廢,等於讓寫作代理人與視覺代理人先前投入的協同產出全部歸零,這樣的工作流設計談不上有效率,也違背系列一路強調的單一職責與精準指向對應段落的既定原則。

今天正面回答了 Day 30 留下的伏筆,四類 Agent 到齊之後要怎麼串成一條生產線。今天也正式回頭處理了 Day 03 當時刻意留白的那一塊,交接時具體用什麼機制傳遞、下游角色具體怎麼知道可以開始工作。規劃代理人產出 Section Spec 後寫入共享位置並標記完成狀態,寫作代理人與視覺代理人監看這個狀態各自開始工作,兩者協同產出圖文草稿時各自標記進度供對方參考,審查代理人監看兩者是否都已標記完成才開始介入。這套機制沒有改變 Day 03 定案的任何職責邊界,只是把抽象的先後順序與交接方向轉譯成一套角色之間可以互相依據的具體規則。
今天也正面回答了審查代理人打回規劃代理人規格層級問題之後,下游已完成的工作要不要整個作廢重來這個實際問題。答案是依規格修正的範圍大小決定,範圍局限在特定段落單元就可以局部保留只重做受影響部分,範圍擴及全篇核心目標或整體結構才需要考慮較大範圍重新展開,這延續的正是 Day 03 病灶對照表裡零容錯結構一項的既定精神。
但今天講的這一切,都是建立在每個環節的 Agent 都正常運作、正常產出這個前提之上的正常路徑。如果某個環節的 Agent 呼叫失敗,或是產出的結果不符合預期格式,這種異常狀況今天還沒有處理,將在下一篇正式揭曉。