Added Mastra + Trigger example (#2278)
* Added mastra agent docs * Added links in the ai agents section * Caught typos all thanks to coderabbit. Thanks coderabbit
This commit is contained in:
@@ -333,6 +333,7 @@
|
||||
"guides/example-projects/batch-llm-evaluator",
|
||||
"guides/example-projects/claude-thinking-chatbot",
|
||||
"guides/example-projects/human-in-the-loop-workflow",
|
||||
"guides/example-projects/mastra-agents-with-memory",
|
||||
"guides/example-projects/meme-generator-human-in-the-loop",
|
||||
"guides/example-projects/openai-agent-sdk-guardrails",
|
||||
"guides/example-projects/openai-agents-sdk-typescript-playground",
|
||||
|
||||
@@ -6,12 +6,80 @@ description: "Real world AI agent example tasks using Trigger.dev"
|
||||
|
||||
## Overview
|
||||
|
||||
This guide will show you how to set up different types of AI agent workflows with Trigger.dev. The examples take inspiration from Athropic's blog post on [building effective agents](https://www.anthropic.com/research/building-effective-agents).
|
||||
These guides will show you how to set up different types of AI agent workflows with Trigger.dev. The examples take inspiration from Anthropic's blog post on [building effective agents](https://www.anthropic.com/research/building-effective-agents).
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Prompt chaining" img="/guides/ai-agents/prompt-chaining.png" href="/guides/ai-agents/generate-translate-copy">Chain prompts together to generate and translate marketing copy automatically</Card>
|
||||
<Card title="Routing" img="/guides/ai-agents/routing.png" href="/guides/ai-agents/route-question">Send questions to different AI models based on complexity analysis</Card>
|
||||
<Card title="Parallelization" img="/guides/ai-agents/parallelization.png" href="/guides/ai-agents/respond-and-check-content">Simultaneously check for inappropriate content while responding to customer inquiries</Card>
|
||||
<Card title="Orchestrator" img="/guides/ai-agents/orchestrator-workers.png" href="/guides/ai-agents/verify-news-article">Coordinate multiple AI workers to verify news article accuracy</Card>
|
||||
<Card title="Evaluator-optimizer" img="/guides/ai-agents/evaluator-optimizer.png" href="/guides/ai-agents/translate-and-refine">Translate text and automatically improve quality through feedback loops</Card>
|
||||
<Card
|
||||
title="Prompt chaining"
|
||||
img="/guides/ai-agents/prompt-chaining.png"
|
||||
href="/guides/ai-agents/generate-translate-copy"
|
||||
>
|
||||
Chain prompts together to generate and translate marketing copy automatically
|
||||
</Card>
|
||||
<Card title="Routing" img="/guides/ai-agents/routing.png" href="/guides/ai-agents/route-question">
|
||||
Send questions to different AI models based on complexity analysis
|
||||
</Card>
|
||||
<Card
|
||||
title="Parallelization"
|
||||
img="/guides/ai-agents/parallelization.png"
|
||||
href="/guides/ai-agents/respond-and-check-content"
|
||||
>
|
||||
Simultaneously check for inappropriate content while responding to customer inquiries
|
||||
</Card>
|
||||
<Card
|
||||
title="Orchestrator"
|
||||
img="/guides/ai-agents/orchestrator-workers.png"
|
||||
href="/guides/ai-agents/verify-news-article"
|
||||
>
|
||||
Coordinate multiple AI workers to verify news article accuracy
|
||||
</Card>
|
||||
<Card
|
||||
title="Evaluator-optimizer"
|
||||
img="/guides/ai-agents/evaluator-optimizer.png"
|
||||
href="/guides/ai-agents/translate-and-refine"
|
||||
>
|
||||
Translate text and automatically improve quality through feedback loops
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Example projects using AI agents
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card
|
||||
icon="hand"
|
||||
title="Human-in-the-loop workflow"
|
||||
href="/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.
|
||||
</Card>
|
||||
<Card
|
||||
title="Mastra agents with memory"
|
||||
icon="database"
|
||||
href="/guides/example-projects/mastra-agents-with-memory"
|
||||
>
|
||||
Use Mastra to create a weather agent that can collect live weather data and generate clothing
|
||||
recommendations.
|
||||
</Card>
|
||||
<Card
|
||||
title="OpenAI Agent Python SDK guardrails"
|
||||
icon="snake"
|
||||
href="/guides/example-projects/openai-agent-sdk-guardrails"
|
||||
>
|
||||
Use the OpenAI Agent SDK to create a guardrails system for your AI agents.
|
||||
</Card>
|
||||
<Card
|
||||
title="OpenAI Agent TypeScript SDK playground"
|
||||
icon="rocket"
|
||||
href="/guides/example-projects/openai-agents-sdk-typescript-playground"
|
||||
>
|
||||
A playground containing 7 AI agents using the OpenAI Agent SDK for TypeScript with Trigger.dev.
|
||||
</Card>
|
||||
<Card
|
||||
title="Vercel AI SDK deep research agent"
|
||||
icon="triangle"
|
||||
href="/guides/example-projects/vercel-ai-sdk-deep-research"
|
||||
>
|
||||
Use the Vercel AI SDK to generate comprehensive PDF reports using a deep research agent.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
---
|
||||
title: "Mastra agents with memory sharing + Trigger.dev task orchestration"
|
||||
sidebarTitle: "Mastra agents with memory"
|
||||
description: "Multi-agent workflow with persistent memory sharing using Mastra and Trigger.dev for clothing recommendations based on weather data."
|
||||
tag: "v4"
|
||||
---
|
||||
|
||||
import UpgradeToV4Note from "/snippets/upgrade-to-v4-note.mdx";
|
||||
|
||||
<UpgradeToV4Note />
|
||||
|
||||
## Overview
|
||||
|
||||
Enter a city and an activity, and get a clothing recommendation generated for you based on today's weather.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
## Tech stack
|
||||
|
||||
- **[Node.js](https://nodejs.org)** runtime environment
|
||||
- **[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.)
|
||||
- **[PostgreSQL](https://postgresql.org)** for persistent storage and memory sharing
|
||||
- **[Trigger.dev](https://trigger.dev)** for task orchestration, batching, and observability
|
||||
- **[OpenAI GPT-4](https://openai.com)** for natural language processing
|
||||
- **[Open-Meteo API](https://open-meteo.com)** for weather data (no API key required)
|
||||
- **[Zod](https://zod.dev)** for schema validation and type safety
|
||||
|
||||
## GitHub repo
|
||||
|
||||
<Card
|
||||
title="View the Mastra agents with memory repo"
|
||||
icon="GitHub"
|
||||
href="https://github.com/triggerdotdev/examples/tree/main/mastra-agents"
|
||||
>
|
||||
Click here to view the full code for this project in our examples repository on GitHub. You can
|
||||
fork it and use it as a starting point for your own project.
|
||||
</Card>
|
||||
|
||||
## Featured patterns
|
||||
|
||||
- **[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
|
||||
- **[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
|
||||
- **[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
|
||||
- **[Custom Tools](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/tools/weather-tool.ts)**: External API integration with structured output validation
|
||||
- **[Agent Specialization](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/agents/)**: Purpose-built agents with specific roles and instructions
|
||||
- **[Schema Optimization](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/schemas/weather-data.ts)**: Lightweight data structures for performance
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
src/
|
||||
├── mastra/
|
||||
│ ├── agents/
|
||||
│ │ ├── weather-analyst.ts # Weather data collection
|
||||
│ │ ├── clothing-advisor.ts # Clothing recommendations
|
||||
│ ├── tools/
|
||||
│ │ └── weather-tool.ts # Enhanced weather API tool
|
||||
│ ├── schemas/
|
||||
│ │ └── weather-data.ts # Weather schema
|
||||
│ └── index.ts # Mastra configuration
|
||||
├── trigger/
|
||||
│ └── weather-task.ts # Trigger.dev tasks
|
||||
```
|
||||
|
||||
## Relevant code
|
||||
|
||||
- **[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
|
||||
- **[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
|
||||
- **[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
|
||||
- **[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
|
||||
- **[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
|
||||
- **[Mastra configuration](https://github.com/triggerdotdev/examples/blob/main/mastra-agents/src/mastra/index.ts)**: Mastra configuration with PostgreSQL storage and agent registration
|
||||
|
||||
## Storage Architecture
|
||||
|
||||
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.
|
||||
|
||||
### Storage Configuration
|
||||
|
||||
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.
|
||||
|
||||
The PostgreSQL storage works seamlessly in both local development and serverless environments with any PostgreSQL provider, such as:
|
||||
|
||||
- [Local PostgreSQL instance](https://postgresql.org)
|
||||
- [Supabase](https://supabase.com) - Serverless PostgreSQL
|
||||
- [Neon](https://neon.tech) - Serverless PostgreSQL
|
||||
- [Railway](https://railway.app) - Simple PostgreSQL hosting
|
||||
- [AWS RDS](https://aws.amazon.com/rds/postgresql/) - Managed PostgreSQL
|
||||
|
||||
## Learn More
|
||||
|
||||
To learn more about the technologies used in this project, check out the following resources:
|
||||
|
||||
- [Mastra docs](https://mastra.ai/en/docs) - learn about AI agent orchestration and memory management
|
||||
- [Mastra working memory](https://mastra.ai/en/docs/memory/overview) - learn about efficient data sharing between agents
|
||||
@@ -48,6 +48,7 @@ Example projects are full projects with example repos you can fork and use. Thes
|
||||
| [Batch LLM Evaluator](/guides/example-projects/batch-llm-evaluator) | Evaluate multiple LLM models and stream the results to the frontend. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/batch-llm-evaluator) |
|
||||
| [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) |
|
||||
| [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) |
|
||||
| [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) |
|
||||
| [OpenAI Agents SDK for Python guardrails](/guides/example-projects/openai-agent-sdk-guardrails) | Use the OpenAI Agents SDK for Python to create a guardrails system for your AI agents. | — | [View the repo](https://github.com/triggerdotdev/examples/tree/main/openai-agent-sdk-guardrails-examples) |
|
||||
| [OpenAI Agents SDK for TypeScript playground](/guides/example-projects/openai-agents-sdk-typescript-playground) | A playground containing 7 AI agents using the OpenAI Agents SDK for TypeScript with Trigger.dev. | — | [View the repo](https://github.com/triggerdotdev/examples/tree/main/openai-agents-sdk-with-trigger-playground) |
|
||||
| [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) |
|
||||
|
||||
Reference in New Issue
Block a user