跳至主要內容

Workspace

Workspace 為 Agent 提供檔案系統存取權限及指令執行功能。透過 mastra devmastra build 探索到檔案式 Agent 時,系統會自動為它們提供預設 Workspace,因此毋須額外設定即可讀寫檔案及執行 shell 指令。

本頁說明檔案式慣例。如需了解 Workspace Provider、Tools、搜尋、生命週期及 Sandbox 詳情,請參閱 Workspaces

預設 Workspace
預設 Workspace 的直接連結

如果沒有 workspace.ts,當建置提供各 Agent 專用的 Workspace 路徑時,檔案式 Agent 會取得預設 Workspace。預設 Workspace 使用:

這會自動為 Agent 提供檔案 Tools 及 shell Tools。每個 Agent 均有自己的預設 Workspace;subagents 會在其父 Agent 的 Workspace 路徑下取得巢狀 Workspace 目錄。

快速開始
快速開始 的直接連結

如要使用預設 Workspace,毋須新增檔案。請由以下 Agent 目錄開始:

Default workspace
src/mastra/agents/weather/
├── config.ts
└── instructions.md

只有需要自訂 Workspace 時才新增 workspace.ts

src/mastra/agents/weather/workspace.ts
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace'

export default new Workspace({
name: 'weather-workspace',
filesystem: new LocalFilesystem({ basePath: './data/weather' }),
sandbox: new LocalSandbox({ workingDirectory: './data/weather' }),
})

請瀏覽 Workspace 參考資料了解完整 config。

何時自訂 Workspace
何時自訂 Workspace 的直接連結

預設本機目錄不足以應付需要時,請自訂 Workspace。常見原因包括:

  • 將檔案 Tools 指向不同的檔案系統根目錄。
  • 在不同的 Sandbox Provider 中執行 shell 指令。
  • 使用 BM25 或向量搜尋新增 Workspace 搜尋功能。
  • 讓多個 Agent 共用同一個 Workspace。

如需了解 Provider 模式及執行階段行為,請參閱 Workspace 概覽Sandbox 指南Workspace 搜尋

執行階段邊界
執行階段邊界 的直接連結

Workspace 檔案系統控制檔案 Tools 可讀寫的內容。Sandbox 控制 shell 指令的執行位置。應用程式執行階段程式碼(包括 tools/ 中的程式碼)仍會在你的應用程式/伺服器處理程序中執行,除非它明確呼叫 Workspace 或 Sandbox API。

初始檔案
初始檔案 的直接連結

新增 workspace/ 目錄,將初始檔案包含在 Agent 中。Mastra 會在建置時,將 workspace/ 下的檔案鏡像複製到 Agent 的預設執行階段 Workspace,讓 Agent 啟動時磁碟上已有這些檔案。

Seed files
src/mastra/agents/weather/
├── config.ts
└── workspace/
├── README.md
└── data/
└── cities.json

這些檔案會複製到已封裝的 Workspace 路徑,供 Workspace 檔案 Tools 及 Sandbox 指令讀取。鏡像複製期間會略過符號連結的初始檔案。

與 config 的優先次序
與 config 的優先次序 的直接連結

config.workspace 的優先次序高於 workspace.ts;否則會使用預設檔案式 Workspace。完整合併表請參閱 config.ts 優先次序