MarsDawn

Anthropic 把 workflow 和 agent 分開來看,你的閱讀落在哪一邊?

Anthropic 在 2024 年 12 月發表的〈Building Effective Agents〉,是寫給打造 AI agent 的人看的指南。一開頭就把「workflow」和「agent」分開,接著建議先從能用的最簡單做法開始——也可能完全不需要 agentic 系統——只有在這樣還不夠的時候,才用得上它整理出的五種 workflow 模式。其中一種模式,是讓另一次 LLM 呼叫坐上審查者的位置。這篇要談的就是這種模式,以及另外四種模式各自會留下什麼給你讀。

指南主張什麼

Erik S. 與 Barry Zhang 寫這篇文章,是給正在決定怎麼用 LLM 打造系統的工程師看的。文章一開頭先下了一個定義:

“Workflows are systems where LLMs and tools are orchestrated through predefined code paths. Agents, on the other hand, are systems where LLMs dynamically direct their own processes and tool usage, maintaining control over how they accomplish tasks.”

(Workflow 是 LLM 和工具透過事先寫好的程式路徑被安排執行的系統;相對地,agent 則是 LLM 自己動態決定流程、自己決定怎麼使用工具、掌控自己怎麼完成任務的系統。)

接著,他們的建議很克制:

“When building applications with LLMs, we recommend finding the simplest solution possible, and only increasing complexity when needed. This might mean not building agentic systems at all.”

(用 LLM 打造應用程式時,我們建議先找出最簡單可行的做法,只有在真的需要時才增加複雜度。這可能代表根本不需要打造 agentic 系統。)

需要更多結構的時候,他們描述了五種 workflow 模式:prompt chaining(把任務拆成一連串呼叫,步驟之間可以加檢查)、routing(路由)、parallelization(平行化)、orchestrator-workers(一個 LLM 把任務拆給多個 worker LLM 執行,再把結果合起來),還有 evaluator-optimizer。最後這一種,原文是這樣寫的:

“In the evaluator-optimizer workflow, one LLM call generates a response while another provides evaluation and feedback in a loop.”

(在 evaluator-optimizer workflow 裡,一次 LLM 呼叫產生答案,另一次呼叫則在迴圈裡負責評估、給回饋。)

Anthropic 在這份指南裡完全沒有提到 MarsDawn,也沒有推薦任何 Markdown 工具。這份指南談透明和「檢查點」的部分,〈Anthropic 說 agent 要透明,那攤開的東西誰來讀?〉已經完整談過,這篇不再重複;那篇談人工審閱 code 的那句話,來自附錄裡專門講 coding agent 的段落,脈絡也在那篇文章裡。

以下是我們的解讀,不是 Anthropic 的

Anthropic 沒有說 workflow 跑完之後誰來檢查最終結果,這整篇也不是在談文件,而是給打造 agent 的人的架構決定。但這五種模式,會留下給你讀的東西並不一樣。Prompt chaining 和 routing 通常是看不見的管線;就算有東西送到你手上,也只是這條鏈最後一次呼叫的輸出,跟其他單次回答沒兩樣。Orchestrator-workers 就不同了:如果你的 coding agent 內部用的是這種模式,落進你資料夾的可能是一份由好幾個 worker 呼叫拼起來、再由 orchestrator 組合成的文件,其中一個 worker 那一段出了錯,很容易被整體讀起來很順的摘要蓋過去。

Evaluator-optimizer 特別值得停下來想一下,因為指南把原本可能由人來坐的審查者位置,換成了另一次 LLM 呼叫。這確實能便宜地抓到一類錯誤,但終究還是模型照著某組標準去檢查模型,這個系列裡也有作者提過這個顧慮:模型評判自己或另一個模型的成果。指南完全沒有說要有人再覆核 evaluator 的判斷,它根本沒表態。如果你才是最後要讀這一切的人,「迴圈通過了」和「我自己查過了」不是同一句話——就算你手上的檔案兩種情況看起來一模一樣。

MarsDawn 幫得上、幫不上的地方

MarsDawn 不知道一份檔案是哪種 workflow 模式做出來的,裡面也沒有 AI 模型——它不會自己跑一次 evaluator 步驟,也沒辦法告訴你 Anthropic 描述的那個評估到底做得好不好。它做的是:側邊欄(「顯示方式 ▸ 顯示側邊欄」,⌃⌘S)的「大綱」分頁列出一份 orchestrator 拼出來的長檔案的所有標題,點一下就跳過去;原始碼和排好的頁面並排(⌘2),一起捲動,Mermaid 圖表和 KaTeX 數學式都直接畫出來。agent 讀到一半改寫檔案的話,MarsDawn 會重新載入,停在你原本讀到的位置,前提是你自己沒有未儲存的修改。「編輯 ▸ 拷貝引用」(⌥⌘C)把你的位置拷貝成 docs/plan.md:42,直接貼回 agent 的對話裡就好。

試試看

MarsDawn 已在 Mac App Store 上架。免費的 marsdawn 命令列工具現在就能用:

brew install redtear1115/tap/marsdawn

它不需要 app 就能把 Markdown 輸出成 PDF。

命令列工具 · 買之前先看:MarsDawn 做不到的事

接下來

資料來源