メインコンテンツへ移動

config.ts

Agent の config.ts では、モデルとランタイムオプションを設定します。Agent 自体に属するオプションにはこのファイルを使用し、指示、Tool、Skill などは同階層のファイルで指定します。

config.ts に記述する内容
what-belongs-in-configtsへの直接リンク

config.ts は、ファイルベースの Agent のモデルとランタイムオプションを定義する必須のエントリーポイントです。モデル、説明、デフォルトの実行オプション、再試行動作、Scorer、表示上の識別情報など、専用ファイルを必要としない Agent レベルの設定をここに記述します。

ファイルベースのルーティングによって Agent に統合する関連項目は、同階層のファイルに分けてください。たとえば、常時適用するプロンプトには instructions.md、モデルから呼び出せるアクションには tools/ を使用します。

クイックスタート
クイックスタートへの直接リンク

次の config.tsinstructions.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 から必須の指示が提供されます。

モデルの設定
モデルの設定への直接リンク

agentConfig() で必須のフィールドは model だけです。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 として登録します。

安定したルーティングキーと表示名を別にする場合は、id または name を上書きします。

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 にはランタイムオプションだけを記述します。独立した配置場所が適している項目には、同階層のファイルを使用してください。

設定ファイルまたはフォルダーそこに配置する理由
指示instructions.md または instructions.ts常時適用するプロンプトを読みやすい Markdown で記述するか、TypeScript で動的に生成できる
Tooltools/呼び出し可能な各アクションを型付きの個別モジュールにできる
Skillskills/必要に応じて読み込む手順を、常時適用する指示から分離できる
Memorymemory.tsランタイムオプションを煩雑にせずに永続 Memory を設定できる
Workspaceworkspace.tsファイルと Sandbox の動作をモデル設定とは別に設定できる
Processorprocessors/入力と出力の処理パイプラインを分離できる
Subagentsubagents/専門分野ごとの子 Agent に個別のディレクトリを割り当てられる

優先順位
優先順位への直接リンク

config.ts は、次のルールに従って Agent の他のファイルと統合されます。

領域ソース Aソース B優先されるもの
指示動的な config.instructionsinstructions.ts または instructions.md動的な config.instructions
指示静的な config.instructionsinstructions.ts または instructions.md指示ファイル
指示instructions.tsinstructions.mdinstructions.ts
Toolconfig.toolstools/両方を統合し、キーが競合した場合は config.tools が優先される
Tool関数形式の config.toolstools/関数形式の config.tools。検出された Tool は無視される
Skillconfig.skillsskills/両方を統合し、名前が競合した場合は config.skills が優先される
Skill関数形式の config.skillsskills/関数形式の config.skills。検出された Skill は無視される
Memoryconfig.memorymemory.tsconfig.memory
Workspaceconfig.workspaceworkspace.tsconfig.workspace

instructions.mdinstructions.tsconfig.instructions のいずれも存在しない場合、ビルドは失敗します。config.memorymemory.ts の両方が存在しない場合、Agent には Memory が設定されません。

検出のライフサイクル
検出のライフサイクルへの直接リンク

ファイルベースのプリミティブは、mastra devmastra build の実行時に Mastra バンドラーによって検出されます。検出時に Mastra は、src/mastra/ 以下の対応ファイルを読み取り、TypeScript と JavaScript のモジュールをインポートし、Markdown の指示と Skill を読み込み、Workspace のシードファイルをコピーして、構成済みのプリミティブを Mastra アプリに登録します。

検出後、ファイルベースの Agent は通常の Agent として動作します。Agent API、Studio、Workflow、またはアプリケーションコードから呼び出す場合も、コードで定義した Agent と同じランタイムが使用されます。

検出はソースを基準に慎重に行われます。

シンボリックリンク、テストファイル、Agent ディレクトリではないディレクトリはスキップされます。Workflow とプロジェクト単位のシングルトンファイルは、デフォルトエクスポートがある場合にのみ、ファイルベースのルーティング対象になります。

検出を実行するには、Mastra CLI からアプリを起動します。

npx mastra dev

mastra インスタンスを直接インポートした場合、agents/<name>/ ディレクトリなどの規約は検出されません。Mastra をライブラリとして使用する場合は、それらのプリミティブをコードで登録してください。