跳至主要內容

config.ts

Agent 的 config.ts 會設定其模型及執行階段選項。屬於 Agent 本身的選項應放在此檔案,而同層檔案則提供 instructions、tools、skills 等內容。

config.ts 應包含的內容
what-belongs-in-configts 的直接連結

config.ts 是檔案式 Agent 模型及執行階段選項的必要進入點。當 Agent 層級設定不需要獨立檔案時,應放在這裏,例如模型、描述、預設執行選項、重試行為、scorers 及顯示身分。

如希望檔案式路由把相關設定合併至 Agent,請將這些設定保留在同層檔案。例如,使用 instructions.md 提供始終生效的 prompt,並使用 tools/ 提供可由模型調用的操作。

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

以下 config.ts 配合 instructions.md 檔案,即可建立可運作的檔案式 Agent:

src/mastra/agents/weather/config.ts
import { agentConfig } from '@mastra/core/agent'

export default agentConfig({
model: 'openai/gpt-5.6-sol',
})
src/mastra/agents/weather/instructions.md
You are a helpful weather assistant. Answer questions about current conditions and forecasts.

Mastra 會使用 weather 目錄名稱作為 Agent 的預設 idname。同層的 instructions.md 會提供必要的 instructions。

設定模型
設定模型 的直接連結

model 欄位是 agentConfig() 唯一的必填欄位。如果 Agent 目錄沒有提供模型,建置便會失敗。其他功能則來自同層檔案,或已有預設值。

src/mastra/agents/weather/config.ts
import { agentConfig } from '@mastra/core/agent'

export default agentConfig({
model: 'openai/gpt-5.6-sol',
})

從目錄取得身分
從目錄取得身分 的直接連結

檔案式 Agent 的 idname 預設為目錄名稱。對於 src/mastra/agents/weather/,除非你覆寫這些欄位,否則 Mastra 會將 Agent 註冊為 weather

當穩定的路由鍵與顯示名稱應有所不同時,請覆寫 idname

src/mastra/agents/weather/config.ts
import { agentConfig } from '@mastra/core/agent'

export default agentConfig({
id: 'weather-assistant',
name: 'Weather Assistant',
model: 'openai/gpt-5.6-sol',
})

設定執行階段選項
設定執行階段選項 的直接連結

agentConfig() 接受 Agent 建構函數選項,但 idname 及同層檔案欄位可由檔案式慣例提供。完整選項清單請參閱 Agent 參考文件。

請注意:

  • 檔案式 subagent 必須提供非空白的 description,因為父模型會使用它進行委派路由。
  • defaultOptionsmaxRetriesscorers 及其他 Agent 選項不需要獨立檔案時,可放在 config.ts 中。

相關設定的存放位置
相關設定的存放位置 的直接連結

config.ts 專注於執行階段選項。適合獨立存放的內容應使用同層檔案。

設定檔案或資料夾存放於該處的原因
Instructionsinstructions.mdinstructions.ts以易讀的 markdown 保留始終生效的 prompt,或使用 TypeScript 動態產生內容
Toolstools/讓每項可調用操作各自擁有具型別的模組
Skillsskills/將按需要載入的程序與始終生效的 instructions 分開
Memorymemory.ts設定持久 memory,避免執行階段選項過於擁擠
Workspaceworkspace.ts將檔案及 Sandbox 行為與模型設定分開設定
Processorsprocessors/分隔輸入及輸出處理管線
Subagentssubagents/讓每個專門的子 Agent 擁有獨立目錄

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

config.ts 會按照以下規則與 Agent 的其他檔案合併:

範疇來源 A來源 B優先採用者
Instructions動態 config.instructionsinstructions.tsinstructions.md動態 config.instructions
Instructions靜態 config.instructionsinstructions.tsinstructions.mdinstructions 檔案
Instructionsinstructions.tsinstructions.mdinstructions.ts
Toolsconfig.toolstools/兩者合併;鍵發生衝突時以 config.tools 為準
Tools函數 config.toolstools/函數 config.tools;忽略已探索的 tools
Skillsconfig.skillsskills/兩者合併;名稱發生衝突時以 config.skills 為準
Skills函數 config.skillsskills/函數 config.skills;忽略已探索的 skills
Memoryconfig.memorymemory.tsconfig.memory
Workspaceconfig.workspaceworkspace.tsconfig.workspace

如果欠缺 instructions.mdinstructions.tsconfig.instructions,建置便會失敗。如果 config.memorymemory.ts 都不存在,Agent 將沒有 memory。

探索生命週期
探索生命週期 的直接連結

Mastra bundler 會在 mastra devmastra build 期間探索檔案式 primitives。探索期間,Mastra 會讀取 src/mastra/ 下支援的檔案、匯入 TypeScript 及 JavaScript 模組、讀取 markdown instructions 及 skills、複製 Workspace 種子檔案,並向你的 Mastra 應用程式註冊組合完成的 primitives。

探索完成後,檔案式 Agent 會以一般 Agent 的方式運作。透過 Agent API、Studio、Workflow 或應用程式程式碼調用它時,會使用與程式碼定義 Agent 相同的執行階段。

探索以原始碼為基礎,並採取保守方式。

它會略過符號連結、測試檔案及並非 Agent 目錄的目錄。Workflow 及單例項目檔案只有在包含 default export 時,才會以檔案進行路由。

透過 Mastra CLI 啟動應用程式,以執行探索:

npx mastra dev

如果你直接匯入 mastra instance,系統不會探索 agents/<name>/ 目錄及其他慣例。當你將 Mastra 用作函式庫時,請改為在程式碼中註冊這些 primitives。