@mastra/mcp-docs-server 0.13.39-alpha.0 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +1 -0
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +0 -8
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +0 -8
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +29 -29
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +0 -8
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fastra.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fauth.md +4 -8
- package/.docs/organized/changelogs/%40mastra%2Fchroma.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +223 -223
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +189 -189
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +198 -198
- package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +7 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +214 -214
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +63 -63
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +57 -57
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +60 -60
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +57 -57
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +209 -209
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +191 -191
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +38 -38
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +5 -7
- package/.docs/organized/changelogs/%40mastra%2Flance.md +186 -186
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +53 -53
- package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +221 -221
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +206 -206
- package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +197 -197
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +218 -218
- package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Frag.md +65 -65
- package/.docs/organized/changelogs/%40mastra%2Freact.md +61 -61
- package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +10 -9
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -24
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +206 -206
- package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +191 -191
- package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +58 -58
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +56 -56
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +11 -11
- package/.docs/organized/changelogs/create-mastra.md +27 -27
- package/.docs/organized/changelogs/mastra.md +87 -87
- package/.docs/organized/code-examples/a2a.md +4 -2
- package/.docs/organized/code-examples/agui.md +12 -9
- package/.docs/organized/code-examples/ai-sdk-useChat.md +12 -18
- package/.docs/organized/code-examples/ai-sdk-v5.md +4 -2
- package/.docs/organized/code-examples/bird-checker-with-express.md +5 -4
- package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +4 -3
- package/.docs/organized/code-examples/bird-checker-with-nextjs.md +4 -3
- package/.docs/organized/code-examples/client-side-tools.md +1 -0
- package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
- package/.docs/organized/code-examples/experimental-auth-weather-agent.md +8 -177
- package/.docs/organized/code-examples/fireworks-r1.md +2 -2
- package/.docs/organized/code-examples/heads-up-game.md +10 -7
- package/.docs/organized/code-examples/mcp-configuration.md +5 -3
- package/.docs/organized/code-examples/mcp-registry-registry.md +3 -2
- package/.docs/organized/code-examples/memory-per-resource-example.md +4 -2
- package/.docs/organized/code-examples/memory-todo-agent.md +1 -0
- package/.docs/organized/code-examples/memory-with-context.md +2 -1
- package/.docs/organized/code-examples/memory-with-libsql.md +4 -2
- package/.docs/organized/code-examples/memory-with-mongodb.md +4 -2
- package/.docs/organized/code-examples/memory-with-pg.md +4 -2
- package/.docs/organized/code-examples/memory-with-processors.md +13 -8
- package/.docs/organized/code-examples/memory-with-upstash.md +5 -3
- package/.docs/organized/code-examples/openapi-spec-writer.md +32 -41
- package/.docs/organized/code-examples/quick-start.md +5 -32
- package/.docs/organized/code-examples/stock-price-tool.md +6 -5
- package/.docs/organized/code-examples/weather-agent.md +21 -16
- package/.docs/organized/code-examples/workflow-ai-recruiter.md +3 -2
- package/.docs/organized/code-examples/workflow-with-inline-steps.md +9 -12
- package/.docs/organized/code-examples/workflow-with-memory.md +16 -15
- package/.docs/organized/code-examples/workflow-with-separate-steps.md +2 -2
- package/.docs/organized/code-examples/workflow-with-suspend-resume.md +3 -2
- package/.docs/raw/agents/adding-voice.mdx +27 -22
- package/.docs/raw/agents/agent-memory.mdx +23 -15
- package/.docs/raw/agents/guardrails.mdx +33 -12
- package/.docs/raw/agents/networks.mdx +8 -4
- package/.docs/raw/agents/overview.mdx +21 -15
- package/.docs/raw/agents/using-tools.mdx +11 -8
- package/.docs/raw/auth/auth0.mdx +8 -8
- package/.docs/raw/auth/clerk.mdx +6 -6
- package/.docs/raw/auth/firebase.mdx +8 -8
- package/.docs/raw/auth/index.mdx +6 -6
- package/.docs/raw/auth/jwt.mdx +6 -6
- package/.docs/raw/auth/supabase.mdx +7 -7
- package/.docs/raw/auth/workos.mdx +8 -8
- package/.docs/raw/community/contributing-templates.mdx +3 -3
- package/.docs/raw/community/discord.mdx +1 -1
- package/.docs/raw/course/01-first-agent/08-exporting-your-agent.md +2 -1
- package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +2 -1
- package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -0
- package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -0
- package/.docs/raw/course/03-agent-memory/10-storage-configuration.md +2 -3
- package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +2 -0
- package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +2 -0
- package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -0
- package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -0
- package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +1 -0
- package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -0
- package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +1 -0
- package/.docs/raw/course/04-workflows/08-running-workflows-programmatically.md +2 -2
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +5 -5
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +7 -5
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +3 -3
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +4 -4
- package/.docs/raw/deployment/cloud-providers/index.mdx +11 -8
- package/.docs/raw/deployment/monorepo.mdx +2 -2
- package/.docs/raw/deployment/overview.mdx +2 -2
- package/.docs/raw/deployment/server-deployment.mdx +2 -10
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +4 -4
- package/.docs/raw/deployment/serverless-platforms/index.mdx +10 -7
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +4 -4
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +4 -4
- package/.docs/raw/deployment/web-framework.mdx +8 -8
- package/.docs/raw/{scorers → evals}/custom-scorers.mdx +6 -6
- package/.docs/raw/evals/off-the-shelf-scorers.mdx +50 -0
- package/.docs/raw/{scorers → evals}/overview.mdx +8 -8
- package/.docs/raw/evals/running-in-ci.mdx +113 -0
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +22 -21
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +8 -8
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +3 -0
- package/.docs/raw/frameworks/servers/express.mdx +10 -9
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +6 -6
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +3 -3
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +4 -4
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +2 -2
- package/.docs/raw/getting-started/installation.mdx +13 -12
- package/.docs/raw/getting-started/mcp-docs-server.mdx +1 -1
- package/.docs/raw/getting-started/project-structure.mdx +4 -4
- package/.docs/raw/getting-started/studio.mdx +8 -8
- package/.docs/raw/getting-started/templates.mdx +1 -1
- package/.docs/raw/guides/guide/ai-recruiter.mdx +264 -0
- package/.docs/raw/guides/guide/chef-michel.mdx +271 -0
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +450 -0
- package/.docs/raw/guides/guide/research-assistant.mdx +389 -0
- package/.docs/raw/guides/guide/stock-agent.mdx +185 -0
- package/.docs/raw/guides/guide/web-search.mdx +291 -0
- package/.docs/raw/guides/index.mdx +43 -0
- package/.docs/raw/guides/migrations/agentnetwork.mdx +114 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/_template.mdx +50 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +265 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +48 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +153 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +230 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +171 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +114 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +241 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +83 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +62 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +270 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +115 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +280 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +23 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +39 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +178 -0
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +367 -0
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/{observability/logging.mdx → logging.mdx} +4 -4
- package/.docs/raw/mastra-cloud/dashboard.mdx +2 -2
- package/.docs/raw/mastra-cloud/observability.mdx +6 -6
- package/.docs/raw/mastra-cloud/overview.mdx +2 -2
- package/.docs/raw/mastra-cloud/setting-up.mdx +4 -4
- package/.docs/raw/memory/conversation-history.mdx +1 -0
- package/.docs/raw/memory/memory-processors.mdx +4 -3
- package/.docs/raw/memory/overview.mdx +9 -5
- package/.docs/raw/memory/semantic-recall.mdx +12 -7
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +10 -5
- package/.docs/raw/memory/storage/memory-with-pg.mdx +9 -4
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +9 -4
- package/.docs/raw/memory/threads-and-resources.mdx +11 -13
- package/.docs/raw/memory/working-memory.mdx +30 -14
- package/.docs/raw/observability/overview.mdx +13 -30
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/arize.mdx +10 -18
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/cloud.mdx +11 -17
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/default.mdx +16 -20
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/otel.mdx +9 -18
- package/.docs/raw/observability/{ai-tracing → tracing}/overview.mdx +107 -142
- package/.docs/raw/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +14 -13
- package/.docs/raw/rag/chunking-and-embedding.mdx +5 -5
- package/.docs/raw/rag/overview.mdx +3 -13
- package/.docs/raw/rag/retrieval.mdx +24 -12
- package/.docs/raw/rag/vector-databases.mdx +7 -1
- package/.docs/raw/reference/agents/agent.mdx +33 -28
- package/.docs/raw/reference/agents/generate.mdx +10 -10
- package/.docs/raw/reference/agents/generateLegacy.mdx +8 -8
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +21 -15
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +69 -0
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +22 -16
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +8 -8
- package/.docs/raw/reference/agents/getLLM.mdx +9 -9
- package/.docs/raw/reference/agents/getMemory.mdx +9 -9
- package/.docs/raw/reference/agents/getModel.mdx +10 -10
- package/.docs/raw/reference/agents/getVoice.mdx +8 -8
- package/.docs/raw/reference/agents/listAgents.mdx +9 -9
- package/.docs/raw/reference/agents/listScorers.mdx +7 -7
- package/.docs/raw/reference/agents/listTools.mdx +7 -7
- package/.docs/raw/reference/agents/listWorkflows.mdx +7 -7
- package/.docs/raw/reference/agents/network.mdx +11 -10
- package/.docs/raw/reference/auth/auth0.mdx +4 -4
- package/.docs/raw/reference/auth/clerk.mdx +4 -4
- package/.docs/raw/reference/auth/firebase.mdx +6 -6
- package/.docs/raw/reference/auth/jwt.mdx +4 -4
- package/.docs/raw/reference/auth/supabase.mdx +4 -4
- package/.docs/raw/reference/auth/workos.mdx +4 -4
- package/.docs/raw/reference/cli/mastra.mdx +7 -7
- package/.docs/raw/reference/client-js/agents.mdx +6 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +7 -7
- package/.docs/raw/reference/client-js/memory.mdx +24 -16
- package/.docs/raw/reference/client-js/observability.mdx +11 -11
- package/.docs/raw/reference/client-js/workflows.mdx +6 -34
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +2 -2
- package/.docs/raw/reference/core/getLogger.mdx +2 -2
- package/.docs/raw/reference/core/getMCPServer.mdx +31 -15
- package/.docs/raw/reference/core/getMCPServerById.mdx +81 -0
- package/.docs/raw/reference/core/getScorer.mdx +3 -3
- package/.docs/raw/reference/core/getScorerById.mdx +79 -0
- package/.docs/raw/reference/core/getServer.mdx +2 -2
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getTelemetry.mdx +2 -2
- package/.docs/raw/reference/core/getVector.mdx +2 -2
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +2 -2
- package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
- package/.docs/raw/reference/core/listMCPServers.mdx +65 -0
- package/.docs/raw/reference/core/listScorers.mdx +3 -3
- package/.docs/raw/reference/core/listVectors.mdx +36 -0
- package/.docs/raw/reference/core/listWorkflows.mdx +6 -6
- package/.docs/raw/reference/core/mastra-class.mdx +3 -2
- package/.docs/raw/reference/core/setLogger.mdx +2 -2
- package/.docs/raw/reference/core/setStorage.mdx +3 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
- package/.docs/raw/reference/deployer/cloudflare.mdx +2 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -6
- package/.docs/raw/reference/deployer/netlify.mdx +2 -2
- package/.docs/raw/reference/deployer/vercel.mdx +3 -3
- package/.docs/raw/reference/evals/answer-relevancy.mdx +164 -126
- package/.docs/raw/reference/{scorers → evals}/answer-similarity.mdx +27 -27
- package/.docs/raw/reference/evals/bias.mdx +149 -115
- package/.docs/raw/reference/evals/completeness.mdx +148 -117
- package/.docs/raw/reference/evals/content-similarity.mdx +126 -113
- package/.docs/raw/reference/evals/context-precision.mdx +290 -133
- package/.docs/raw/reference/{scorers → evals}/context-relevance.mdx +6 -6
- package/.docs/raw/reference/{scorers → evals}/create-scorer.mdx +11 -11
- package/.docs/raw/reference/evals/faithfulness.mdx +163 -121
- package/.docs/raw/reference/evals/hallucination.mdx +159 -132
- package/.docs/raw/reference/evals/keyword-coverage.mdx +169 -125
- package/.docs/raw/reference/{scorers → evals}/mastra-scorer.mdx +5 -5
- package/.docs/raw/reference/{scorers → evals}/noise-sensitivity.mdx +9 -9
- package/.docs/raw/reference/evals/prompt-alignment.mdx +604 -182
- package/.docs/raw/reference/{scorers/run-experiment.mdx → evals/run-evals.mdx} +17 -18
- package/.docs/raw/reference/evals/textual-difference.mdx +149 -117
- package/.docs/raw/reference/evals/tone-consistency.mdx +149 -125
- package/.docs/raw/reference/{scorers → evals}/tool-call-accuracy.mdx +8 -6
- package/.docs/raw/reference/evals/toxicity.mdx +152 -96
- package/.docs/raw/reference/{observability/logging → logging}/pino-logger.mdx +2 -2
- package/.docs/raw/reference/memory/createThread.mdx +5 -5
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -7
- package/.docs/raw/reference/memory/getThreadById.mdx +4 -4
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +110 -0
- package/.docs/raw/reference/memory/memory-class.mdx +13 -9
- package/.docs/raw/reference/memory/query.mdx +58 -57
- package/.docs/raw/reference/memory/recall.mdx +185 -0
- package/.docs/raw/reference/observability/tracing/configuration.mdx +245 -0
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/arize.mdx +13 -13
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +11 -8
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/cloud-exporter.mdx +21 -19
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/console-exporter.mdx +49 -17
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/default-exporter.mdx +42 -41
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +10 -7
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +10 -7
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/otel.mdx +5 -5
- package/.docs/raw/reference/observability/tracing/instances.mdx +168 -0
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/interfaces.mdx +115 -89
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/reference/observability/{ai-tracing/span.mdx → tracing/spans.mdx} +59 -41
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
- package/.docs/raw/reference/processors/language-detector.mdx +1 -1
- package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
- package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
- package/.docs/raw/reference/rag/chunk.mdx +1 -8
- package/.docs/raw/reference/rag/database-config.mdx +7 -7
- package/.docs/raw/reference/rag/metadata-filters.mdx +14 -11
- package/.docs/raw/reference/storage/libsql.mdx +2 -0
- package/.docs/raw/reference/storage/mssql.mdx +5 -0
- package/.docs/raw/reference/storage/postgresql.mdx +6 -0
- package/.docs/raw/reference/storage/upstash.mdx +1 -0
- package/.docs/raw/reference/streaming/agents/stream.mdx +12 -12
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +8 -8
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -3
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +3 -3
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +6 -6
- package/.docs/raw/reference/streaming/workflows/stream.mdx +10 -10
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +11 -11
- package/.docs/raw/reference/templates/overview.mdx +2 -2
- package/.docs/raw/reference/tools/create-tool.mdx +52 -35
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +15 -15
- package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
- package/.docs/raw/reference/tools/mcp-server.mdx +119 -35
- package/.docs/raw/reference/tools/vector-query-tool.mdx +27 -26
- package/.docs/raw/reference/vectors/libsql.mdx +1 -0
- package/.docs/raw/reference/vectors/pg.mdx +3 -0
- package/.docs/raw/reference/vectors/upstash.mdx +1 -0
- package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -4
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +14 -14
- package/.docs/raw/reference/workflows/run-methods/start.mdx +17 -17
- package/.docs/raw/reference/workflows/run.mdx +1 -8
- package/.docs/raw/reference/workflows/step.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -13
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +5 -0
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow.mdx +1 -1
- package/.docs/raw/server-db/custom-api-routes.mdx +2 -2
- package/.docs/raw/server-db/mastra-client.mdx +19 -18
- package/.docs/raw/server-db/middleware.mdx +7 -7
- package/.docs/raw/server-db/production-server.mdx +4 -4
- package/.docs/raw/server-db/{runtime-context.mdx → request-context.mdx} +46 -45
- package/.docs/raw/server-db/storage.mdx +29 -21
- package/.docs/raw/streaming/events.mdx +3 -3
- package/.docs/raw/streaming/overview.mdx +5 -5
- package/.docs/raw/streaming/tool-streaming.mdx +18 -17
- package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
- package/.docs/raw/tools-mcp/advanced-usage.mdx +5 -4
- package/.docs/raw/tools-mcp/mcp-overview.mdx +32 -19
- package/.docs/raw/tools-mcp/overview.mdx +11 -11
- package/.docs/raw/voice/overview.mdx +63 -43
- package/.docs/raw/voice/speech-to-speech.mdx +5 -3
- package/.docs/raw/voice/speech-to-text.mdx +9 -8
- package/.docs/raw/voice/text-to-speech.mdx +12 -11
- package/.docs/raw/workflows/agents-and-tools.mdx +9 -5
- package/.docs/raw/workflows/control-flow.mdx +3 -3
- package/.docs/raw/workflows/error-handling.mdx +2 -21
- package/.docs/raw/workflows/human-in-the-loop.mdx +7 -4
- package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
- package/.docs/raw/workflows/input-data-mapping.mdx +107 -0
- package/.docs/raw/workflows/overview.mdx +17 -16
- package/.docs/raw/workflows/snapshots.mdx +13 -11
- package/.docs/raw/workflows/suspend-and-resume.mdx +23 -15
- package/CHANGELOG.md +52 -47
- package/README.md +11 -2
- package/dist/{chunk-TUAHUTTB.js → chunk-5NJC7NRO.js} +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
- package/dist/prepare-docs/prepare.js +1 -1
- package/dist/prompts/migration.d.ts +6 -0
- package/dist/prompts/migration.d.ts.map +1 -0
- package/dist/stdio.js +402 -30
- package/dist/tools/migration.d.ts +40 -0
- package/dist/tools/migration.d.ts.map +1 -0
- package/package.json +8 -12
- package/.docs/organized/changelogs/%40mastra%2Fcloud.md +0 -302
- package/.docs/raw/observability/nextjs-tracing.mdx +0 -109
- package/.docs/raw/observability/otel-tracing.mdx +0 -189
- package/.docs/raw/reference/agents/getScorers.mdx +0 -69
- package/.docs/raw/reference/agents/getTools.mdx +0 -69
- package/.docs/raw/reference/agents/getWorkflows.mdx +0 -69
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +0 -143
- package/.docs/raw/reference/core/getAgents.mdx +0 -35
- package/.docs/raw/reference/core/getLogs.mdx +0 -96
- package/.docs/raw/reference/core/getLogsByRunId.mdx +0 -87
- package/.docs/raw/reference/core/getMCPServers.mdx +0 -36
- package/.docs/raw/reference/core/getMemory.mdx +0 -36
- package/.docs/raw/reference/core/getScorerByName.mdx +0 -78
- package/.docs/raw/reference/core/getScorers.mdx +0 -43
- package/.docs/raw/reference/core/getVectors.mdx +0 -36
- package/.docs/raw/reference/core/getWorkflows.mdx +0 -45
- package/.docs/raw/reference/evals/context-position.mdx +0 -197
- package/.docs/raw/reference/evals/context-relevancy.mdx +0 -196
- package/.docs/raw/reference/evals/contextual-recall.mdx +0 -196
- package/.docs/raw/reference/evals/summarization.mdx +0 -212
- package/.docs/raw/reference/legacyWorkflows/after.mdx +0 -89
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +0 -79
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +0 -33
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +0 -76
- package/.docs/raw/reference/legacyWorkflows/else.mdx +0 -68
- package/.docs/raw/reference/legacyWorkflows/events.mdx +0 -305
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +0 -110
- package/.docs/raw/reference/legacyWorkflows/if.mdx +0 -108
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +0 -158
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +0 -133
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +0 -207
- package/.docs/raw/reference/legacyWorkflows/start.mdx +0 -87
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +0 -100
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +0 -137
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +0 -93
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +0 -69
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +0 -196
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +0 -70
- package/.docs/raw/reference/legacyWorkflows/then.mdx +0 -72
- package/.docs/raw/reference/legacyWorkflows/until.mdx +0 -168
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +0 -124
- package/.docs/raw/reference/legacyWorkflows/while.mdx +0 -168
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +0 -234
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +0 -79
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +0 -110
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +0 -185
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +0 -238
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +0 -117
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +0 -81
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +0 -121
- package/.docs/raw/reference/observability/otel-tracing/providers/braintrust.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +0 -20
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +0 -73
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +0 -41
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +0 -84
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +0 -48
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +0 -43
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +0 -40
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +0 -227
- package/.docs/raw/reference/scorers/bias.mdx +0 -228
- package/.docs/raw/reference/scorers/completeness.mdx +0 -214
- package/.docs/raw/reference/scorers/content-similarity.mdx +0 -197
- package/.docs/raw/reference/scorers/context-precision.mdx +0 -352
- package/.docs/raw/reference/scorers/faithfulness.mdx +0 -241
- package/.docs/raw/reference/scorers/hallucination.mdx +0 -252
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +0 -229
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +0 -668
- package/.docs/raw/reference/scorers/textual-difference.mdx +0 -203
- package/.docs/raw/reference/scorers/tone-consistency.mdx +0 -211
- package/.docs/raw/reference/scorers/toxicity.mdx +0 -228
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +0 -73
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +0 -24
- package/.docs/raw/scorers/evals-old-api/overview.mdx +0 -106
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +0 -85
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +0 -58
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +0 -50
- package/.docs/raw/workflows-legacy/control-flow.mdx +0 -774
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +0 -239
- package/.docs/raw/workflows-legacy/error-handling.mdx +0 -187
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +0 -360
- package/.docs/raw/workflows-legacy/overview.mdx +0 -182
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +0 -156
- package/.docs/raw/workflows-legacy/steps.mdx +0 -115
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +0 -406
- package/.docs/raw/workflows-legacy/variables.mdx +0 -318
|
@@ -29,12 +29,13 @@ import { Agent } from '@mastra/core/agent';
|
|
|
29
29
|
import { weatherTool } from '../tools';
|
|
30
30
|
|
|
31
31
|
export const weatherAgent = new Agent({
|
|
32
|
+
id: 'weather-agent',
|
|
32
33
|
name: 'Weather Agent',
|
|
33
34
|
instructions: `You are a helpful weather assistant that provides accurate weather information.
|
|
34
35
|
|
|
35
36
|
Your primary function is to help users get weather details for specific locations. When responding:
|
|
36
37
|
- Always ask for a location if none is provided
|
|
37
|
-
- If the location name isn
|
|
38
|
+
- If the location name isn't in English, please translate it
|
|
38
39
|
- If giving a location with multiple parts (e.g. "New York, NY"), use the most relevant part (e.g. "New York")
|
|
39
40
|
- Include relevant details like humidity, wind conditions, and precipitation
|
|
40
41
|
- Keep responses concise but informative
|
|
@@ -83,19 +84,17 @@ export const authConfig = getAuthProvider();
|
|
|
83
84
|
|
|
84
85
|
### mastra/index.ts
|
|
85
86
|
```typescript
|
|
86
|
-
import { Mastra } from '@mastra/core';
|
|
87
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
87
88
|
|
|
88
89
|
import { weatherAgent } from './agents';
|
|
89
|
-
import { weatherWorkflow
|
|
90
|
-
import { weatherWorkflow } from './workflows/new-workflow';
|
|
90
|
+
import { weatherWorkflow } from './workflows';
|
|
91
91
|
import { authConfig } from './auth';
|
|
92
92
|
|
|
93
93
|
export const mastra = new Mastra({
|
|
94
94
|
agents: { weatherAgent },
|
|
95
|
-
legacy_workflows: { legacyWeatherWorkflow },
|
|
96
95
|
workflows: { weatherWorkflow },
|
|
97
96
|
server: {
|
|
98
|
-
|
|
97
|
+
auth: authConfig,
|
|
99
98
|
},
|
|
100
99
|
});
|
|
101
100
|
|
|
@@ -133,8 +132,8 @@ export const weatherTool = createTool({
|
|
|
133
132
|
conditions: z.string(),
|
|
134
133
|
location: z.string(),
|
|
135
134
|
}),
|
|
136
|
-
execute: async
|
|
137
|
-
return await getWeather(
|
|
135
|
+
execute: async input => {
|
|
136
|
+
return await getWeather(inputData.location);
|
|
138
137
|
},
|
|
139
138
|
});
|
|
140
139
|
|
|
@@ -203,181 +202,13 @@ function getWeatherCondition(code: number): string {
|
|
|
203
202
|
|
|
204
203
|
### mastra/workflows/index.ts
|
|
205
204
|
```typescript
|
|
206
|
-
import { openai } from '@ai-sdk/openai';
|
|
207
|
-
import { Agent } from '@mastra/core/agent';
|
|
208
|
-
import { Step, Workflow } from '@mastra/core/workflows';
|
|
209
|
-
import { z } from 'zod';
|
|
210
|
-
|
|
211
|
-
const agent = new Agent({
|
|
212
|
-
name: 'Weather Agent',
|
|
213
|
-
instructions: `
|
|
214
|
-
You are a local activities and travel expert who excels at weather-based planning. Analyze the weather data and provide practical activity recommendations.
|
|
215
|
-
For each day in the forecast, structure your response exactly as follows:
|
|
216
|
-
📅 [Day, Month Date, Year]
|
|
217
|
-
═══════════════════════════
|
|
218
|
-
🌡️ WEATHER SUMMARY
|
|
219
|
-
• Conditions: [brief description]
|
|
220
|
-
• Temperature: [X°C/Y°F to A°C/B°F]
|
|
221
|
-
• Precipitation: [X% chance]
|
|
222
|
-
🌅 MORNING ACTIVITIES
|
|
223
|
-
Outdoor:
|
|
224
|
-
• [Activity Name] - [Brief description including specific location/route]
|
|
225
|
-
Best timing: [specific time range]
|
|
226
|
-
Note: [relevant weather consideration]
|
|
227
|
-
🌞 AFTERNOON ACTIVITIES
|
|
228
|
-
Outdoor:
|
|
229
|
-
• [Activity Name] - [Brief description including specific location/route]
|
|
230
|
-
Best timing: [specific time range]
|
|
231
|
-
Note: [relevant weather consideration]
|
|
232
|
-
🏠 INDOOR ALTERNATIVES
|
|
233
|
-
• [Activity Name] - [Brief description including specific venue]
|
|
234
|
-
Ideal for: [weather condition that would trigger this alternative]
|
|
235
|
-
⚠️ SPECIAL CONSIDERATIONS
|
|
236
|
-
• [Any relevant weather warnings, UV index, wind conditions, etc.]
|
|
237
|
-
Guidelines:
|
|
238
|
-
- Suggest 2-3 time-specific outdoor activities per day
|
|
239
|
-
- Include 1-2 indoor backup options
|
|
240
|
-
- For precipitation >50%, lead with indoor activities
|
|
241
|
-
- All activities must be specific to the location
|
|
242
|
-
- Include specific venues, trails, or locations
|
|
243
|
-
- Consider activity intensity based on temperature
|
|
244
|
-
- Keep descriptions concise but informative
|
|
245
|
-
Maintain this exact formatting for consistency, using the emoji and section headers as shown.
|
|
246
|
-
`,
|
|
247
|
-
model: openai('gpt-4o'),
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
const fetchWeather = new Step({
|
|
251
|
-
id: 'fetch-weather',
|
|
252
|
-
description: 'Fetches weather forecast for a given city',
|
|
253
|
-
inputSchema: z.object({
|
|
254
|
-
city: z.string().describe('The city to get the weather for'),
|
|
255
|
-
}),
|
|
256
|
-
execute: async ({ context }) => {
|
|
257
|
-
const triggerData = context?.getStepResult<{ city: string }>('trigger');
|
|
258
|
-
|
|
259
|
-
if (!triggerData) {
|
|
260
|
-
throw new Error('Trigger data not found');
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
const geocodingUrl = `https://geocoding-api.open-meteo.com/v1/search?name=${encodeURIComponent(triggerData.city)}&count=1`;
|
|
264
|
-
const geocodingResponse = await fetch(geocodingUrl);
|
|
265
|
-
const geocodingData = await geocodingResponse.json();
|
|
266
|
-
|
|
267
|
-
if (!geocodingData.results?.[0]) {
|
|
268
|
-
throw new Error(`Location '${triggerData.city}' not found`);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
const { latitude, longitude, name } = geocodingData.results[0];
|
|
272
|
-
|
|
273
|
-
const weatherUrl = `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_mean,weathercode&timezone=auto`;
|
|
274
|
-
const response = await fetch(weatherUrl);
|
|
275
|
-
const data = await response.json();
|
|
276
|
-
|
|
277
|
-
const forecast = data.daily.time.map((date: string, index: number) => ({
|
|
278
|
-
date,
|
|
279
|
-
maxTemp: data.daily.temperature_2m_max[index],
|
|
280
|
-
minTemp: data.daily.temperature_2m_min[index],
|
|
281
|
-
precipitationChance: data.daily.precipitation_probability_mean[index],
|
|
282
|
-
condition: getWeatherCondition(data.daily.weathercode[index]),
|
|
283
|
-
location: name,
|
|
284
|
-
}));
|
|
285
|
-
|
|
286
|
-
return forecast;
|
|
287
|
-
},
|
|
288
|
-
});
|
|
289
|
-
|
|
290
|
-
const forecastSchema = z.array(
|
|
291
|
-
z.object({
|
|
292
|
-
date: z.string(),
|
|
293
|
-
maxTemp: z.number(),
|
|
294
|
-
minTemp: z.number(),
|
|
295
|
-
precipitationChance: z.number(),
|
|
296
|
-
condition: z.string(),
|
|
297
|
-
location: z.string(),
|
|
298
|
-
}),
|
|
299
|
-
);
|
|
300
|
-
|
|
301
|
-
const planActivities = new Step({
|
|
302
|
-
id: 'plan-activities',
|
|
303
|
-
description: 'Suggests activities based on weather conditions',
|
|
304
|
-
inputSchema: forecastSchema,
|
|
305
|
-
execute: async ({ context, mastra }) => {
|
|
306
|
-
const forecast = context?.getStepResult<z.infer<typeof forecastSchema>>('fetch-weather');
|
|
307
|
-
|
|
308
|
-
if (!forecast) {
|
|
309
|
-
throw new Error('Forecast data not found');
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
const prompt = `Based on the following weather forecast for ${forecast[0].location}, suggest appropriate activities:
|
|
313
|
-
${JSON.stringify(forecast, null, 2)}
|
|
314
|
-
`;
|
|
315
|
-
|
|
316
|
-
const response = await agent.stream([
|
|
317
|
-
{
|
|
318
|
-
role: 'user',
|
|
319
|
-
content: prompt,
|
|
320
|
-
},
|
|
321
|
-
]);
|
|
322
|
-
|
|
323
|
-
let activitiesText = '';
|
|
324
|
-
|
|
325
|
-
for await (const chunk of response.textStream) {
|
|
326
|
-
process.stdout.write(chunk);
|
|
327
|
-
activitiesText += chunk;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
return {
|
|
331
|
-
activities: activitiesText,
|
|
332
|
-
};
|
|
333
|
-
},
|
|
334
|
-
});
|
|
335
|
-
|
|
336
|
-
function getWeatherCondition(code: number): string {
|
|
337
|
-
const conditions: Record<number, string> = {
|
|
338
|
-
0: 'Clear sky',
|
|
339
|
-
1: 'Mainly clear',
|
|
340
|
-
2: 'Partly cloudy',
|
|
341
|
-
3: 'Overcast',
|
|
342
|
-
45: 'Foggy',
|
|
343
|
-
48: 'Depositing rime fog',
|
|
344
|
-
51: 'Light drizzle',
|
|
345
|
-
53: 'Moderate drizzle',
|
|
346
|
-
55: 'Dense drizzle',
|
|
347
|
-
61: 'Slight rain',
|
|
348
|
-
63: 'Moderate rain',
|
|
349
|
-
65: 'Heavy rain',
|
|
350
|
-
71: 'Slight snow fall',
|
|
351
|
-
73: 'Moderate snow fall',
|
|
352
|
-
75: 'Heavy snow fall',
|
|
353
|
-
95: 'Thunderstorm',
|
|
354
|
-
};
|
|
355
|
-
return conditions[code] || 'Unknown';
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
const weatherWorkflow = new Workflow({
|
|
359
|
-
name: 'weather-workflow',
|
|
360
|
-
triggerSchema: z.object({
|
|
361
|
-
city: z.string().describe('The city to get the weather for'),
|
|
362
|
-
}),
|
|
363
|
-
})
|
|
364
|
-
.step(fetchWeather)
|
|
365
|
-
.then(planActivities);
|
|
366
|
-
|
|
367
|
-
weatherWorkflow.commit();
|
|
368
|
-
|
|
369
|
-
export { weatherWorkflow };
|
|
370
|
-
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
### mastra/workflows/new-workflow.ts
|
|
374
|
-
```typescript
|
|
375
205
|
import { Agent } from '@mastra/core/agent';
|
|
376
206
|
import { createStep, createWorkflow } from '@mastra/core/workflows';
|
|
377
207
|
import { z } from 'zod';
|
|
378
208
|
import { openai } from '@ai-sdk/openai';
|
|
379
209
|
|
|
380
210
|
const agent = new Agent({
|
|
211
|
+
id: 'weather-agent',
|
|
381
212
|
name: 'Weather Agent',
|
|
382
213
|
model: openai('gpt-4o'),
|
|
383
214
|
instructions: `
|
|
@@ -122,9 +122,9 @@ if (!process.env.FIREWORKS_API_KEY) {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
export const agent = new Agent({
|
|
125
|
+
id: 'example-agent',
|
|
126
|
+
name: 'Example Agent',
|
|
125
127
|
model: fireworks(`accounts/fireworks/models/deepseek-r1`),
|
|
126
|
-
|
|
127
|
-
name: 'Example agent',
|
|
128
128
|
instructions: `You are a helpful and intelligent AI agent.`,
|
|
129
129
|
memory: new Memory(),
|
|
130
130
|
});
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
{
|
|
4
4
|
"name": "example-headsup",
|
|
5
5
|
"engines": {
|
|
6
|
-
"node": ">=
|
|
6
|
+
"node": ">=22.13.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@ai-sdk/openai": "^1.3.23",
|
|
10
|
-
"@mastra/core": "^0.
|
|
11
|
-
"@mastra/libsql": "^0.
|
|
12
|
-
"@mastra/loggers": "^0.10.
|
|
13
|
-
"@mastra/memory": "^0.15.
|
|
10
|
+
"@mastra/core": "^0.23.1",
|
|
11
|
+
"@mastra/libsql": "^0.16.1",
|
|
12
|
+
"@mastra/loggers": "^0.10.18",
|
|
13
|
+
"@mastra/memory": "^0.15.9",
|
|
14
14
|
"zod": "^3.25.76"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@types/node": "^24.3.0",
|
|
18
|
-
"mastra": "^0.17.
|
|
18
|
+
"mastra": "^0.17.5",
|
|
19
19
|
"typescript": "^5.9.2"
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -29,6 +29,7 @@ import { Memory } from '@mastra/memory';
|
|
|
29
29
|
import { LibSQLVector } from '@mastra/libsql';
|
|
30
30
|
|
|
31
31
|
export const famousPersonAgent = new Agent({
|
|
32
|
+
id: 'famous-person-generator',
|
|
32
33
|
name: 'Famous Person Generator',
|
|
33
34
|
instructions: `You are a famous person generator for a "Heads Up" guessing game.
|
|
34
35
|
|
|
@@ -67,6 +68,7 @@ import { openai } from '@ai-sdk/openai';
|
|
|
67
68
|
import { Agent } from '@mastra/core/agent';
|
|
68
69
|
|
|
69
70
|
export const gameAgent = new Agent({
|
|
71
|
+
id: 'game-agent',
|
|
70
72
|
name: 'Game Agent',
|
|
71
73
|
instructions: `You are a helpful game assistant for a "Heads Up" guessing game.
|
|
72
74
|
|
|
@@ -111,7 +113,8 @@ export const mastra = new Mastra({
|
|
|
111
113
|
workflows: { headsUpWorkflow },
|
|
112
114
|
agents: { famousPersonAgent, gameAgent, guessVerifierAgent },
|
|
113
115
|
storage: new LibSQLStore({
|
|
114
|
-
|
|
116
|
+
id: 'heads-up-game-storage',
|
|
117
|
+
// stores observability, evals, ... into file storage for persistence across playground refreshes
|
|
115
118
|
url: 'file:../mastra.db',
|
|
116
119
|
}),
|
|
117
120
|
logger: new PinoLogger({
|
|
@@ -34,6 +34,7 @@ import './mastra/tools/sse';
|
|
|
34
34
|
|
|
35
35
|
console.log(chalk.blue(`Creating agent`));
|
|
36
36
|
export const stockWeatherAgent = new Agent({
|
|
37
|
+
id: 'stock-weather-agent',
|
|
37
38
|
name: 'Stock + Weather Agent',
|
|
38
39
|
instructions:
|
|
39
40
|
'You are a helpful assistant that provides current stock prices. When asked about a stock, use the stock price tool to fetch the stock price. You also love to check the weather when your stock market buddies ask you what the weather is.',
|
|
@@ -56,7 +57,7 @@ const mcp = new MCPClient({
|
|
|
56
57
|
},
|
|
57
58
|
});
|
|
58
59
|
|
|
59
|
-
const toolsets = await mcp.
|
|
60
|
+
const toolsets = await mcp.listToolsets();
|
|
60
61
|
|
|
61
62
|
console.log({ toolsets });
|
|
62
63
|
|
|
@@ -110,18 +111,19 @@ const mcp = new MCPClient({
|
|
|
110
111
|
});
|
|
111
112
|
|
|
112
113
|
export const stockWeatherAgent = new Agent({
|
|
114
|
+
id: 'stock-weather-agent',
|
|
113
115
|
name: 'Stock + Weather Agent',
|
|
114
116
|
instructions:
|
|
115
117
|
'You are a helpful assistant that provides current stock prices. When asked about a stock, use the stock price tool to fetch the stock price. You also love to check the weather when your stock market buddies ask you what the weather is.',
|
|
116
118
|
model: openai('gpt-4o'),
|
|
117
|
-
tools: await mcp.
|
|
119
|
+
tools: await mcp.listTools(),
|
|
118
120
|
});
|
|
119
121
|
|
|
120
122
|
```
|
|
121
123
|
|
|
122
124
|
### mastra/index.ts
|
|
123
125
|
```typescript
|
|
124
|
-
import { Mastra } from '@mastra/core';
|
|
126
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
125
127
|
|
|
126
128
|
import { stockWeatherAgent } from './agents';
|
|
127
129
|
|
|
@@ -28,17 +28,18 @@ const mcp = new MCPClient({
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
export const mcpRegistryAgent = new Agent({
|
|
31
|
+
id: 'mcp-registry-agent',
|
|
31
32
|
name: 'MCP Registry Agent',
|
|
32
33
|
instructions: `You are a helpful assistant that provides information about MCP registries. You can search for registries by ID, tag, or name.`,
|
|
33
34
|
model: openai('gpt-4o'),
|
|
34
|
-
tools: await mcp.
|
|
35
|
+
tools: await mcp.listTools(),
|
|
35
36
|
});
|
|
36
37
|
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
### mastra/index.ts
|
|
40
41
|
```typescript
|
|
41
|
-
import { Mastra } from '@mastra/core';
|
|
42
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
42
43
|
import { PinoLogger } from '@mastra/loggers';
|
|
43
44
|
import { mcpRegistryAgent } from './agents/index';
|
|
44
45
|
|
|
@@ -166,6 +166,7 @@ import { LibSQLStore } from '@mastra/libsql';
|
|
|
166
166
|
|
|
167
167
|
// Create LibSQL storage for persistent per-resource working memory
|
|
168
168
|
const storage = new LibSQLStore({
|
|
169
|
+
id: 'memory-demo-storage',
|
|
169
170
|
url: 'file:./memory-demo.db',
|
|
170
171
|
});
|
|
171
172
|
|
|
@@ -175,7 +176,7 @@ export const memory = new Memory({
|
|
|
175
176
|
lastMessages: 5,
|
|
176
177
|
workingMemory: {
|
|
177
178
|
enabled: true,
|
|
178
|
-
scope: 'resource', //
|
|
179
|
+
scope: 'resource', // Default: Per-resource working memory persists across all threads
|
|
179
180
|
template: `# User Profile
|
|
180
181
|
- **Name**:
|
|
181
182
|
- **Location**:
|
|
@@ -189,6 +190,7 @@ export const memory = new Memory({
|
|
|
189
190
|
});
|
|
190
191
|
|
|
191
192
|
export const assistantAgent = new Agent({
|
|
193
|
+
id: 'personal-assistant',
|
|
192
194
|
name: 'Personal Assistant',
|
|
193
195
|
instructions: `You are a helpful personal assistant with persistent memory across ALL conversations.
|
|
194
196
|
|
|
@@ -212,7 +214,7 @@ When you first meet someone, ask for their name and learn about them. In subsequ
|
|
|
212
214
|
|
|
213
215
|
### mastra/index.ts
|
|
214
216
|
```typescript
|
|
215
|
-
import { Mastra } from '@mastra/core';
|
|
217
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
216
218
|
import { assistantAgent } from './agents';
|
|
217
219
|
|
|
218
220
|
export const mastra = new Mastra({
|
|
@@ -128,6 +128,7 @@ const memory = new Memory({
|
|
|
128
128
|
});
|
|
129
129
|
|
|
130
130
|
export const todoAgent = new Agent({
|
|
131
|
+
id: 'todo-agent',
|
|
131
132
|
name: 'TODO Agent',
|
|
132
133
|
instructions:
|
|
133
134
|
'You are a helpful todolist AI agent. Help the user manage their todolist. If there is no list yet ask them what to add! If there is a list always print it out when the chat starts. For each item add emojis, dates, titles (with an index number starting at 1), descriptions, and statuses. For each piece of info add an emoji to the left of it. Also support subtask lists with bullet points inside a box. Help the user timebox each task by asking them how long it will take. You MUST save the todolist in every response message by printing out <working_memory> blocks. If you do not save it in working_memory you will forget - you only have access to one previous message at any time. The user is expecting you to save your memory in every interaction. If the user expresses any preference on how the list should be displayed, save that info in working_memory so you know how to format it later.',
|
|
@@ -134,6 +134,7 @@ const memory = new Memory({
|
|
|
134
134
|
});
|
|
135
135
|
|
|
136
136
|
export const memoryAgent = new Agent({
|
|
137
|
+
id: 'memory-agent',
|
|
137
138
|
name: 'Memory Agent',
|
|
138
139
|
instructions: 'You are a helpful AI agent, looking to assist however you can.',
|
|
139
140
|
model: openai('gpt-4o-mini'),
|
|
@@ -144,7 +145,7 @@ export const memoryAgent = new Agent({
|
|
|
144
145
|
|
|
145
146
|
### mastra/index.ts
|
|
146
147
|
```typescript
|
|
147
|
-
import { Mastra } from '@mastra/core';
|
|
148
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
148
149
|
|
|
149
150
|
import { memoryAgent } from './agents';
|
|
150
151
|
|
|
@@ -160,7 +160,8 @@ const memory = new Memory({
|
|
|
160
160
|
});
|
|
161
161
|
|
|
162
162
|
export const chefAgent = new Agent({
|
|
163
|
-
|
|
163
|
+
id: 'chef-agent',
|
|
164
|
+
name: 'Chef Agent',
|
|
164
165
|
instructions:
|
|
165
166
|
'You are Michel, a practical and experienced home chef who helps people cook great meals with whatever ingredients they have available. Your first priority is understanding what ingredients and equipment the user has access to, then suggesting achievable recipes. You explain cooking steps clearly and offer substitutions when needed, maintaining a friendly and encouraging tone throughout.',
|
|
166
167
|
model: openai('gpt-4o'),
|
|
@@ -168,6 +169,7 @@ export const chefAgent = new Agent({
|
|
|
168
169
|
});
|
|
169
170
|
|
|
170
171
|
export const memoryAgent = new Agent({
|
|
172
|
+
id: 'memory-agent',
|
|
171
173
|
name: 'Memory Agent',
|
|
172
174
|
instructions:
|
|
173
175
|
"You are an AI agent with the ability to automatically recall memories from previous interactions. You may have conversations that last hours, days, months, or years. If you don't know it already you should ask for the users name and some info about them.",
|
|
@@ -179,7 +181,7 @@ export const memoryAgent = new Agent({
|
|
|
179
181
|
|
|
180
182
|
### mastra/index.ts
|
|
181
183
|
```typescript
|
|
182
|
-
import { Mastra } from '@mastra/core';
|
|
184
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
183
185
|
|
|
184
186
|
import { chefAgent, memoryAgent } from './agents';
|
|
185
187
|
|
|
@@ -176,7 +176,8 @@ export const memory = new Memory({
|
|
|
176
176
|
});
|
|
177
177
|
|
|
178
178
|
export const chefAgent = new Agent({
|
|
179
|
-
|
|
179
|
+
id: 'chef-agent',
|
|
180
|
+
name: 'Chef Agent',
|
|
180
181
|
instructions:
|
|
181
182
|
'You are Michel, a practical and experienced home chef who helps people cook great meals with whatever ingredients they have available. Your first priority is understanding what ingredients and equipment the user has access to, then suggesting achievable recipes. You explain cooking steps clearly and offer substitutions when needed, maintaining a friendly and encouraging tone throughout.',
|
|
182
183
|
model: openai('gpt-4o'),
|
|
@@ -184,6 +185,7 @@ export const chefAgent = new Agent({
|
|
|
184
185
|
});
|
|
185
186
|
|
|
186
187
|
export const memoryAgent = new Agent({
|
|
188
|
+
id: 'memory-agent',
|
|
187
189
|
name: 'Memory Agent',
|
|
188
190
|
instructions:
|
|
189
191
|
"You are an AI agent with the ability to automatically recall memories from previous interactions. You may have conversations that last hours, days, months, or years. If you don't know it already you should ask for the users name and some info about them.",
|
|
@@ -195,7 +197,7 @@ export const memoryAgent = new Agent({
|
|
|
195
197
|
|
|
196
198
|
### mastra/index.ts
|
|
197
199
|
```typescript
|
|
198
|
-
import { Mastra } from '@mastra/core';
|
|
200
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
199
201
|
|
|
200
202
|
import 'dotenv/config';
|
|
201
203
|
|
|
@@ -179,7 +179,8 @@ export const memory = new Memory({
|
|
|
179
179
|
});
|
|
180
180
|
|
|
181
181
|
export const chefAgent = new Agent({
|
|
182
|
-
|
|
182
|
+
id: 'chef-agent',
|
|
183
|
+
name: 'Chef Agent',
|
|
183
184
|
instructions:
|
|
184
185
|
'You are Michel, a practical and experienced home chef who helps people cook great meals with whatever ingredients they have available. Your first priority is understanding what ingredients and equipment the user has access to, then suggesting achievable recipes. You explain cooking steps clearly and offer substitutions when needed, maintaining a friendly and encouraging tone throughout.',
|
|
185
186
|
model: openai('gpt-4o'),
|
|
@@ -187,6 +188,7 @@ export const chefAgent = new Agent({
|
|
|
187
188
|
});
|
|
188
189
|
|
|
189
190
|
export const memoryAgent = new Agent({
|
|
191
|
+
id: 'memory-agent',
|
|
190
192
|
name: 'Memory Agent',
|
|
191
193
|
instructions:
|
|
192
194
|
"You are an AI agent with the ability to automatically recall memories from previous interactions. You may have conversations that last hours, days, months, or years. If you don't know it already you should ask for the users name and some info about them.",
|
|
@@ -198,7 +200,7 @@ export const memoryAgent = new Agent({
|
|
|
198
200
|
|
|
199
201
|
### mastra/index.ts
|
|
200
202
|
```typescript
|
|
201
|
-
import { Mastra } from '@mastra/core';
|
|
203
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
202
204
|
|
|
203
205
|
import 'dotenv/config';
|
|
204
206
|
|
|
@@ -25,7 +25,7 @@ import Readline from 'readline';
|
|
|
25
25
|
|
|
26
26
|
import { openai } from '@ai-sdk/openai';
|
|
27
27
|
import { Agent } from '@mastra/core/agent';
|
|
28
|
-
import type { CoreMessage } from '@mastra/core';
|
|
28
|
+
import type { CoreMessage } from '@mastra/core/llm';
|
|
29
29
|
import { MemoryProcessor, MemoryProcessorOpts } from '@mastra/core/memory';
|
|
30
30
|
import { Memory } from '@mastra/memory';
|
|
31
31
|
|
|
@@ -65,6 +65,7 @@ class ForgetfulProcessor extends MemoryProcessor {
|
|
|
65
65
|
|
|
66
66
|
// Interviewer agent that accidentally forgets your name all the time
|
|
67
67
|
const agent = new Agent({
|
|
68
|
+
id: 'forgetful-job-interviewer',
|
|
68
69
|
name: 'Forgetful Job Interviewer',
|
|
69
70
|
instructions:
|
|
70
71
|
"You are a professional job interviewer for a technology company. Conduct insightful interviews by asking relevant questions about skills, experience, and problem-solving abilities. Respond to candidate answers and ask follow-up questions. Keep the interview professional and engaging. Remember details the candidate shares earlier in the conversation. Sometimes you forget things by accident. The system will show you if you forgot. Don't be embarassed, you can admit when you forget something, you'll know when you do because there will be a message wrapped in <forgetten> tags. Don't refer to the user by their name, it comes across as too eager",
|
|
@@ -137,9 +138,9 @@ while (true) {
|
|
|
137
138
|
### mastra/agents/index.ts
|
|
138
139
|
```typescript
|
|
139
140
|
import { openai } from '@ai-sdk/openai';
|
|
140
|
-
import { createTool } from '@mastra/core';
|
|
141
|
+
import { createTool } from '@mastra/core/tools';
|
|
141
142
|
import { Agent } from '@mastra/core/agent';
|
|
142
|
-
import type { CoreMessage } from '@mastra/core';
|
|
143
|
+
import type { CoreMessage } from '@mastra/core/llm';
|
|
143
144
|
import { MemoryProcessor, MemoryProcessorOpts } from '@mastra/core/memory';
|
|
144
145
|
import { Memory } from '@mastra/memory';
|
|
145
146
|
import { TokenLimiter, ToolCallFilter } from '@mastra/memory/processors';
|
|
@@ -196,9 +197,9 @@ const searchTool = createTool({
|
|
|
196
197
|
inputSchema: z.object({
|
|
197
198
|
query: z.string().describe('The search query'),
|
|
198
199
|
}),
|
|
199
|
-
execute: async
|
|
200
|
+
execute: async input => {
|
|
200
201
|
// Simulate web search results
|
|
201
|
-
return `Search results for "${query}":
|
|
202
|
+
return `Search results for "${inputData.query}":
|
|
202
203
|
1. Top result with important information
|
|
203
204
|
2. Secondary information related to the query
|
|
204
205
|
3. Additional context that might be helpful`;
|
|
@@ -207,6 +208,7 @@ const searchTool = createTool({
|
|
|
207
208
|
|
|
208
209
|
// Technical support agent with token limiting
|
|
209
210
|
export const supportAgent = new Agent({
|
|
211
|
+
id: 'technical-support',
|
|
210
212
|
name: 'Technical Support',
|
|
211
213
|
instructions:
|
|
212
214
|
'You are a technical support agent who helps users solve software problems. You provide clear, step-by-step instructions and ask clarifying questions when needed. You remember details from earlier in the conversation. Your goal is to efficiently resolve user issues.',
|
|
@@ -231,6 +233,7 @@ const interviewMemory = new Memory({
|
|
|
231
233
|
|
|
232
234
|
// Interviewer agent that filters out tool calls and sensitive content
|
|
233
235
|
export const interviewerAgent = new Agent({
|
|
236
|
+
id: 'forgetful-job-interviewer',
|
|
234
237
|
name: 'Forgetful Job Interviewer',
|
|
235
238
|
instructions:
|
|
236
239
|
"You are a professional job interviewer for a technology company. Conduct insightful interviews by asking relevant questions about skills, experience, and problem-solving abilities. Respond to candidate answers and ask follow-up questions. Keep the interview professional and engaging. Remember details the candidate shares earlier in the conversation. Sometimes you forget things by accident. The system will show you if you forgot. Don't be embarrassed, you can admit when you forget something, you'll know when you do because there will be a message wrapped in <forgetten> tags. Don't refer to the user by their name, it comes across as too eager",
|
|
@@ -242,7 +245,7 @@ export const interviewerAgent = new Agent({
|
|
|
242
245
|
|
|
243
246
|
### mastra/index.ts
|
|
244
247
|
```typescript
|
|
245
|
-
import { Mastra } from '@mastra/core';
|
|
248
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
246
249
|
|
|
247
250
|
import { supportAgent, interviewerAgent } from './agents';
|
|
248
251
|
|
|
@@ -256,7 +259,7 @@ export const mastra = new Mastra({
|
|
|
256
259
|
```typescript
|
|
257
260
|
import 'dotenv/config';
|
|
258
261
|
import { openai } from '@ai-sdk/openai';
|
|
259
|
-
import { Mastra } from '@mastra/core';
|
|
262
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
260
263
|
import { PinoLogger } from '@mastra/loggers';
|
|
261
264
|
import { createTool } from '@mastra/core/tools';
|
|
262
265
|
import { Agent } from '@mastra/core/agent';
|
|
@@ -340,6 +343,7 @@ const memory = new Memory({
|
|
|
340
343
|
|
|
341
344
|
// Create an agent with the test tool
|
|
342
345
|
const tokenTestAgent = new Agent({
|
|
346
|
+
id: 'token-test-agent',
|
|
343
347
|
name: 'Token Test Agent',
|
|
344
348
|
instructions: 'You help test token limiting by calling tools that return large amounts of data.',
|
|
345
349
|
model: openai('gpt-4o-mini'),
|
|
@@ -447,7 +451,7 @@ import { openai } from '@ai-sdk/openai';
|
|
|
447
451
|
import { Agent } from '@mastra/core/agent';
|
|
448
452
|
import { Memory } from '@mastra/memory';
|
|
449
453
|
import { TokenLimiter } from '@mastra/memory/processors';
|
|
450
|
-
import { Mastra } from '@mastra/core';
|
|
454
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
451
455
|
import { PinoLogger } from '@mastra/loggers';
|
|
452
456
|
|
|
453
457
|
const memory = new Memory({
|
|
@@ -459,6 +463,7 @@ const memory = new Memory({
|
|
|
459
463
|
});
|
|
460
464
|
|
|
461
465
|
const techSupport = new Agent({
|
|
466
|
+
id: 'technical-support',
|
|
462
467
|
name: 'Technical Support',
|
|
463
468
|
instructions:
|
|
464
469
|
'You are a technical support agent who helps users solve software problems. You provide concise, short, instructions and ask clarifying questions when needed. You remember details from earlier in the conversation. Your goal is to efficiently resolve user issues. Make sure you provide concise responses without tons of text',
|
|
@@ -203,7 +203,7 @@ main();
|
|
|
203
203
|
### mastra/agents/index.ts
|
|
204
204
|
```typescript
|
|
205
205
|
import { openai } from '@ai-sdk/openai';
|
|
206
|
-
import { Agent } from '@mastra/core';
|
|
206
|
+
import { Agent } from '@mastra/core/agent';
|
|
207
207
|
import { Memory } from '@mastra/memory';
|
|
208
208
|
import { PgVector } from '@mastra/pg';
|
|
209
209
|
import { UpstashStore } from '@mastra/upstash';
|
|
@@ -224,7 +224,8 @@ const memory = new Memory({
|
|
|
224
224
|
});
|
|
225
225
|
|
|
226
226
|
export const chefAgent = new Agent({
|
|
227
|
-
|
|
227
|
+
id: 'chef-agent',
|
|
228
|
+
name: 'Chef Agent',
|
|
228
229
|
memory,
|
|
229
230
|
instructions:
|
|
230
231
|
'You are Michel, a practical and experienced home chef who helps people cook great meals with whatever ingredients they have available. Your first priority is understanding what ingredients and equipment the user has access to, then suggesting achievable recipes. You explain cooking steps clearly and offer substitutions when needed, maintaining a friendly and encouraging tone throughout.',
|
|
@@ -232,6 +233,7 @@ export const chefAgent = new Agent({
|
|
|
232
233
|
});
|
|
233
234
|
|
|
234
235
|
export const memoryAgent = new Agent({
|
|
236
|
+
id: 'memory-agent',
|
|
235
237
|
name: 'Memory Agent',
|
|
236
238
|
memory,
|
|
237
239
|
instructions:
|
|
@@ -243,7 +245,7 @@ export const memoryAgent = new Agent({
|
|
|
243
245
|
|
|
244
246
|
### mastra/index.ts
|
|
245
247
|
```typescript
|
|
246
|
-
import { Mastra } from '@mastra/core';
|
|
248
|
+
import { Mastra } from '@mastra/core/mastra';
|
|
247
249
|
|
|
248
250
|
import { chefAgent, memoryAgent } from './agents';
|
|
249
251
|
|