Deep Agents 怎麼設計?Planning、工作區、子代理、記憶與權限指南
Deep Agents是LangChain建立在LangGraph上的完整Agent Harness,目標是讓模型能處理長時間、多步驟且需要大量Context的任務。它內建Planning、Filesystem、Auto-summarization、Subagents、Long-term Memory、Skills、Permissions與Human-in-the-loop,適合不想從零組裝長任務基礎設施的團隊。
Deep Agents的核心判斷是:長任務不能只依靠更大的Context Window。Agent需要把原始資料和大型工具結果移到Filesystem,用Todo維持進度,把局部工作交給Subagents,並以LangGraph Checkpoint處理中斷與恢復。

這篇文章主要在談什麼? Deep Agents是LangChain建立在LangGraph上的完整Agent Harness,內建write_todos、Filesystem、Auto-summarization、Subagents、Memory、Skills、Permissions與Human-in-the-loop。本文整理Backend選擇、Context隔離、狀態與安全邊…
讀者首先要掌握哪個重點? Deep Agents是LangChain建立在LangGraph上的完整Agent Harness,內建write_todos、Filesystem、Auto-summarization、Subagents、Memory、Skills、Permissions與Human-in-the-loop。本文整理Backend選擇、Context隔離、狀態與安全邊…。先抓住這個主軸,再閱讀後續細節。
標題中的關鍵對象有哪些? Deep Agents 怎麼設計?Planning、工作區、子代理、記憶與權限指南;文中依此整理相關人物、作品、事件或概念。
本文整理了哪些背景或脈絡? 文章從「Deep Agents」出發,補上形成背景、發展脈絡與讀者最容易混淆的重點。
這個主題的核心差異或看點是什麼? 核心看點在於把「Deep Agents」放回具體例子與前後關係中比較,而不是只列出名詞。
讀者可以從文中得到哪些實用資訊? 文中依序整理關鍵名詞、人物/作品或事件,以及相關時間、地點、規格或觀察角度;細節以本文段落與引用來源為準。
這篇內容適合哪些搜尋需求? 適合想快速了解「Deep Agents」定義、背景、差異與延伸脈絡的讀者。
閱讀與查證時應注意什麼? 若涉及活動、票價、上映、產品或時程,資訊可能更新,請以文中列出的官方或原始來源最新公告核對。
一句話怎麼總結? Deep Agents是LangChain建立在LangGraph上的完整Agent Harness,內建write_todos、Filesystem、Auto-summarization、Subagents、Memory、Skills、Permissions與Human-in-the-loop。本文整理Backend選擇、Context隔離、狀態與安全邊…。YOLO LAB 將資訊整理成可快速理解與延伸查證的架構。
文章實體化:Deep Agents 怎麼設計?Planning、工作區、子代理、記憶與權限指南
本文以「Deep Agents 怎麼設計?Planning、工作區、子代理、記憶與權限指南」為主線,補回模型/工具、輸入輸出、版本、成本、測試與使用邊界,讓技術名詞回到可執行的工作流程。
- 核心元件:把標題中的模型、工具、格式、企業或協定對應到實際輸入、輸出與依賴。
- 驗證方法:記錄版本、資料、環境、基準、錯誤案例與人工檢查,避免只引用功能宣稱。
- 治理邊界:說明權限、資料保存、成本、失敗回復與何時需要人工介入。
涉及版本、價格、企業資料或 API 行為時,以文章原始資料與供應商/公司最新文件核對。
先把長任務拆成可驗收的工作邊界
- Deep Agents是Agent Harness,不是新的基礎模型。
write_todos負責拆解任務與追蹤進度。- Filesystem讓Agent把大型Context移出對話。
task工具可建立Subagent,隔離局部Context。- Backend決定檔案生命週期、執行位置與安全邊界。
- Long-term Memory透過LangGraph Store跨Thread保存。
- Filesystem Permission只限制內建檔案工具,不能取代Sandbox。
- 敏感工具可透過LangGraph Interrupt要求人工核准。
Deep Agents在LangChain生態的位置
| 元件 | 定位 | 用途 |
|---|---|---|
| LangChain | Agent Framework | Models、Tools、Middleware與Agent Loop |
| LangGraph | Orchestration Runtime | State、Checkpoint、Streaming與HITL |
| Deep Agents | Opinionated Harness | Planning、Filesystem、Subagents、Memory與Context管理 |
| LangSmith | Observability/Evals | Trace、Dataset、Debug與監控 |
只需要簡單Tool Loop時,LangChain Agent通常更直接;需要自訂複雜State Graph時,直接使用LangGraph;需要一套開箱即用的長任務工作環境,Deep Agents才最有價值。
Planning:write_todos如何使用?
Deep Agents內建write_todos,讓模型把長任務拆成可追蹤步驟。Todo應是外部Task State,不只是展示清單。
- 每個Todo有穩定ID與狀態。
- 標記依賴、阻塞和負責Agent。
- 列出需要的來源、工具與權限。
- 定義可檢查的完成條件。
- 保存被否決方案和原因。
- 達到Budget或缺少資料時停止。
todo:
id: research_04
goal: 比較三個官方API的資料保留政策
status: in_progress
depends_on:
- source_manifest
acceptance:
- three_official_sources
- retention_periods_verified
- unresolved_conflicts_listed
Filesystem為何是長任務核心?
Deep Agents提供ls、read_file、write_file、edit_file、glob與grep等工具。Agent可以把原始文件、工具輸出、工作筆記與交付物寫入檔案,只在Context中保留摘要與路徑。
| 目錄 | 內容 |
|---|---|
| /sources/ | 原始文件、API結果與來源Manifest |
| /notes/ | 發現、衝突、假設與待核實項目 |
| /workspace/ | Plan、Todo、Decision與Checkpoint |
| /artifacts/ | 報告、程式、圖表與測試結果 |
| /memories/ | 跨Thread規則、偏好與經驗 |
| /skills/ | 按需載入的程序知識 |
檔案要有Task ID、Source、Version、Created At和Status。否則Agent只是從「忘記對話」變成「找不到工作檔」。
Deep Agents有哪些Backend?
| Backend | 生命週期 | 適合 | 主要風險 |
|---|---|---|---|
| StateBackend | 單一Thread | 暫存Workspace與MVP | 跨Thread不持久 |
| FilesystemBackend | 本機磁碟 | 本地CLI與個人專案 | 可能讀取真實檔案與Secrets |
| StoreBackend | 跨Thread | Memory與組織規則 | Namespace錯誤可能洩漏 |
| Sandbox Backend | 依Sandbox生命週期 | Build、測試與不可信程式 | 需限制網路與資源 |
| CompositeBackend | 混合 | 依路徑分派不同儲存 | 路由與權限更複雜 |
正式系統常用Composite:/workspace/放StateBackend,/memories/放StoreBackend,/policies/設唯讀,程式執行則交給Sandbox。Backend要依資料生命週期選擇,不只看方便。
Subagents如何隔離Context?
Deep Agents的task工具可建立專業Subagent。每個Subagent使用自己的Context Window,只取得局部任務、必要來源與工具;大型結果寫入Artifact,再回傳摘要和路徑。
- 主Agent保存全域Goal、Todo和Budget。
- Subagent只收到一個可獨立驗收的Task。
- 限制可讀寫檔案、網域與Credential。
- 輸出使用固定Schema或Artifact。
- 主Agent處理衝突、去重與整合。
- Verifier執行測試、來源與安全檢查。
Subagent不適合共享同一批未完成檔案。多代理平行開發需要Worktree、模組所有權和Merge Gate,可閱讀多代理平行開發怎麼做?。
Auto-summarization能解決什麼?
Message History接近Context上限時,Deep Agents會壓縮較早內容。摘要可以延續任務,卻可能遺失數字、來源與失敗細節,因此重要資訊應提前外部化:
- 正式規格保留原始文件。
- 決策寫入Decision Log並附來源。
- 進度保存在Todo和State。
- 大型Tool Result寫入Artifact。
- 摘要只保留導航、限制、未解問題與下一步。
Context Builder與Compaction的完整方法可閱讀Context Engineering怎麼做?。
Long-term Memory怎麼保存?
Deep Agents透過LangGraph Store保存跨Thread資料。Memory應依Agent、User、Organization或Project建立Namespace,並區分不同內容:
| Memory | 內容 |
|---|---|
| Semantic | 已確認事實、實體與術語 |
| Episodic | 過去任務、成功和失敗案例 |
| Procedural | Skills、AGENTS.md與工作規則 |
| User | 明確確認的偏好與個人資料 |
| Project | 架構、命令、Schema與部署流程 |
Memory寫入要保存來源、時間和修改者。公司政策、正式規則和高影響記憶應設唯讀或需要Review,不讓模型自行改寫。
Filesystem Permissions的邊界
Deep Agents支援針對內建Filesystem Tools設定Read/Write Allow或Deny。它能限制工作區和敏感路徑,但無法自動限制Custom Tools、MCP或Sandbox中的Shell命令。
- 只允許
/workspace/讀寫。 - 禁止
.env、SSH和Credential目錄。 - Policy和共用Memory設為唯讀。
- Subagent使用比主Agent更窄的規則。
- Shell執行放在真正Sandbox,不依賴路徑提示。
Permission是Tool層決策,Sandbox是程序層隔離。只要Agent能執行Shell,就要限制檔案、網路、CPU、Memory、Disk、Time與Secrets。
Human-in-the-loop如何使用?
Deep Agents使用LangGraph Interrupt在敏感Tool執行前暫停,讓使用者Approve、Edit或Reject。適合的核准點包括:
- 修改正式Memory和Policy。
- 刪除檔案或大量覆寫。
- 部署、Migration和權限變更。
- 寄送、付款與公開發布。
- 進入新的資料或網路Scope。
核准需要Checkpointer保存State,畫面則顯示完整Tool、參數、Diff與影響。泛化的「允許所有操作」不應跨任務重用。
Deep Agents Code與ACP
官方Repository同時提供Deep Agents SDK、CLI與Agent Client Protocol整合。Deep Agents Code是預建Coding CLI;ACP則讓Agent接入相容編輯器。ACP處理Agent與Editor通訊,MCP處理Agent連接外部Tools與Resources,兩者位於不同層級。
適合哪些工作?
- 需要持續數十分鐘以上的研究和分析。
- 大型Repository的理解、修改、測試和文件。
- 大量資料和工具結果需要外部化。
- 需要Subagent分工與Context隔離。
- 需要跨Thread Memory和Skills。
- 希望自訂模型、Backend、Sandbox與MCP。
簡單問答、少量Tools與短任務不需要Deep Agents。高階LangChain Agent或固定Workflow通常更便宜、更容易驗證。
導入清單
- 選一個有明確交付和測試的長任務。
- 建立Todo、Filesystem與Artifact結構。
- 先使用StateBackend和少量Tools。
- 需要跨Thread時再加入StoreBackend。
- 程式執行移到Sandbox。
- 為Subagent設定窄Task與Permission。
- 測Compaction後能否回到正式證據。
- 測Interrupt、Resume、Retry與Cleanup。
- 記錄Token、時間、Tools和人工修改。
常見問題
Deep Agents是模型嗎?
不是。它是Agent Harness,可搭配支援Tool Calling的不同模型。
可以使用本地模型嗎?
可以,但長任務品質取決於模型的Tool Calling、規劃、Context和錯誤恢復能力。
Filesystem Permission等於Sandbox嗎?
不等於。Permission控制內建Tool,Sandbox限制實際程序、檔案、網路和資源。
官方資料與延伸閱讀
- Deep Agents Overview
- Deep Agents Backends
- Deep Agents Permissions
- Deep Agents GitHub
- LangChain和LangGraph差在哪?
Deep Agents把長任務常見的Planning、Filesystem、Subagents與Memory整合成一套Harness。它提供快速起點,真正的可靠度仍由Backend、Namespace、Sandbox、Tool Contract、Evals與人工責任決定。
資料來源與延伸閱讀
- Deep Agents Overview(docs.langchain.com)
- Deep Agents Backends(docs.langchain.com)
- Deep Agents Permissions(docs.langchain.com)
增量:Deep Agents 的難題,是長任務如何保持可控
Planning、工作區、子代理與記憶各自降低不同的複雜度,但也增加狀態與權限的表面。設計時要說清楚誰能讀哪些檔案、誰能建立或修改資料、子代理如何回報證據、主代理如何審查,以及任務中斷後從哪裡恢復。
長任務應有里程碑、檢查點、預算與逾時;記憶只保存必要且可驗證的資訊,避免把暫時推測當成永久事實。真正可靠的 Deep Agent,是能在不確定時縮小範圍、請人確認並安全停下來。
把「Deep Agents 怎麼設計?Planning、工作區、子代理、記憶與權限指南」變成可操作的判斷表
遇到最新狀態、購票、名單或推薦型問題,讀者需要的不只是單一答案,而是知道答案的有效期限、判斷依據與變動風險。這篇文章可以再用下面的方式閱讀:先確認官方資訊,再辨認實際選擇的條件,最後保留替代方案與更新時間。
| 分析面向 | 要追問什麼 | 可查找的證據 |
|---|---|---|
| 狀態核查 | 這個結論截至什麼日期仍成立? | 官方公告、主辦方頁面、更新時間與版本 |
| 選擇條件 | 不同方案真正差異是什麼,適合哪種讀者? | 價格、位置、資格、時間、交通與限制 |
| 風險與例外 | 哪些情況會讓一般建議失效? | 售罄、延期、規則變更、資格與退換政策 |
| 行動順序 | 讀者下一步應先做什麼,如何避免重複查找? | 檢查清單、連結層級與備援方案 |
這樣整理能讓文章不只提供一次性的資訊,也保留讀者在狀態改變後重新判斷的工具。
KEEP READING
接著讀什麼?
從同一主題繼續閱讀,或回到 YOLO LAB 的完整文章索引,找到下一個值得投入時間的問題。


發表迴響