Managed Deep Agents v0.10 新增瀏覽器與背景子代理:登入交給人,長任務怎麼接回?

Managed Deep Agents v0.10 新增遠端瀏覽器與非同步子代理。整理登入交接、對話與使用者範圍、共享沙盒、升級破壞性變更和 beta 限制。

Share
Managed Deep Agents v0.10 官方封面,同時呈現登入頁的 Hand back 按鈕與背景執行的 researcher 子代理。
LangChain 官方封面把瀏覽器登入交接與背景 researcher 子代理並列,對應 v0.10 的兩項新增能力。 圖片來源:官方原文。

Managed Deep Agents v0.10 處理兩種常見中斷:網站需要人登入,以及主代理必須等待長任務。你請代理改好網頁,下一步通常是打開瀏覽器確認,但網站若沒有程式介面,光讀網頁文字就很難把事情做完。

另一種等待發生在委派之後。主代理把研究或測試交給子代理,如果必須等它回來才能繼續對話,使用者連補充條件也得排隊。兩個問題分別卡在操作入口與工作交接。

LangChain 在 10 月 29 日發布這次更新,把瀏覽器操作與非同步子代理加入 LangSmith Cloud 的公開測試服務。前者能操作沒有 API 的網站,後者讓長任務在背景進行。

這裡的瀏覽器是遠端服務,不是直接接管使用者的電腦。代理可以把視窗交給人登入,等人交回再繼續。預設每個對話分開保存瀏覽器狀態,也能讓同一位已驗證使用者跨對話延續登入。

背景子代理則有自己的對話與推理內容,但會和主代理使用同一位使用者的沙盒檔案。分開執行不等於資料完全隔離,完成通知也不會替人回答尚未處理的核准。

這次更新的價值,於是落在工作怎麼接續:網站操作到哪一步交人、什麼狀態跨對話保留、子代理何時把結果送回。把這些連接點說清,才能判斷它是否適合自己的代理服務。

Managed Deep Agents 的瀏覽器,補上無 API 的操作入口

當網站沒有可直接呼叫的程式介面,代理需要看見實際頁面並操作它。API 是程式彼此交換資料或執行功能的入口,有合適 API 時,官方仍建議優先使用它。

Managed Deep Agents 的瀏覽器補上那些只能透過網頁完成的步驟,像在訂位頁填寫條件,或在程式改完後點過真正的表單。取得一份 HTML 原始碼,不一定看得到動態載入後的內容,也不能直接代表已點完操作。

設定上,開發者在專案根目錄宣告瀏覽器,服務就會加入讀頁面、操作、截圖與交接工具。預設閒置十分鐘後停止瀏覽器,避免沒有使用時仍持續占用資源。

瀏覽器在獨立的 LangSmith 沙盒執行。沙盒可以理解為替工作準備的隔離執行環境,這個入口不會讓代理直接取得你此刻正在使用的本機桌面。

核心觀察工具讀取頁面的無障礙樹,也就是按鈕、欄位與連結等結構,並給元素識別碼。操作工具再依識別碼執行動作,頁面換了或識別碼過期,就要重新觀察。

同一次操作也能包含一串動作,再只取回需要的結果。這減少把整個頁面反覆塞進模型內容的需求,但批次操作之後,仍要檢查最後狀態是否符合預期。

程式驗證則多一條私有連線:瀏覽器打開 localhost:5173 時,會連到代理沙盒內相應的埠號。這裡的 localhost 指代理工作環境,不是讀者的電腦,因此測試中的 App 不必先取得公開網址。

官方工具基於 Stagehand,並報告在一百項 WebVoyager 任務上通過九成、測試總費用 1.98 美元。這是公司指定設定的測試,不能當成一般任務固定報價或本刊重測結果。

Managed Deep Agents v0.10 官方封面,同時呈現登入頁的 Hand back 按鈕與背景執行的 researcher 子代理。
LangChain 官方封面把瀏覽器登入交接與背景 researcher 子代理並列,對應 v0.10 的兩項新增能力。 圖片來源:官方原文。

登入交給人,登入狀態仍要按範圍管理

把密碼從聊天訊息移到真正的登入頁,是瀏覽器交接的出發點。代理遇到登入、驗證碼或雙重驗證時,可以說明原因,讓人接手目前的視窗。

