跳至主要內容

Workspace

Workspace 為 Agent 提供檔案系統存取權與指令執行能力。透過 mastra devmastra build 探索檔案式 Agent 時,Agent 會自動取得預設 Workspace,因此不需額外設定便能讀寫檔案及執行 shell 指令。

本頁說明檔案式慣例。Workspace Provider、Tool、搜尋、生命週期與 Sandbox 詳細資訊請參閱 Workspace

預設 Workspace
「預設 Workspace」的直接連結

沒有 workspace.ts 時,只要建置流程提供各 Agent 專用的 Workspace 路徑,檔案式 Agent 就會取得預設 Workspace。預設 Workspace 使用:

這會自動為 Agent 提供檔案 Tool 與 shell Tool。預設 Workspace 為各 Agent 專用;subagent 的 Workspace 目錄會巢狀放在父 Agent 的 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 參考文件

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

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

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

Provider 模式與執行階段行為請參閱 Workspace 概觀Sandbox 指南Workspace 搜尋

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

Workspace 檔案系統控制檔案 Tool 可以讀寫的內容。Sandbox 控制 shell 指令的執行位置。應用程式的執行階段程式碼(包括 tools/ 中的程式碼)仍會在應用程式/server process 中執行,除非明確呼叫 Workspace 或 Sandbox API。

種子檔案
「種子檔案」的直接連結

加入 workspace/ 目錄,以包含 Agent 的初始檔案。Mastra 會在建置時將 workspace/ 下的檔案鏡像至 Agent 的預設執行階段 Workspace,讓 Agent 啟動時,這些檔案已存在於磁碟中。

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

檔案會複製至 bundle 內的 Workspace 路徑,Workspace 檔案 Tool 與 Sandbox 指令可在該處讀取檔案。鏡像期間會略過 symlink 種子檔案。

與 config 的優先順序
「與 config 的優先順序」的直接連結

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