Skip to content

Commit 2879ccb

Browse files
committed
Added mastra agent docs
1 parent 6f68526 commit 2879ccb

File tree

3 files changed

+99
-0
lines changed

3 files changed

+99
-0
lines changed

docs/docs.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@
341341
"guides/example-projects/batch-llm-evaluator",
342342
"guides/example-projects/claude-thinking-chatbot",
343343
"guides/example-projects/human-in-the-loop-workflow",
344+
"guides/example-projects/mastra-agents-with-memory",
344345
"guides/example-projects/meme-generator-human-in-the-loop",
345346
"guides/example-projects/openai-agent-sdk-guardrails",
346347
"guides/example-projects/realtime-csv-importer",
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
title: "Mastra agents with memory sharing + Trigger.dev task orchestration"
3+
sidebarTitle: "Mastra agents with memory"
4+
description: "Multi-agent workflow with persistent memory sharing using Mastra and Trigger.dev for clothing recommendations based on weather data."
5+
tag: "v4"
6+
---
7+
8+
import UpgradeToV4Note from "/snippets/upgrade-to-v4-note.mdx";
9+
10+
<UpgradeToV4Note />
11+
12+
## Overview
13+
14+
Enter a city and an activity, and get a clothing recommendation generated for you based on today's weather.
15+
16+
![Generated clothing recommendations](https://github.com/user-attachments/assets/edfca304-6b22-4fa8-9362-71ecb3fe4903)
17+
18+
By combining Mastra's persistent memory system and agent orchestration with Trigger.dev's durable task execution, retries and observability, you get production-ready AI workflows that survive failures, scale automatically, and maintain context across long-running operations.
19+
20+
## Tech stack
21+
22+
- **[Node.js](https://nodejs.org)** runtime environment
23+
- **[Mastra](https://mastra.ai)** for AI agent orchestration and memory management (Mastra is a Typescript framework for building AI agents, and uses Vercel's AI Agent SDK under the hood.)
24+
- **[PostgreSQL](https://postgresql.org)** for persistent storage and memory sharing
25+
- **[Trigger.dev](https://trigger.dev)** for task orchestration, batching, and observability
26+
- **[OpenAI GPT-4](https://openai.com)** for natural language processing
27+
- **[Open-Meteo API](https://open-meteo.com)** for weather data (no API key required)
28+
- **[Zod](https://zod.dev)** for schema validation and type safety
29+
30+
## GitHub repo
31+
32+
<Card
33+
title="View the Mastra agents with memory repo"
34+
icon="GitHub"
35+
href="https://github.com/triggerdotdev/examples/tree/main/mastra-agents"
36+
>
37+
Click here to view the full code for this project in our examples repository on GitHub. You can
38+
fork it and use it as a starting point for your own project.
39+
</Card>
40+
41+
## Featured patterns
42+
43+
- **[Agent Memory Sharing](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/trigger/weather-task.ts)**: Efficient data sharing between agents using Mastra's working memory system
44+
- **[Task Orchestration](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/trigger/weather-task.ts)**: Multi-step workflows with `triggerAndWait` for sequential agent execution
45+
- **[Centralized Storage](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/index.ts)**: Single PostgreSQL storage instance shared across all agents to prevent connection duplication
46+
- **[Custom Tools](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/tools/weather-tool.ts)**: External API integration with structured output validation
47+
- **[Agent Specialization](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/agents/)**: Purpose-built agents with specific roles and instructions
48+
- **[Schema Optimization](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/schemas/weather-data.ts)**: Lightweight data structures for performance
49+
50+
## Project Structure
51+
52+
```
53+
src/
54+
├── mastra/
55+
│ ├── agents/
56+
│ │ ├── weather-analyst.ts # Weather data collection
57+
│ │ ├── clothing-advisor.ts # Clothing recommendations
58+
│ ├── tools/
59+
│ │ └── weather-tool.ts # Enhanced weather API tool
60+
│ ├── schemas/
61+
│ │ └── weather-data.ts # Weather schema
62+
│ └── index.ts # Mastra configuration
63+
├── trigger/
64+
│ └── weather-task.ts # Trigger.dev tasks
65+
```
66+
67+
## Relevant code
68+
69+
- **[Multi-step task orchestration](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/trigger/weather-task.ts)**: Multi-step task orchestration with `triggerAndWait` for sequential agent execution and shared memory context
70+
- **[Weather analyst agent](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/agents/weather-analyst.ts)**: Specialized agent for weather data collection with external API integration and memory storage
71+
- **[Clothing advisor agent](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/agents/clothing-advisor.ts)**: Purpose-built agent that reads from working memory and generates natural language responses
72+
- **[Weather tool](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/tools/weather-tool.ts)**: Custom Mastra tool with Zod validation for external API calls and error handling
73+
- **[Weather data schema](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/schemas/weather-data.ts)**: Optimized Zod schema for efficient memory storage and type safety
74+
- **[Mastra configuration](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/index.ts)**: Mastra configuration with PostgreSQL storage and agent registration
75+
76+
## Storage Architecture
77+
78+
This project uses a **centralized PostgreSQL storage** approach where a single database connection is shared across all Mastra agents. This prevents duplicate database connections and ensures efficient memory sharing between the weather analyst and clothing advisor agents.
79+
80+
### Storage Configuration
81+
82+
The storage is configured once in the main Mastra instance (`src/mastra/index.ts`) and automatically inherited by all agent Memory instances. This eliminates the "duplicate database object" warning that can occur with multiple PostgreSQL connections.
83+
84+
The PostgreSQL storage works seamlessly in both local development and serverless environments with any PostgreSQL provider, such as:
85+
86+
- [Local PostgreSQL instance](https://postgresql.org)
87+
- [Supabase](https://supabase.com) - Serverless PostgreSQL
88+
- [Neon](https://neon.tech) - Serverless PostgreSQL
89+
- [Railway](https://railway.app) - Simple PostgreSQL hosting
90+
- [AWS RDS](https://aws.amazon.com/rds/postgresql/) - Managed PostgreSQL
91+
92+
## Learn More
93+
94+
To learn more about the technologies used in this project, check out the following resources:
95+
96+
- [Mastra docs](https://mastra.ai/en/docs) - learn about AI agent orchestration and memory management
97+
- [Mastra working memory](https://mastra.ai/en/docs/memory/overview) - learn about efficient data sharing between agents

docs/guides/introduction.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Example projects are full projects with example repos you can fork and use. Thes
4949
| [Claude thinking chatbot](/guides/example-projects/claude-thinking-chatbot) | Use Vercel's AI SDK and Anthropic's Claude 3.7 model to create a thinking chatbot. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/claude-thinking-chatbot) |
5050
| [Human-in-the-loop workflow](/guides/example-projects/human-in-the-loop-workflow) | Create audio summaries of newspaper articles using a human-in-the-loop workflow built with ReactFlow and Trigger.dev waitpoint tokens. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/article-summary-workflow) |
5151
| [OpenAI Agent SDK guardrails](/guides/example-projects/openai-agent-sdk-guardrails) | Use the OpenAI Agent SDK to create a guardrails system for your AI agents. || [View the repo](https://github.com/triggerdotdev/examples/tree/main/openai-agent-sdk-guardrails-examples) |
52+
| [Mastra agents with memory](/guides/example-projects/mastra-agents-with-memory) | Use Mastra to create a weather agent that can collect live weather data and generate clothing recommendations. || [View the repo](https://github.com/triggerdotdev/examples/tree/main/mastra-agents) |
5253
| [Python web crawler](/guides/python/python-crawl4ai) | Use Python, Crawl4AI and Playwright to create a headless web crawler with Trigger.dev. || [View the repo](https://github.com/triggerdotdev/examples/tree/main/python-crawl4ai) |
5354
| [Realtime CSV Importer](/guides/example-projects/realtime-csv-importer) | Upload a CSV file and see the progress of the task streamed to the frontend. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/realtime-csv-importer) |
5455
| [Realtime Fal.ai image generation](/guides/example-projects/realtime-fal-ai) | Generate an image from a prompt using Fal.ai and show the progress of the task on the frontend using Realtime. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/realtime-fal-ai-image-generation) |

0 commit comments

Comments
 (0)