在人控制視窗時,代理的瀏覽器工具不能繼續對它操作。使用者完成登入後按 Hand back 交回控制,代理收到通知,再檢查頁面是否真的登入成功。

交接工具會立即返回,所以代理還能處理其他工作。交接連結十五分鐘後到期,這個時間限制只描述控制入口,不能因為連結到期就推論網站任務完成。

一個對話一個瀏覽器,或同一使用者延續登入

預設 thread 範圍讓每個對話有自己的瀏覽器,不繼承其他對話的 Cookie 或登入。Cookie 可以理解為網站保留登入等狀態的資料,所以新的測試對話可以從乾淨狀態開始。

改成 user 範圍時,同一位已驗證使用者的不同對話會共享登入與 Cookie,但各有自己的視窗。這能減少反覆登入,也避免兩段對話直接點同一扇視窗。

不過,分開視窗不等於分開帳號狀態。若你在其中一段對話登出或切換帳號,其他對話也可能受到影響,連續處理訂位或購買時就需要協調。

這裡的使用者身分來自服務驗證,不是提示詞裡自稱的名字。瀏覽器範圍負責重用工作階段,沒有提供一個讓人隨便改名字就能取用別人登入的機制。

交接也不是密碼保管庫。有效連結需要保密,登入後頁面仍可能出現代理看得到的資訊。密碼直接輸入網站能避開聊天紀錄,但不能推成後續頁面中的所有秘密都自動隱藏。

長工作移到背景,主代理如何接回結果?

非同步子代理讓主代理不用等一項長工作結束,才接受下一句補充。子代理是接下特定工作的助手,各有自己的提示與推理內容,可以處理研究、審查或長時間執行。

Managed Deep Agents 原來的同步方式仍可使用,適合主代理立刻需要答案才能繼續的工作。非同步方式則先回傳任務識別碼,讓主代理在背景工作進行時繼續對話,兩種方式服務不同需要。

開發者要在子代理宣告中標示 async,所用 managed-deepagents 版本至少為 0.10.0。這是明確的執行設定,不是模型在提示詞裡說一句「我會背景做」就自動成立。

主代理有啟動、查詢、更新、取消與列出任務的工具。如果使用者中途補充研究範圍,代理可以把新條件送給對應任務,而不是等舊答案完成後才重頭再來。

完成回報也有時機差別。主代理仍忙時,結果會在後續模型呼叫前被讀到。主代理閒置時,子代理可喚起新的執行。若正等待一項核准,原核准會保留,等使用者回答後再接結果。

這表示背景通知解決的是不必反覆主動輪詢,不代表能繞過等待中的決定。工作做完與獲得下一步授權,仍是兩件事,服務不會替人回答核准問題。

在 Slack 工作流程裡,子代理需要核准時,請求會回到原來的對話串。完成後也由主代理判斷要告訴使用者什麼,而不是子代理無條件把整份答案直接貼出去。

把任務啟動、更新、完成與核准分開,對話才能持續而不失去狀態。非同步的價值是等待期間仍能協調,不是保證一項工作永遠不必再與人互動。

各自的對話,共用的檔案:並行不是自動隔離

子代理分開推理,不表示它拿到一份互不影響的檔案副本。同一使用者啟動的非同步子代理,會和主代理共享沙盒,看到當下已存在的工作檔案。

這有助於把工作接續下去。例如主代理先整理一份資料,子代理就可以用同一份檔案繼續分析,不必讓人再傳一次,也減少重複準備環境。

但若兩者同時改同一份檔案,分開對話仍不會自動避免覆寫。假設一邊修正文、一邊整理引用,兩個任務都必須知道誰能修改哪一段,以及結果何時交接。

這是假設的協作情境,不是本刊已在該服務做過的測試。它來自共享檔案這個設計條件,提醒開發者把責任範圍寫進工作安排,而不只描述想得到的答案。

宣告方式也有部署限制。服務在建置時讀取固定的子代理名稱與 async 設定,才能建立相應的執行圖。若用函式或迴圈動態生成,可能無法被建置流程發現,導致啟動失敗。

因此,開發者不能只看互動時是否能跑,也要確認部署後存在相同的子代理配置。配置與實際執行環境不一致,會讓問題看起來像推理失誤,實際上卻是工具沒有建立。

