通用 Agent 已經很強了。使用者可以在 Codex、Claude 或其他 Agent 裡整理文件、修改程式、查資料,再連接不同工具完成任務。
這讓垂直應用遇到一個很直接的問題:還需要做自己的 Agent 嗎?
如果使用者已經有熟悉的 Agent,為什麼要在每個應用裡重新建立對話、重講一次背景?但如果垂直應用只提供一組工具給外部 Agent,它又很難深入產品裡特有的工作狀態與流程。
我在設計 Lantide 時,最後的答案是兩者都要,但負責不同的事。
外部 Agent 保留自己的推理與規劃能力,Lantide 提供可搜尋的資料分析工具;內建 Agent 則由 Lantide 掌握執行迴圈,透過狀態機深入分析工作流。兩個入口最後接入同一個 Control Plane,操作相同的資料、SQL、Plan、結果與報告。
外部 Agent 不需要再學一套工作方式
外部 Agent 最大的價值是通用。
使用者原本的對話裡可能已經有需求、文件、程式碼和其他系統的資訊。任務走到資料分析時,應該直接使用 Lantide,而不是把所有背景搬進另一個聊天框。
因此,Lantide 透過 MCP 對外提供能力。外部 Agent 自己決定如何拆解任務,Lantide 負責告訴它有哪些工具、目前的工作區狀態,以及什麼操作需要確認。
這裡有一個現實問題:工具會愈來愈多。
早期版本在 Admin 模式一次提供 114 個工具,名稱、說明與參數結構合計約 158 KB。功能很完整,但 Agent 每次連入都要先面對整本目錄。
我後來把入口收斂成 25 個核心工具,其餘能力在需要時搜尋。Agent 想做統計、修改 HTML 報告或管理資料來源時,先用自然語言找到相關能力,再依傳回的 schema 呼叫。初始工具說明降到約 29 KB,底層功能沒有因此刪除。
外部 Agent 已經有自己的 loop。Lantide 沒有必要在 MCP 後面再藏一個 Agent 指揮它,而是把自己做好成一個能被通用 Agent 使用的資料分析環境。
內建 Agent 的價值是理解產品狀態
外部 Agent 能操作 Lantide,不代表內建 Agent 就沒有價值。
當使用者直接在 Lantide 工作,產品知道目前開著哪個工作區、聚焦哪個專案、正在自由探索、規劃分析,還是執行已核准的 Plan。這些狀態會決定當下合理的操作。
所以內建 Agent 使用狀態機。
規劃時,它可以檢查資料、釐清方法並建立 Plan;進入執行後,才取得正式執行 SQL、記錄進度與建立報告的工具。當操作改變專案或 Plan 狀態,工具與 prompt 也會在同一輪更新。
狀態機不負責替模型分析。模型仍然決定要查什麼、怎麼拆解問題。狀態機負責讓它知道自己正在哪個工作階段,以及這個階段有哪些邊界。
內建 Agent 也能直接配合介面。它建立 SQL,使用者就看到新的分頁;執行完成,結果會進入工作區;需要確認,流程就在畫面上暫停。這種深度整合很難只靠一份對外工具說明完成。
兩個 Agent,不能有兩套領域規則
同時支援內外部 Agent,最容易犯的錯是各做一套。
兩套工具、兩套權限、兩套文件格式,短期看起來比較快,最後一定會分歧。使用者換一個入口,前面的工作就接不起來。
所以我把差異留在 Agent 層,把領域規則收回 Lantide。
內建 Agent 有自己的狀態、Ask/Agent 模式與對話確認;外部 Agent 有 MCP Access Mode、session 與執行審批。兩者的入口治理不同,但最後都接入共用的工具定義、領域服務與成果契約。
我把這一層稱為 Control Plane。它管理工作區狀態、操作權限、確認要求、分析物件與執行紀錄,再把工作交給底層的查詢、資料來源與文件服務。
外部 Agent 建立的 SQL 和報告,可以回到 Lantide 繼續查看與修改;內建 Agent 也能接著處理同一份成果。兩邊管理資料來源時,更新的是同一份狀態。外部 Agent 正在寫入時,內建 Agent 會暫停,避免同一個工作區被同時修改。
真正讓兩個 Agent 接得起來的不是共享聊天記憶,而是共享工作成果。
垂直應用應該掌握什麼?
通用 Agent 愈成熟,垂直應用愈不需要重做通用 Agent 已經擅長的能力。使用者應該能帶著自己的 Agent、上下文與工作方式進來。
但垂直應用仍然要掌握自己的工作世界:有哪些重要物件、工作如何推進、哪些操作需要確認,以及什麼才算完成。
Lantide 的分工因此很清楚:外部 Agent 提供廣度,內建 Agent 提供領域深度,Control Plane 保證兩者操作同一套資料與成果。
這套設計也有成本。每項能力都要考慮內建狀態與外部權限,兩個入口都要驗證,工具搜尋和狀態路由也各有失敗方式。但這些成本買到的不是多一個聊天框,而是讓 Lantide 同時成為一個完整的分析產品,以及一個通用 Agent 可以使用的分析環境。
對垂直應用來說,問題已經不是要不要做 Agent,而是產品要把哪一層留在自己手上。
我的選擇是:Agent 可以決定如何思考與規劃;Lantide 必須定義工作如何發生,以及什麼才算完成。