Skip to Content
ReferenceAgentsAgent

Agent

The Agent class is the foundation for creating AI agents in Mastra. It provides methods for generating responses, streaming interactions, and handling voice capabilities.

Importing

import { Agent } from "@mastra/core/agent";

Constructor

Creates a new Agent instance with the specified configuration.

constructor(config: AgentConfig<TAgentId, TTools, TMetrics>)

Parameters


name:

string
Unique identifier for the agent.

instructions:

string | ({ runtimeContext: RuntimeContext }) => string | Promise<string>
Instructions that guide the agent's behavior. Can be a static string or a function that returns a string.

model:

MastraLanguageModel | ({ runtimeContext: RuntimeContext }) => MastraLanguageModel | Promise<MastraLanguageModel>
The language model to use for generating responses. Can be a model instance or a function that returns a model.

tools?:

ToolsInput | ({ runtimeContext: RuntimeContext }) => ToolsInput | Promise<ToolsInput>
Tools that the agent can use. Can be a static object or a function that returns tools.

defaultGenerateOptions?:

AgentGenerateOptions
Default options to use when calling generate().

defaultStreamOptions?:

AgentStreamOptions
Default options to use when calling stream().

evals?:

Record<string, Metric>
Evaluation metrics for assessing agent performance.

memory?:

MastraMemory
Memory system for the agent to store and retrieve information.

voice?:

CompositeVoice
Voice capabilities for speech-to-text and text-to-speech functionality.