Skip to content

Commit 640bbe0

Browse files
committed
Allow passing a messagesMapper prop when instantiating mastra agent
For example, this allows you to take an array slice to provide only a single message (most recent) to the agent when using memory
1 parent 3a53eb5 commit 640bbe0

File tree

1 file changed

+6
-2
lines changed
  • typescript-sdk/integrations/mastra/src

1 file changed

+6
-2
lines changed

typescript-sdk/integrations/mastra/src/mastra.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type {
22
AgentConfig,
33
BaseEvent,
4+
Message,
45
RunAgentInput,
56
RunFinishedEvent,
67
RunStartedEvent,
@@ -34,6 +35,7 @@ import {
3435

3536
export interface MastraAgentConfig extends AgentConfig {
3637
agent: LocalMastraAgent | RemoteMastraAgent;
38+
messagesMapper?: (messages: Message[]) => Message[];
3739
resourceId?: string;
3840
runtimeContext?: RuntimeContext;
3941
}
@@ -51,12 +53,14 @@ export class MastraAgent extends AbstractAgent {
5153
agent: LocalMastraAgent | RemoteMastraAgent;
5254
resourceId?: string;
5355
runtimeContext?: RuntimeContext;
56+
messagesMapper?: (messages: Message[]) => Message[];
5457

55-
constructor({ agent, resourceId, runtimeContext, ...rest }: MastraAgentConfig) {
58+
constructor({ agent, resourceId, runtimeContext, messagesMapper, ...rest }: MastraAgentConfig) {
5659
super(rest);
5760
this.agent = agent;
5861
this.resourceId = resourceId;
5962
this.runtimeContext = runtimeContext ?? new RuntimeContext();
63+
this.messagesMapper = messagesMapper;
6064
}
6165

6266
protected run(input: RunAgentInput): Observable<BaseEvent> {
@@ -249,7 +253,7 @@ export class MastraAgent extends AbstractAgent {
249253
{} as Record<string, any>,
250254
);
251255
const resourceId = this.resourceId ?? threadId;
252-
const convertedMessages = convertAGUIMessagesToMastra(messages);
256+
const convertedMessages = convertAGUIMessagesToMastra(this.messagesMapper ? this.messagesMapper(messages) : messages);
253257
this.runtimeContext?.set('ag-ui', { context: inputContext });
254258
const runtimeContext = this.runtimeContext;
255259

0 commit comments

Comments
 (0)