另一個限制是 mda eval 不支援宣告非同步子代理的代理,也不提供相應非同步工具。評估流程要與部署方式對照,不能直接假設原本的測試入口已涵蓋所有背景行為。

分工除了描述目標,也要說明誰負責哪份檔案與何時交接。只有先處理共享狀態,增加子代理數量才不會只是增加衝突機會。

升級 v0.10,先調整舊配置與回覆來源

Managed Deep Agents 除了增加能力,v0.10 也移除了幾個舊配置入口。原有 connectors.mcp 與 connectors 目錄被移除,把外部工具提供給代理的 MCP 伺服器,要改到 tools 目錄下對應的 TypeScript 或 Python 檔案宣告。

沙盒原有的 scope 選項也移除,不能因為瀏覽器仍有 thread 與 user 範圍,就把兩種設定混成一件事。它們管理的是不同資源與狀態。

環境變數還有優先順序變更:LANGSMITH 開頭的變數,命令殼層環境現在優先於專案 .env。若升級後連到不同設定,應先檢查執行環境的值,而不是只改專案檔案。

回覆來源則由 runtime.thread 等上下文資訊接續。對話從哪個 Slack 討論串開始、有哪些參與者,可以在後續恢復、排程與子代理喚醒時繼續供工具使用。

因此,背景工作即使晚一點完成,也有資訊可把回覆送回原處。這比只保留一段文字結果多一層工作脈絡,對多人使用同一代理尤其有意義。

Slack 討論串也加入原生 Stop 按鈕,Studio 可取消相應執行。停止和取消工具提供控制入口,應用程式仍要處理已經寫下或送出的結果,不能把停止當成所有外部動作自動撤銷。

同版 Slack 事件處理器仍標為實驗功能。新能力可用、公開測試與實驗狀態必須分開讀,不能把整份更新清單都寫成正式開放的共同保證。

配置遷移與回覆來源一起驗證,才能避免背景工作做完卻回錯地方。這也讓升級測試包含工作續接,而不只是確認代理能回答第一句話。

先驗證會中斷的一段流程,再決定擴大使用

最適合先試的工作,是原本會卡在登入或長時間等待的那一段。若你的服務已有穩定 API,瀏覽器未必是必要入口,不需要只因有新工具就全面換掉。

對網頁測試,可以先讓代理開啟測試中的表單,確認需要登入時能交接,交回後能辨認結果。對背景研究,則可在工作中途修改一項條件,觀察結果是否反映最新要求。

這兩種情境分別對應操作狀態與任務狀態。若登入成功卻仍停住,要看控制是否交回。若研究完成卻沒有回覆,要看主代理是否仍在等核准,或原對話來源是否正確。

費用也應按實際組合看。模型、遠端執行與沙盒等資源涉及 LangSmith Cloud 方案與所用服務,官方那組一百項任務的測試費用,不能直接拿來當自己的包月方案或每次任務報價。

判斷是否值得導入,要看中斷後能不能接續,而不是只看代理會不會打開網頁。當接手、背景結果與原對話都能對上,這次更新才真正減少等待造成的工作斷點。

延伸閱讀:LangChain 公開公司代理五大元件:員工身分、共用記憶與背景工作怎麼接?

延伸閱讀:LangChain 模型分流實驗:Open SWE 成本中位數降低 64%,怎麼做到的?

常見問題

Managed Deep Agents v0.10 會操作我的整台電腦嗎?

本文的新增能力是遠端瀏覽器,運行在服務管理的環境。它能操作網站與接通代理沙盒內的測試 App,不能把這項更新解讀成已取得本機桌面的通用控制權。

使用者親自登入後,就代表所有頁面資料都不會被模型看到嗎?

交接讓憑證直接輸入網站,避免放進聊天與提示詞,但代理接回視窗後仍會觀察頁面。後續內容是否包含敏感資訊,仍需依網站與工作範圍判斷。

子代理跑完,會自動跨過原本等待的核准嗎?

不會。主代理若正等待核准,該決定會保留,結果等使用者回答後再接入。背景執行提供續接機制,沒有取代人對待核准動作的決定。

如果你想追蹤 AI 代理如何從對話走向完整工作流程,歡迎免費訂閱 AI 郵報。

資料來源